File size: 800 Bytes
cea4a4b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import sys

sys.path.append("./.")

import pandas as pd
import json

import os
from dotenv import load_dotenv

load_dotenv()

from src.utils.s3.s3_connect import s3_connect
from src.utils.csv import read_csv_and_eval

from src.utils import *


def read_csv_from_s3(path: str, client=s3_connect(), bucket="lebesgue-common-bucket", evaluate=True, *args, **kwargs):

    object = client.get_object(Bucket=bucket, Key=path)

    if evaluate:
        df = read_csv_and_eval(object["Body"], *args, **kwargs)
    else:
        df = pd.read_csv(object["Body"], *args, **kwargs)

    return df


def read_csv(path: str, s3: bool = False, pd_args: dict = {}, s3_args: dict = {}):
    if s3:
        return read_csv_from_s3(path=path, **s3_args)
    else:
        return read_csv_and_eval(path=path, **pd_args)