compass/backend/env.py

22 lines
806 B
Python

"""Load environment variables from a .env file or the process' environment."""
import os
import dotenv
# Load envirnment variables from .env file upon module start.
dotenv.load_dotenv(f"{os.path.dirname(__file__)}/.env", verbose=True)
def getenv(variable: str) -> str:
"""Get value of environment variable or raise an error if undefined.
Unlike `os.getenv`, our application expects all environment variables it needs to be defined
and we intentionally fast error out with a diagnostic message to avoid scenarios of running
the application when expected environment variables are not set.
"""
value = os.getenv(variable)
if value is not None:
return value
else:
raise NameError(f"Error: {variable} Environment Variable not Defined")