-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathparams.py
58 lines (46 loc) · 2.07 KB
/
params.py
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import os
import numpy as np
################## VARIABLES ##################
DATA_SIZE = os.environ.get("DATA_SIZE")
CHUNK_SIZE = int(os.environ.get("CHUNK_SIZE"))
MODEL_TARGET = os.environ.get("MODEL_TARGET")
GCP_PROJECT = os.environ.get("GCP_PROJECT")
GCP_PROJECT_WAGON = os.environ.get("GCP_PROJECT_WAGON")
GCP_REGION = os.environ.get("GCP_REGION")
BQ_DATASET = os.environ.get("BQ_DATASET")
BQ_REGION = os.environ.get("BQ_REGION")
BUCKET_NAME = os.environ.get("BUCKET_NAME")
INSTANCE = os.environ.get("INSTANCE")
MLFLOW_TRACKING_URI = os.environ.get("MLFLOW_TRACKING_URI")
MLFLOW_EXPERIMENT = os.environ.get("MLFLOW_EXPERIMENT")
MLFLOW_MODEL_NAME = os.environ.get("MLFLOW_MODEL_NAME")
PREFECT_FLOW_NAME = os.environ.get("PREFECT_FLOW_NAME")
PREFECT_LOG_LEVEL = os.environ.get("PREFECT_LOG_LEVEL")
EVALUATION_START_DATE = os.environ.get("EVALUATION_START_DATE")
GAR_IMAGE = os.environ.get("GAR_IMAGE")
GAR_MEMORY = os.environ.get("GAR_MEMORY")
################## CONSTANTS #####################
LOCAL_DATA_PATH = os.path.join(os.path.expanduser('~'), ".lewagon", "mlops", "data")
LOCAL_REGISTRY_PATH = os.path.join(os.path.expanduser('~'), ".lewagon", "mlops", "training_outputs")
COLUMN_NAMES_RAW = ['fare_amount','pickup_datetime', 'pickup_longitude', 'pickup_latitude', 'dropoff_longitude', 'dropoff_latitude', 'passenger_count']
DTYPES_RAW = {
"fare_amount": "float32",
"pickup_datetime": "datetime64[ns, UTC]",
"pickup_longitude": "float32",
"pickup_latitude": "float32",
"dropoff_longitude": "float32",
"dropoff_latitude": "float32",
"passenger_count": "int16"
}
DTYPES_PROCESSED = np.float32
################## VALIDATIONS #################
env_valid_options = dict(
DATA_SIZE=["1k", "200k", "all"],
MODEL_TARGET=["local", "gcs", "mlflow"],
)
def validate_env_value(env, valid_options):
env_value = os.environ[env]
if env_value not in valid_options:
raise NameError(f"Invalid value for {env} in `.env` file: {env_value} must be in {valid_options}")
for env, valid_options in env_valid_options.items():
validate_env_value(env, valid_options)