1 """Coordinator for 17Track."""
3 from dataclasses
import dataclass
6 from pyseventeentrack
import Client
as SeventeenTrackClient
7 from pyseventeentrack.errors
import SeventeenTrackError
8 from pyseventeentrack.package
import Package
18 DEFAULT_SCAN_INTERVAL,
26 """Class for handling the data retrieval."""
28 summary: dict[str, dict[str, Any]]
29 live_packages: dict[str, Package]
33 """Class to manage fetching 17Track data."""
35 config_entry: ConfigEntry
37 def __init__(self, hass: HomeAssistant, client: SeventeenTrackClient) ->
None:
43 update_interval=DEFAULT_SCAN_INTERVAL,
52 """Fetch data from 17Track API."""
55 summary = await self.
clientclient.profile.summary(
63 except SeventeenTrackError
as err:
67 live_packages_dict = {}
69 for status, quantity
in summary.items():
70 summary_dict[
slugify(status)] = {
73 "status_name": status,
76 for package
in live_packages:
77 live_packages_dict[package.tracking_number] = package
78 summary_value = summary_dict.get(
slugify(package.status))
80 summary_value[
"packages"].append(package)
83 summary=summary_dict, live_packages=live_packages_dict
None __init__(self, HomeAssistant hass, SeventeenTrackClient client)
SeventeenTrackData _async_update_data(self)