bots/incident-response-slackbot/incident_response_slackbot/config.py (24 lines of code) (raw):
import os
import typing as t
import toml
from dotenv import load_dotenv
from pydantic import BaseModel
_CONFIG = None
class Config(BaseModel):
# OpenAI organization ID associated with OpenAI API key.
openai_organization_id: str
# Slack channel where triage alerts are posted.
feed_channel_id: str
def load_config(config_path: str = None) -> Config:
load_dotenv()
if config_path is None:
config_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "config.toml")
with open(config_path) as f:
cfg = toml.loads(f.read())
config = Config(**cfg)
global _CONFIG
_CONFIG = config
return _CONFIG
def get_config() -> Config:
global _CONFIG
if _CONFIG is None:
raise Exception("config not initialized, call load_config() first")
return _CONFIG