import os from sqlmesh import macro @macro() def psd_glob(evaluator) -> str: """Return a quoted glob path for all PSD CSV gzip files under LANDING_DIR.""" landing_dir = evaluator.var("LANDING_DIR") or os.environ.get("LANDING_DIR", "data/landing") return f"'{landing_dir}/psd/**/*.csv.gzip'" @macro() def cot_glob(evaluator) -> str: """Return a quoted glob path for all COT CSV gzip files under LANDING_DIR.""" landing_dir = evaluator.var("LANDING_DIR") or os.environ.get("LANDING_DIR", "data/landing") return f"'{landing_dir}/cot/**/*.csv.gzip'" @macro() def prices_glob(evaluator) -> str: """Return a quoted glob path for all coffee price CSV gzip files under LANDING_DIR.""" landing_dir = evaluator.var("LANDING_DIR") or os.environ.get("LANDING_DIR", "data/landing") return f"'{landing_dir}/prices/coffee_kc/**/*.csv.gzip'" @macro() def ice_stocks_glob(evaluator) -> str: """Return a quoted glob path for all ICE warehouse stock CSV gzip files under LANDING_DIR.""" landing_dir = evaluator.var("LANDING_DIR") or os.environ.get("LANDING_DIR", "data/landing") return f"'{landing_dir}/ice_stocks/**/*.csv.gzip'" @macro() def ice_aging_glob(evaluator) -> str: """Return a quoted glob path for all ICE aging report CSV gzip files under LANDING_DIR.""" landing_dir = evaluator.var("LANDING_DIR") or os.environ.get("LANDING_DIR", "data/landing") return f"'{landing_dir}/ice_aging/**/*.csv.gzip'" @macro() def ice_stocks_by_port_glob(evaluator) -> str: """Return a quoted glob path for all ICE historical by-port CSV gzip files under LANDING_DIR.""" landing_dir = evaluator.var("LANDING_DIR") or os.environ.get("LANDING_DIR", "data/landing") return f"'{landing_dir}/ice_stocks_by_port/**/*.csv.gzip'" @macro() def weather_glob(evaluator) -> str: """Return a quoted glob path for all OWM weather JSON gzip files under LANDING_DIR. Pattern: weather/{location_id}/{year}/{date}.json.gz The double-star catches all location_id subdirectories. """ landing_dir = evaluator.var("LANDING_DIR") or os.environ.get("LANDING_DIR", "data/landing") return f"'{landing_dir}/weather/**/*.json.gz'"