Skip to content

Conversation

@ppinchuk
Copy link
Collaborator

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.

@ppinchuk ppinchuk added this to the 0.2.0 - Python MVP milestone Dec 10, 2025
@ppinchuk ppinchuk self-assigned this Dec 10, 2025
Copilot AI review requested due to automatic review settings December 10, 2025 07:20
@ppinchuk ppinchuk requested a review from castelao as a code owner December 10, 2025 07:20
@ppinchuk ppinchuk added enhancement Update to logic or general code improvements new computation Update that adds a new computation method p-high Priority: high labels Dec 10, 2025
@codecov-commenter
Copy link

codecov-commenter commented Dec 10, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (568272e) to head (90dc0c3).

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     
Flag Coverage Δ
unittests 100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Contributor

Copilot AI left a 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.routing module with point_to_many, utilities, and cli submodules 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement Update to logic or general code improvements new computation Update that adds a new computation method p-high Priority: high

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants