Updated apps
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
"""Shippers for Mail and Packages."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from .amazon import AmazonShipper
|
||||
from .generic import GenericShipper
|
||||
from .post_de import PostDEShipper
|
||||
from .usps import USPSShipper
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from homeassistant.core import HomeAssistant
|
||||
|
||||
from .base import Shipper
|
||||
|
||||
SHIPPER_REGISTRY = {
|
||||
"amazon": AmazonShipper,
|
||||
"generic": GenericShipper,
|
||||
"post_de": PostDEShipper,
|
||||
"usps": USPSShipper,
|
||||
}
|
||||
|
||||
|
||||
def get_shipper_for_sensor(
|
||||
hass: HomeAssistant,
|
||||
config: dict,
|
||||
sensor_type: str,
|
||||
) -> Shipper | None:
|
||||
"""Return the appropriate shipper for the given sensor type."""
|
||||
# Check specialized shippers first
|
||||
for name, shipper_class in SHIPPER_REGISTRY.items():
|
||||
if name == "generic":
|
||||
continue
|
||||
if shipper_class.handles_sensor(sensor_type):
|
||||
return shipper_class(hass, config)
|
||||
|
||||
# Fallback to generic
|
||||
if GenericShipper.handles_sensor(sensor_type):
|
||||
return GenericShipper(hass, config)
|
||||
|
||||
return None
|
||||
Reference in New Issue
Block a user