Source code for cowidev.utils.params.secrets

import os
from dataclasses import dataclass, field

from pyaml_env import parse_config

from cowidev.utils.paths import SECRETS_FILE


if os.path.isfile(SECRETS_FILE):
    secrets_raw = parse_config(SECRETS_FILE, raise_if_na=False)
else:
    secrets_raw = {}


[docs]@dataclass() class GoogleSecrets: client_secrets: str = "" mail: str = None
[docs]@dataclass() class ScraperAPISecrets: token: str = ""
[docs]@dataclass() class SlackSecrets: token: str = ""
[docs]@dataclass() class VaccinationsSecrets: post: str = None sheet_id: str = None
[docs]@dataclass() class TestingSecrets: post: str = None sheet_id: str = None sheet_id_attempted: str = None
[docs]@dataclass() class TwitterSecrets: consumer_key: str = None consumer_secret: str = None access_secret: str = None access_token: str = None
[docs]@dataclass() class Secrets: google: GoogleSecrets = field(default_factory=dict) scraperapi: ScraperAPISecrets = field(default_factory=dict) slack: SlackSecrets = field(default_factory=dict) vaccinations: VaccinationsSecrets = field(default_factory=dict) testing: TestingSecrets = field(default_factory=dict) twitter: TwitterSecrets = field(default_factory=dict) def __post_init__(self): self.google = GoogleSecrets(**self.google) self.scraperapi = ScraperAPISecrets(**self.scraperapi) self.slack = SlackSecrets(**self.slack) self.vaccinations = VaccinationsSecrets(**self.vaccinations) self.testing = TestingSecrets(**self.testing) self.twitter = TwitterSecrets(**self.twitter)
# config_raw["global_"] = config_raw.pop("global") SECRETS = Secrets(**secrets_raw)