# pxy_routing/services/factory.py from __future__ import annotations import os from functools import lru_cache from .crowfly_provider import CrowFlyRoutingProvider from .ors_provider import ORSRoutingProvider @lru_cache(maxsize=1) def get_routing_provider(): """ Select routing provider by env: ROUTING_PROVIDER = ors | crowfly (default: crowfly) """ name = (os.getenv("ROUTING_PROVIDER") or "crowfly").strip().lower() if name == "ors": # ORS_* knobs are read inside ORSRoutingProvider return ORSRoutingProvider() # Fallback/default return CrowFlyRoutingProvider()