Source code for airbase.parquet_api.types

"""
type annotations from
https://eeadmz1-downloads-api-appservice.azurewebsites.net/swagger/index.html
"""

from __future__ import annotations

import sys
from typing import TYPE_CHECKING, Literal, TypedDict

if sys.version_info >= (3, 11):  # pragma:no cover
    from typing import NotRequired
else:
    from typing_extensions import NotRequired  # pragma:no cover

if sys.version_info >= (3, 10):  # pragma:no cover
    from typing import TypeAlias
else:
    from typing_extensions import TypeAlias  # pragma:no cover

if TYPE_CHECKING:
    from .dataset import AggregationType, Dataset


[docs]class CityData(TypedDict): """part of `/City` response""" countryCode: str cityName: str
"""full `/City` response""" CityJSON: TypeAlias = "list[CityData]"
[docs]class CountryData(TypedDict): """part of `/Country` response""" countryCode: str countryName: str
"""full `/Country` response""" CountryJSON: TypeAlias = "list[CountryData]"
[docs]class ParquetDataJSON(TypedDict): """request payload to `/DownloadSummary`, `/ParquetFile` and `/ParquetFile/urls`""" countries: list[str] cities: list[str] pollutants: list[str] dataset: Literal[0, 1, 2] | Dataset # Optional source: NotRequired[str] dateTimeStart: NotRequired[str] # yyyy-mm-ddTHH:MM:SSZ dateTimeEnd: NotRequired[str] # yyyy-mm-ddTHH:MM:SSZ aggregationType: NotRequired[ Literal["hour", "day", "var"] | AggregationType ]
[docs]class DownloadSummaryJSON(TypedDict): """full `/DownloadSummary` response""" numberFiles: int size: int
[docs]class PollutantDict(TypedDict): """part of `Pollutant` response""" notation: str id: str
"""full `Pollutant` response""" PollutantJSON: TypeAlias = "list[PollutantDict]"