Skip to content

feat: Add registry for reservation rule classes#357

Open
tvk134 wants to merge 2 commits into
sequence-toolbox:masterfrom
tvk134:rule-builder-registry
Open

feat: Add registry for reservation rule classes#357
tvk134 wants to merge 2 commits into
sequence-toolbox:masterfrom
tvk134:rule-builder-registry

Conversation

@tvk134

@tvk134 tvk134 commented May 23, 2026

Copy link
Copy Markdown

Summary:

  • Refactor reservation-generated resource-management rules into individual Rule subclasses.
  • Add a ReservationRuleRegistry that maps reservation rule names to Rule constructors.
  • Add a DefaultReservationRuleGenerator that uses the registry to construct rules for a reservation.
  • Update ResourceManager.generate_load_rules to delegate rule construction while preserving rule scheduling, expiration, and memory-reset behavior.
  • Expose ResourceManager.get_reservation_rule_registry() so users can disable or replace individual reservation rules without subclassing the generator.

Testing:

  • uv run ruff check sequence/resource_management/resource_manager.py sequence/resource_management/reservation_rule_registry.py tests/resource_management/test_reservation_rule_registry.py
  • uv run pytest tests/resource_management -vv
  • uv run pytest tests/network_management -vv
  • uv run pytest tests/topology -vv
  • uv run pytest tests/app -vv
  • uv run pytest tests/components -vv
  • uv run pytest tests/entanglement_management -vv
  • uv run pytest tests/kernel -vv
  • uv run pytest tests/qkd -vv
  • uv run pytest tests/qlan -vv
  • uv run pytest tests/utils -vv

Note:

  • Full uv run pytest -vv hangs locally during collection on Windows at 228 collected items, including after a restart and several minutes of waiting.
  • Running each top-level test directory individually completes successfully.

Comment thread sequence/resource_management/reservation_rule_registry.py Outdated
Comment thread sequence/resource_management/reservation_rule_registry.py Outdated
@tvk134

tvk134 commented Jun 3, 2026

Copy link
Copy Markdown
Author

Pushed the discussed updates.

Summary:

  • Renamed DefaultReservationRuleGenerator to ReservationRuleGenerator.
  • Removed the custom registry injection path; the generator now owns its registry initialized with the default reservation rule constructors.
  • Kept ResourceManager.get_reservation_rule_registry() as the configuration hook for replacing/disabling individual reservation-generated rules.
  • Made reservation rule priority an init parameter with the existing default value of 10.
  • Added a generator-level test verifying that a registered replacement rule is actually produced by create_rules(...), not just stored in the registry.
  • Cleaned up the reservation rule registry tests.

Validation:

  • uv run pytest tests/resource_management/test_reservation_rule_registry.py
    • All 4 passed
  • uv run pytest tests/resource_management
    • All 16 passed

@hayekr

hayekr commented Jun 20, 2026

Copy link
Copy Markdown
Collaborator

Please resolve your conflict.

@hayekr hayekr changed the title Add registry for reservation rule classes feat: Add registry for reservation rule classes Jun 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants