38 make transport roles and routing fully pdl derived - #40
Open
Hackatro wants to merge 12 commits into
Open
Conversation
One producer recipe, sidecar roster, output names follow brazil_farms / ArgentinaFarms / UsFarms. Values unchanged vs the byte-for-byte gate.
- DROUGHT_KEY hardcoded ("brazil_farms", "supply"), so a PDL that droughts a
different producer reported drought_severity as 0.0 all run.
- Severity is now the worst active supply
degradation across the roster's producers.
- Verified: Result_Simulator_Environment.csv byte-identical before and after.
Implemented: - roster-derived peer-list identity - generic land transport and sea-lane roles - topology-derived transport lists and sea crossings - graph-driven routing dispatch and generic count fallbacks Not yet implemented: - farmer and trader hardcoded list cleanup - roster-derived environment transport aggregation - routing and export contract updates - topology snapshot regeneration - final numeric and alternate-PDL verification
- Remove the last place-named couplings so a swapped PDL runs without touching agent code
- The eight n_transport_sa_* / n_transport_eu_* / n_sea_lane_* scenario fields and their SimulatorScenarios columns went inert once transport lists became entity-derived - Baseline outputs are unchanged
Sponn
reviewed
Aug 31, 2026
| agents/trader.py — Trading actors. | ||
|
|
||
| role="wholesaler" Aggregates soja from BRA + USA farmers (greedy cheapest first) | ||
| role="wholesaler" Aggregates soja from one producing region |
Contributor
There was a problem hiding this comment.
Soja is "soy" in English.
It should be changed for all occurrences.
| n_sea_lane_usa: int = 1 # Sea agents: USA Gulf -> Rotterdam | ||
| n_transport_eu_rtm: int = 1 # Rotterdam EU entry port agents | ||
| n_transport_eu_ham: int = 1 # Hamburg EU entry port agents | ||
| n_brazil_farms: int = 10 # South American Farmers |
Contributor
There was a problem hiding this comment.
shouldn't this also be removed from the scenario file?
| Instantiagte once per simulation run - the constructor truncates | ||
| the tick tables so each run starts clean. | ||
| Instantiate once per simulation run - the first write_tick() drops the | ||
| roster's tick tables so each run starts clean. |
Contributor
There was a problem hiding this comment.
does this mean that all data of previous runs is lost?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Removes the last place-named couplings in the transport layer so a swapped PDL runs
without touching agent code. This is an identity change, not a behaviour change.
Scope
Values are identical per corresponding series against the Step 0 post-rebase baseline.
Identifiers change only within an enumerated, reviewed set: transport list names, role constants, count attrs, adjacency references, execution-order strings, and the derived result-table names (which follow list names via
_result_name()).Limitation
topology.pystill holdsLOCATION_CONTINENT(hardcoded continent dict), andderive_sea_edgesclassifies a stage as a crossing only when both endpoints resolve to known, different continents.