Repository model
Discover Python modules and tests. Resolve static imports.
- discovery
- absolute + relative imports
Sorginte · Open source · v0.2.0
Static dependency impact for Python modules and pytest files, with the path behind every result.
urmare impact --changedimpact --changedsrc/payments/service.pysrc/api/checkout.pytests/api/test_checkout.pytests/payments/test_service.py01 · Impact model
src/payments/service.pystatic importssrc/api/checkout.pytests/test_service.pyservice.py → test_service.pyNot symbol-level, call-graph, runtime, framework-specific, individual-test, or dependency-upgrade analysis.
02 · Product surface
Discover Python modules and tests. Resolve static imports.
Analyze explicit files, the working tree, or a Git merge base.
Return direct and transitive modules, pytest files, and paths.
Reuse the persistent index. Emit stable schema-versioned JSON.
03 · Terminal
Illustrative paths and output.
$ urmare impact --changed
Impact analysis
Changed (1)
src/payments/service.py
Directly affected modules (1)
src/api/checkout.py
Affected tests (2)
tests/api/test_checkout.py
tests/payments/test_service.py
$ urmare tests --affected --changed
tests/api/test_checkout.py
tests/payments/test_service.py04 · Analysis cycle
repository Python files
modules + static imports
reuse unchanged work
reverse dependencies
affected pytest files
preserve dependency paths
05 · Correctness
Visible. Conservative. Recoverable.
Silent. More harmful.
06 · Installation
Version 0.2.0 provides binary wheels for Python 3.9–3.14.
uv tool install urmarepipx install urmarepip install urmareuvx urmare impact --changedVerified: PyPI · GitHub Releases
07 · Performance
One-file incremental impact completed in 79–263 ms median across five pinned public Python projects.
| Project | Coldempty index | Warmno change | Incrementalone file |
|---|---|---|---|
| Flask15 paired samples | 116 ms | 75 ms | 79 ms |
| FastAPI15 paired samples | 222 ms | 92 ms | 101 ms |
| Django15 paired samples | 628 ms | 220 ms | 230 ms |
| pandas15 paired samples | 456 ms | 117 ms | 126 ms |
| Apache Airflow15 paired samples | 610 ms | 256 ms | 263 ms |
Scroll horizontally to compare scenarios.
Fifteen independently prepared paired samples per project at pinned public repository revisions, using one optimized Urmare binary, isolated persistent caches, one discarded warm-up, and a deterministic content-only edit. The OS filesystem cache was not flushed.
Open source