import os from pathlib import Path from dotenv import load_dotenv load_dotenv() def _get_base_dir() -> Path: infamous_dir = os.getenv("INFAMOUSDIR") if not infamous_dir: return Path(__file__).resolve().parent.parent.parent return Path(infamous_dir) / "projects-cea" / "whats-cookin-cea" def _get_data_dir() -> Path: data_dir = os.getenv("DATADIR") if not data_dir: return _get_base_dir() / "data" return Path(data_dir) / "whats-cookin-cea" BASE_DIR = _get_base_dir() DATA_DIR = _get_data_dir() class PATHS: base = BASE_DIR data = DATA_DIR sql = BASE_DIR / "sql" sql_init = BASE_DIR / "sql" / "_create" html = BASE_DIR / "html" html_tmp = BASE_DIR / "html" / "tmp" distro_csv = DATA_DIR / "output" / "distro.csv" reports = DATA_DIR / "processed" class QUERY_PATHS: _sql = PATHS.sql _init = PATHS.sql_init init_distro = _init / "init-distro.sql" init_ro_map = _init / "init-rep-owner-map.sql" init_run = _init / "init-last-run.sql" init_history = _init / "init-history.sql" init_main = _init / "init-main.sql" init_stream_threshold = _init / "init-stream-threshold.sql" init_exclude = _init / "init-excluded-isrcs.sql" backfill_main = _sql / "backfill-main-query.sql" backfill_main_tracks = _sql / "backfill-main-query-tracks.sql" backfill_main_streams = _sql / "backfill-main-query-streams.sql" date = _sql / "date-query.sql" fill = _sql / "fill-query.sql" main_meta = _sql / "main-query-meta.sql" main_metadata = _sql / "main-query-metadata.sql" main_s200 = _sql / "main-query-s200.sql" main_shazam = _sql / "main-query-shazam.sql" main_streams = _sql / "main-query-streams.sql" main_tiktok = _sql / "main-query-tiktok.sql" main_tracks = _sql / "main-query-tracks.sql" main = _sql / "main-query.sql" check_history = _sql / "check-history.sql" copy_history = _sql / "copy-history.sql" ro_map = _sql / "ro-map-query.sql" distro = _sql / "distro-query.sql" dashboard_main = _sql / "dashboard-main.sql" dashboard_tiktok = _sql / "dashboard-tiktok.sql" class HTML_PATHS: section = PATHS.html / "section_template.html.j2" email = PATHS.html / "email_main_body.html.j2" legend = PATHS.html / "legend_template.html.j2" legend_multi_market = PATHS.html / "legend_multi_market.html.j2" icons = PATHS.html_tmp / "icons" HEADLESS_CHROME_PATH = os.getenv("headlessChromeShellPath") or None