Selective/lazy from_res1d ingestion by quantity, for calibration loops
- Dominant language
- Python
- Stars
- 56
- Forks
- 9
- Avg merge
- 57m
- Merged PRs (30d)
- 3
Description
## Summary
`from_res1d` takes about 18-25 seconds on a moderately sized network file. The documented `nodes=[...], reaches=[]` filtering cuts that to around 5 seconds, but the remaining time is still mostly spent building topology rather than reading data.
In a calibration loop that rebuilds the network for every trial, this dominates the runtime — matching itself is already fast in comparison.
## Request
Support selective or lazy ingestion by quantity, on top of the existing node/reach filtering, so calibration workflows can build only what a given trial needs.
## Relevant entry points
- `Network.from_res1d` (`src/modelskill/network.py:351-447`)
- `Network._load_res1d_network` (`network.py:448-487`)
Found by a test user evaluating the network functionality ahead of a 1.4.0 release.
Contributor guide
Research direction
Start with Network.from_res1d in src/modelskill/network.py:351-447 and Network._load_res1d_network in network.py:448-487. Trace how the existing nodes and reaches filters avoid work, then determine how quantity selection or lazy ingestion should compose with them. Done means calibration trials can load only the quantities they need without breaking the current filtering behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100