"""Shared setup for the 03_Simulated layer. Every output row/column carries a basis label: Actual - straight from 02_Cleaned (client data) Corrected - client data with a deterministic correction (from 02_Cleaned) Inferred - derived from client data by a stated rule/model (no outside numbers) Researched - a published fact or figure (cited in sources.csv) Simulated - computed from Researched/assumed parameters (low / base / high) """ import os, sys _here = os.path.dirname(os.path.abspath(__file__)) _root = os.path.normpath(os.path.join(_here, '..', '..')) # Binzagr_Data/ (these scripts live in 03_Simulated/scripts) sys.path.insert(0, _here) # common.py is shipped next to these scripts os.environ.setdefault('BZ_OUT', os.path.join(_root, '03_Simulated')) import common # noqa: E402 (re-uses write_table/save_stats with OUT=03_Simulated) from common import write_table, save_stats, load_stats, OUT, DATA, CSV, AUDIT # noqa: E402,F401 CLEAN = os.environ.get('BZ_CLEAN', os.path.join(_root, '02_Cleaned', 'data')) # input: the cleaned layer SNAPSHOT_DATE = '2026-10-20' # extraction date of the client files (customer master SYNCVERSION) FX_USD_SAR = 3.75 # SAR is pegged to USD at 3.75