config.py 841 B

123456789101112131415161718192021222324252627282930313233343536
  1. import os
  2. import tomllib
  3. from dotenv import load_dotenv
  4. load_dotenv()
  5. with open("config.toml", "rb") as f:
  6. config = tomllib.load(f)
  7. def _get(key: str, default):
  8. value = config.get(key, default)
  9. if not value:
  10. value = os.environ.get(key, default)
  11. return value
  12. def get_or_error(key: str):
  13. """
  14. Get a key from the config, or raise an error if it doesn't exist.
  15. """
  16. value = get_or_none(key)
  17. if not value:
  18. raise KeyError(f"Please set '{key}' in `config.toml` or `.env`.")
  19. return value
  20. def get_or_default(key: str, default):
  21. """
  22. Get a key from the config, or return a default value if it doesn't exist.
  23. """
  24. return _get(key, default)
  25. def get_or_none(key: str):
  26. """
  27. Get a key from the config, or return None if it doesn't exist.
  28. """
  29. return _get(key, None)