first commit

This commit is contained in:
2026-07-11 23:54:36 +07:00
commit b07562921b
40 changed files with 3813 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
from collections.abc import Iterable
from core.base import BaseTransport
class TransportRegistry:
def __init__(self, transports: Iterable[BaseTransport] | None = None) -> None:
self._transports: dict[str, BaseTransport] = {}
for transport in transports or ():
self.register(transport)
def register(self, transport: BaseTransport) -> None:
if transport.transport_type in self._transports:
registered = self._transports[transport.transport_type]
raise ValueError(
"Transport "
f"'{transport.transport_type}' is already registered by {type(registered).__name__}"
)
self._transports[transport.transport_type] = transport
def get(self, transport_type: str) -> BaseTransport:
try:
return self._transports[transport_type]
except KeyError as exc:
raise ValueError(f"Transport '{transport_type}' is not registered") from exc