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" / "isrc-origin-cea" BASE_DIR = _get_base_dir() class PATHS: base = BASE_DIR sql = BASE_DIR / "sql" sql_init = BASE_DIR / "sql" / "_create" class QUERY_PATHS: _sql = PATHS.sql _init = PATHS.sql_init # Snowflake operational queries staging_create_refresh = _sql / "snw-staging-create-refresh.sql" staging_create_overrides = _sql / "snw-staging-create-overrides.sql" staging_rowcount = _sql / "snw-staging-rowcount.sql" main_insert = _sql / "snw-main-insert.sql" main_truncate = _sql / "snw-main-truncate.sql" main_rowcount = _sql / "snw-main-rowcount.sql" run_check = _sql / "snw-run-check.sql" run_update = _sql / "snw-run-update.sql" changed_create = _sql / "snw-changed-create.sql" WAREHOUSES = { "small": "SME_ANALYTICS_FI_SMALL_WAREHOUSE", "medium": "SME_ANALYTICS_FI_MEDIUM_WAREHOUSE", "large": "SME_ANALYTICS_FI_LARGE_WAREHOUSE", } TABLES = { "main": "sme_analytics.fi.dim_isrc_origin", "main_vw": "sme_analytics.shared.dim_isrc_origin", "redshift_current": "sme_analytics.fi.dim_isrc_origin_redshift_current", "redshift_changed": "sme_analytics.fi.dim_isrc_origin_redshift_changed", "artist_metadata": "sme_analytics.fi.dim_artist_metadata", "staging": "sme_analytics.fi.isrc_origin_staging", "latest_run": "sme_analytics.fi.isrc_origin_latest_run", "override_isrc": "sme_analytics.fi.isrc_origin_override_isrc", "override_spotify_artist": "sme_analytics.fi.isrc_origin_override_spotify_artist_id", "rdb_main": "prod_eu_analytics.isrc_origin", "rdb_changed": "prod_eu_analytics.isrc_origin_changed", } PLACEHOLDER_MAP = { "$MAIN$": TABLES["rdb_main"], "$CHANGED$": TABLES["rdb_changed"], "$SNW_MAIN_VW$": TABLES["main_vw"], "$SNW_MAIN$": TABLES["main"], "$SNW_REDSHIFT_CURRENT$": TABLES["redshift_current"], "$SNW_REDSHIFT_CHANGED$": TABLES["redshift_changed"], "$SNW_ARTIST_METADATA$": TABLES["artist_metadata"], "$SNW_STAGING$": TABLES["staging"], "$SNW_LATEST_RUN$": TABLES["latest_run"], "$SNW_OVERRIDE_ISRC$": TABLES["override_isrc"], "$SNW_OVERRIDE_SPOTIFY_ARTIST$": TABLES["override_spotify_artist"], }