fermilink.router_rules module¶
- fermilink.router_rules.build_synced_rules(registry, existing_rules, *, default_package_id=None, min_score=None, min_margin=None)[source]¶
Build merged router rules from registry state and existing rules.
- Parameters:
registry (dict[str, Any]) – Loaded package registry payload.
existing_rules (dict[str, Any] | None) – Previously loaded router rules payload, if available.
default_package_id (str | None) – Optional default package id to set in router rules.
min_score (int | None) – Optional minimum routing score threshold override.
min_margin (int | None) – Optional minimum routing margin threshold override.
- Returns:
Tuple of (rules_payload, summary) describing synced router state.
- Return type:
tuple[dict[str, Any], dict[str, Any]]
- fermilink.router_rules.dedupe(items)[source]¶
Remove duplicate terms while preserving first-seen order.
- Parameters:
items (list[str]) – Term list to deduplicate.
- Returns:
De-duplicated terms in stable order.
- Return type:
list[str]
- fermilink.router_rules.infer_rule(package_id)[source]¶
Infer include/exclude router terms for a package identifier.
- Parameters:
package_id (str) – Normalized package identifier.
- Returns:
Rule fragment with inferred include and exclude terms.
- Return type:
dict[str, list[str]]
- fermilink.router_rules.load_family_hints()[source]¶
Load bundled package-family hint terms for router rule generation.
- Returns:
Normalized family-hints payload keyed by family id.
- Return type:
dict[str, dict[str, list[str] | str]]
- fermilink.router_rules.normalize_terms(raw)[source]¶
Normalize router rule terms into a clean lowercase list.
- Parameters:
raw (Any) – Raw value from user input or configuration.
- Returns:
Normalized term list suitable for router rule matching.
- Return type:
list[str]
- fermilink.router_rules.package_id_terms(package_id)[source]¶
Generate default routing terms derived from a package identifier.
- Parameters:
package_id (str) – Normalized package identifier.
- Returns:
Terms inferred from package_id tokens.
- Return type:
list[str]
- fermilink.router_rules.sync_router_rules(scipkg_root, *, router_rules_filename=DEFAULT_ROUTER_RULES_FILENAME, default_package_id=None, min_score=None, min_margin=None, dry_run=False)[source]¶
Synchronize router rules on disk with installed package metadata.
- Parameters:
scipkg_root (Path) – Scientific package root containing registry and package files.
router_rules_filename (str) – Router rules filename relative to scipkg_root.
default_package_id (str | None) – Optional default package id to set in router rules.
min_score (int | None) – Optional minimum routing score threshold override.
min_margin (int | None) – Optional minimum routing margin threshold override.
dry_run (bool) – When True, compute sync results without writing files.
- Returns:
Summary payload describing sync changes and output location.
- Return type:
dict[str, Any]