-
Notifications
You must be signed in to change notification settings - Fork 1
MVP routing module #175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
MVP routing module #175
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #175 +/- ##
==========================================
Coverage 100.00% 100.00%
==========================================
Files 17 20 +3
Lines 1443 1877 +434
Branches 170 211 +41
==========================================
+ Hits 1443 1877 +434
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR implements an MVP routing module that enables end-to-end least-cost path (LCP) routing through a new CLI command. Users can now configure routing scenarios with cost layers, friction layers, and tracked metrics to generate GeoPackage outputs of optimized transmission paths with Rust performing the core pathfinding.
Key Changes
- Core routing pipeline: New
revrt.routingmodule withpoint_to_many,utilities, andclisubmodules implementing the routing logic, coordinate mapping, and CLI interface - Enhanced error handling: New exception types (
revrtInvalidStartCostError,revrtLeastCostPathNotFoundError) with improved logging that includes exception class names - Organizational rebranding: Changed references from "NREL" to "NLR" across documentation, metadata, and templates (appears unintentional)
Reviewed changes
Copilot reviewed 22 out of 23 changed files in this pull request and generated 15 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/python/unit/test_warn.py | Adds assertion for warning class name in logged messages |
| tests/python/unit/test_exceptions.py | Adds tests for new exception types and validates exception class names in logs |
| tests/python/unit/routing/test_routing_utilities.py | Unit tests for coordinate transformation and bounds filtering |
| tests/python/unit/routing/test_routing_point_to_many.py | Comprehensive tests for routing scenarios, layer composition, and path geometry |
| tests/python/unit/routing/test_routing_cli.py | Tests for CLI routing functions including multiplier application and route chunking |
| tests/python/integration/test_routing_utilities_integration.py | Integration test validating coordinate mapping with layered data |
| revrt/warn.py | Updates warning log format to include warning class name |
| revrt/exceptions.py | Adds new exception types and updates error log format to include exception class name |
| revrt/routing/utilities.py | Implements coordinate-to-raster-index mapping and bounds filtering |
| revrt/routing/point_to_many.py | Core routing logic with layer aggregation, barrier handling, and result assembly |
| revrt/routing/cli.py | CLI interface for route computation with transmission config support |
| revrt/routing/init.py | New module initialization file |
| revrt/costs/config/config.py | Updates docstring to indicate config keys are optional |
| revrt/_cli.py | Registers new route-points command |
| revrt/init.py | Simplifies module docstring (removes reV context) |
| pyproject.toml | Changes organization name from NREL to NLR in description and keywords |
| docs/source/glossary.rst | Updates organization references and removes reVX glossary entry |
| docs/source/conf.py | Changes author and GitHub user from NREL/nrel to NLR/nlr |
| README.rst | Updates badge label from NREL to NLR |
| .github/ISSUE_TEMPLATE/feature_request.yaml | Changes organization reference in charge code field |
| .github/ISSUE_TEMPLATE/bug_report.yaml | Changes organization reference in charge code field |
| crates/revrt/src/dataset.rs | Fixes variable filtering to use exact match instead of contains; improves error messages |
| pixi.lock | Updates package hash for version changes |
Add first command that can be run on the CLI to get end-to-end routing pipeline execution. This means users can put together a config that outputs them a GeoPackage of LCPs, with Rust running in the middle.