The sole generator of systems.db moves to tooling/domains/ledger/ and is now `reach ledger import`. economy_import/ keeps its name (Rust comments in server/src cite it); the entrypoint becomes service.py; schema_version.py moves with the importer, which is where the version is defined. The stamp survived the move, which is the thing that had to hold: - generated_brands.toml is byte-identical (sha256 e748531…) before and after - `reach check systems-db-stamp` reported STALE after the move (the registry saw it) and OK after the regen - the dry-run carries every count and warning of the baseline transcript, and exit 2 — imported and stamped, coverage gate unmet — still reaches the caller through @command `make regen-db` survives as a one-line delegate, per D-263's muscle-memory clause: about fifty files name it, including the headers of generated wiki TOMLs and the remedies the push gate prints. `make economy-db` is retired; it ran `reach generate brands` before the import, which the import already does as its first step. economy_import.errors is reconciled as DOMAINS.md asked. ImportAborted stays as internal rollback control flow and never reaches a caller; the service converts it to a ReachError carrying the remedy. regenerate_brands caught cargo_binary's ReachError, printed it and raised ImportAborted, dropping the remedy. It runs before the import transaction opens, so there is nothing to roll back — it now propagates. Both sys.path bootstraps are gone; they existed only because the directory was hyphenated. The step labels ran [1/10]…[10/13]…[17/19]; one 24-step counter now drives the event phase and progress. Stale pointers fixed on the way: MIGRATION_SQL has lived in economy_import/migration.py since T-1067, but the asset-pipeline rule, DEVOPS and the schema comments still sent readers to import_economics.py; the rule and DEVOPS also still named the check scripts T-1281 retired. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
32 lines
1.6 KiB
Python
32 lines
1.6 KiB
Python
"""
|
|
economy_import — the import steps behind `reach ledger import`.
|
|
|
|
Split out of the former single-file importer (T-1067). `ledger/service.py`
|
|
orchestrates the single-transaction import; the steps live here:
|
|
|
|
paths.py source-file path constants (re-exports stamped paths
|
|
from tooling/generator_sources.py)
|
|
errors.py ImportAborted control-flow exception
|
|
db.py connection + FK-safe table-clear helpers
|
|
migration.py MIGRATION_SQL / COLUMN_MIGRATIONS schema migration
|
|
economy.py gate links, commodities, chains, currency zones,
|
|
gate energy, system_fiscal
|
|
corporations.py wiki corp parsing, D-182 sync, corp_presence
|
|
brands.py generate_brands shell-out + D-189 brand layer
|
|
bodies.py body_radius_km / axial_tilt_deg backfills
|
|
atlas.py atlas index schema + city-name pool (D-223, D-207)
|
|
specialization.py D-237 authored specialization layer
|
|
traits.py D-232 architecture-flavor trait templates + hero bias
|
|
validators.py structural + D-175 coverage validation
|
|
stamp.py meta-table generator stamp (#855, #856)
|
|
|
|
Every module here is part of the import_economics meta-stamp source set —
|
|
tooling/generator_sources.py globs this directory, so adding a module
|
|
automatically extends staleness detection.
|
|
|
|
The sys.path bootstrap that used to sit here is gone (T-1289). It existed only
|
|
because `tooling/economy-db/` was hyphenated and so not importable; inside the
|
|
package, `tooling.generator_sources` and the ledger's `schema_version` resolve
|
|
by ordinary import.
|
|
"""
|