27 lines
789 B
Python
27 lines
789 B
Python
from dotenv import dotenv_values
|
|
import os
|
|
from pathlib import Path
|
|
|
|
# load_dotenv("/home/user/recommender-service-flask/src/.env")
|
|
|
|
# config = dotenv_values("/home/user/recommender-service-flask/src/.env")
|
|
env_path = Path(__file__).resolve().parents[1]/ ".env"
|
|
config = dotenv_values(env_path)
|
|
|
|
|
|
def env(name, default=None, cast=None):
|
|
r = os.getenv(name)
|
|
if r is None:
|
|
r = config.get(name, default)
|
|
if cast is not None:
|
|
if cast == bool and isinstance(r, str):
|
|
if r.lower() in ["true", "yes", "on", "1"]:
|
|
r = True
|
|
elif r.lower() in ["false", "no", "off", "0"]:
|
|
r = False
|
|
else:
|
|
raise ValueError(f"Invalid boolean value: {r}")
|
|
else:
|
|
r = cast(r)
|
|
return r
|