merge: testing → main (reconcile 2-week divergence)
This commit is contained in:
31
decnet/clustering/campaign/factory.py
Normal file
31
decnet/clustering/campaign/factory.py
Normal file
@@ -0,0 +1,31 @@
|
||||
"""Campaign-clusterer factory.
|
||||
|
||||
Mirrors :mod:`decnet.clustering.factory` for the campaign layer.
|
||||
Configuration knob ``DECNET_CAMPAIGN_CLUSTERER_TYPE``; default
|
||||
``"connected_components"``.
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
|
||||
from decnet.clustering.campaign.base import CampaignClusterer
|
||||
|
||||
_KNOWN: tuple[str, ...] = ("connected_components",)
|
||||
_DEFAULT = "connected_components"
|
||||
|
||||
|
||||
def get_campaign_clusterer() -> CampaignClusterer:
|
||||
name = os.environ.get(
|
||||
"DECNET_CAMPAIGN_CLUSTERER_TYPE", _DEFAULT,
|
||||
).strip().lower()
|
||||
if name == "connected_components":
|
||||
from decnet.clustering.campaign.impl.connected_components import (
|
||||
ConnectedComponentsCampaignClusterer,
|
||||
)
|
||||
return ConnectedComponentsCampaignClusterer()
|
||||
raise ValueError(
|
||||
f"Unknown campaign clusterer: {name!r}. Known: {_KNOWN}"
|
||||
)
|
||||
|
||||
|
||||
__all__ = ["get_campaign_clusterer"]
|
||||
Reference in New Issue
Block a user