pygismeteo¶
Добро пожаловать в документацию pygismeteo, обёртки для Gismeteo API на Python!
Асинхронная версия здесь.
Разработка приостановлена¶
Для использования библиотеки нужен API токен, который можно запросить по электронной почте b2b@gismeteo.ru.
В настоящее время у разработчика отсутствует API токен, что делает невозможными тестирование и дальнейшую разработку.
Если вам нужна погодная библиотека без API токена, можете рассмотреть pywttr.
Установка¶
Последнюю версию можно установить следующей командой:
pip install -U pygismeteo pygismeteo-base
API Reference¶
Обёртка для Gismeteo API.
Examples:
with pygismeteo.Gismeteo(token="56b30cb255.3443075") as gismeteo:
search_results = gismeteo.search.by_query("Москва")
city_id = search_results[0].id
current = gismeteo.current.by_id(city_id)
print(current)
Кастомный базовый URL:
with pygismeteo.Gismeteo(
token=..., base_url=pydantic.AnyHttpUrl("https://api.example.com/v1")
) as gismeteo:
...
Другой язык:
with pygismeteo.Gismeteo(token=..., lang=pygismeteo.Lang.EN) as gismeteo:
...
Кастомный httpx2.Client:
with httpx2.Client(
timeout=httpx2.Timeout(60, connect=5), follow_redirects=True
) as session:
gismeteo = pygismeteo.Gismeteo(token=..., session=session)
...
Gismeteo ¶
Gismeteo(
*,
token: str,
base_url: AnyHttpUrl = build(
scheme="https", host="api.gismeteo.net", path="v2"
),
lang: Lang = RU,
session: Client | None = None,
)
Обёртка для Gismeteo API.
Examples:
with gismeteo.Gismeteo(token="56b30cb255.3443075") as gismeteo:
search_results = gismeteo.search.by_query("Москва")
city_id = search_results[0].id
current = gismeteo.current.by_id(city_id)
print(current)
Кастомный базовый URL:
with gismeteo.Gismeteo(
token=...,
base_url=pydantic.AnyHttpUrl("https://api.example.com/v1"),
) as gismeteo:
...
Другой язык:
with gismeteo.Gismeteo(token=..., lang=gismeteo.Lang.EN) as gismeteo:
...
Кастомный httpx2.Client:
with httpx2.Client(
timeout=httpx2.Timeout(60, connect=5), follow_redirects=True
) as session:
gismeteo = gismeteo.Gismeteo(token=..., session=session)
...
Parameters:
-
(token¶str) –X-Gismeteo-Token. Запросить можно по электронной почте b2b@gismeteo.ru.
Examples:
with gismeteo.Gismeteo(token="56b30cb255.3443075") as gismeteo:
search_results = gismeteo.search.by_query("Москва")
city_id = search_results[0].id
current = gismeteo.current.by_id(city_id)
print(current)
Кастомный базовый URL:
with gismeteo.Gismeteo(
token=...,
base_url=pydantic.AnyHttpUrl("https://api.example.com/v1"),
) as gismeteo:
...
Другой язык:
with gismeteo.Gismeteo(
token=..., lang=gismeteo.Lang.EN
) as gismeteo:
...
Кастомный httpx2.Client:
with httpx2.Client(
timeout=httpx2.Timeout(60, connect=5), follow_redirects=True
) as session:
gismeteo = gismeteo.Gismeteo(token=..., session=session)
...
models ¶
Pydantic модели ответов Gismeteo API.
current ¶
enums ¶
Description dataclass ¶
IntEnumWithDescription ¶
Bases: _DescriptionMixin, IntEnum
StrEnumWithDescription ¶
Bases: _DescriptionMixin, StrEnum
WeatherDataType ¶
Bases: StrEnumWithDescription
CloudinessType ¶
Bases: IntEnumWithDescription
PARTLY_CLOUDY class-attribute instance-attribute ¶
PARTLY_CLOUDY = (
101,
"Partly cloudy",
"Переменная облачность",
)
PrecipitationType ¶
Bases: IntEnumWithDescription
PrecipitationIntensity ¶
Bases: IntEnumWithDescription
GeomagneticField ¶
Bases: IntEnumWithDescription
NO_SIGNIFICANT_DISTURBANCES class-attribute instance-attribute ¶
NO_SIGNIFICANT_DISTURBANCES = (
1,
"No significant disturbances",
"Нет заметных возмущений",
)
SMALL_DISTURBANCES class-attribute instance-attribute ¶
SMALL_DISTURBANCES = (
2,
"Small disturbances",
"Небольшие возмущения",
)
WEAK_GEOMAGNETIC_STORM class-attribute instance-attribute ¶
WEAK_GEOMAGNETIC_STORM = (
3,
"Weak geomagnetic storm",
"Слабая геомагнитная буря",
)
MINOR_GEOMAGNETIC_STORM class-attribute instance-attribute ¶
MINOR_GEOMAGNETIC_STORM = (
4,
"Minor geomagnetic storm",
"Малая геомагнитная буря",
)
MODERATE_GEOMAGNETIC_STORM class-attribute instance-attribute ¶
MODERATE_GEOMAGNETIC_STORM = (
5,
"Moderate geomagnetic storm",
"Умеренная геомагнитная буря",
)
STRONG_GEOMAGNETIC_STORM class-attribute instance-attribute ¶
STRONG_GEOMAGNETIC_STORM = (
6,
"Strong geomagnetic storm",
"Сильная геомагнитная буря",
)
SEVERE_GEOMAGNETIC_STORM class-attribute instance-attribute ¶
SEVERE_GEOMAGNETIC_STORM = (
7,
"Severe geomagnetic storm",
"Жесткий геомагнитный шторм",
)
EXTREME_GEOMAGNETIC_STORM class-attribute instance-attribute ¶
EXTREME_GEOMAGNETIC_STORM = (
8,
"Extreme geomagnetic storm",
"Экстремальный шторм",
)
WindScale8 ¶
Bases: IntEnumWithDescription
NORTHEASTERLY class-attribute instance-attribute ¶
NORTHEASTERLY = (2, 'Northeasterly', 'Северо-восточный')
SOUTHEASTERLY class-attribute instance-attribute ¶
SOUTHEASTERLY = (4, 'Southeasterly', 'Юго-восточный')
SOUTHWESTERLY class-attribute instance-attribute ¶
SOUTHWESTERLY = (6, 'Southwesterly', 'Юго-западный')
NORTHWESTERLY class-attribute instance-attribute ¶
NORTHWESTERLY = (8, 'Northwesterly', 'Северо-западный')
GeographicObjectType ¶
Bases: StrEnumWithDescription
WEATHER_STATION class-attribute instance-attribute ¶
WEATHER_STATION = ('M', 'Weather station', 'Метеостанция')
step24 ¶
Precipitation ¶
Bases: FrozenModel
Pressure ¶
Percent ¶
Cloudiness ¶
Bases: FrozenModel
Date ¶
Radiation ¶
Max ¶
Min ¶
Max1 ¶
Max2 ¶
Avg ¶
Air ¶
Temperature ¶
Max3 ¶
Min3 ¶
Avg1 ¶
Speed ¶
Max4 ¶
Bases: FrozenModel
Min4 ¶
Bases: FrozenModel
Avg2 ¶
Bases: FrozenModel
Direction ¶
Wind ¶
ModelItem ¶
Bases: FrozenModel
step3 ¶
types ¶
Может пригодиться для типизации кода, использующего библиотеку.
Latitude module-attribute ¶
Широта.
LocalityID module-attribute ¶
ID географического объекта.
Longitude module-attribute ¶
Долгота.
SearchLimit module-attribute ¶
Ограничение количества географических объектов у поиска по координатам.
Step3Days module-attribute ¶
Количество дней у погоды с шагом 3 часа.
Step6Days module-attribute ¶
Количество дней у погоды с шагом 6 часов.
Step24Days module-attribute ¶
Количество дней у погоды с шагом 24 часа.
Lang ¶
Bases: StrEnum
Поддерживаемые Gismeteo API языки.
Current ¶
Current(session: THttpClient)
Bases: CurrentBase[HttpxClient]
Текущая погода.
by_coordinates ¶
by_id ¶
by_id(id_: LocalityID) -> Model
По ID географического объекта.
Parameters:
-
(id_¶LocalityID) –ID географического объекта. Получить можно через поиск.
Examples:
search_results = gismeteo.search.by_query("Москва")
city_id = search_results[0].id
current = gismeteo.current.by_id(city_id)
print(current)
Search ¶
Search(session: THttpClient)
Bases: SearchBase[HttpxClient]
Поиск.
by_coordinates ¶
by_ip ¶
by_ip(ip: IPv4Address) -> Model
По IPv4-адресу.
Parameters:
-
(ip¶IPv4Address) –IPv4-адрес.
Examples:
from ipaddress import IPv4Address
search_results = gismeteo.search.by_ip(IPv4Address("8.8.8.8"))
print(search_results)
Step3 ¶
Step3(session: THttpClient)
Bases: Step3Base[HttpxClient]
Погода с шагом 3 часа.
by_coordinates ¶
by_id ¶
by_id(id_: LocalityID, /, *, days: Step3Days) -> Model
По ID географического объекта.
Parameters:
-
(id_¶LocalityID) –ID географического объекта. Получить можно через поиск.
-
(days¶Step3Days) –Количество дней.
Examples:
search_results = gismeteo.search.by_query("Москва")
city_id = search_results[0].id
step3 = gismeteo.step3.by_id(city_id, days=10)
print(step3)
Step6 ¶
Step6(session: THttpClient)
Bases: Step6Base[HttpxClient]
Погода с шагом 6 часов.
by_coordinates ¶
by_id ¶
by_id(id_: LocalityID, /, *, days: Step6Days) -> Model
По ID географического объекта.
Parameters:
-
(id_¶LocalityID) –ID географического объекта. Получить можно через поиск.
-
(days¶Step6Days) –Количество дней.
Examples:
search_results = gismeteo.search.by_query("Москва")
city_id = search_results[0].id
step6 = gismeteo.step6.by_id(city_id, days=10)
print(step6)
Step24 ¶
Step24(session: THttpClient)
Bases: Step24Base[HttpxClient]
Погода с шагом 24 часа.
by_coordinates ¶
by_id ¶
by_id(id_: LocalityID, /, *, days: Step24Days) -> Model
По ID географического объекта.
Parameters:
-
(id_¶LocalityID) –ID географического объекта. Получить можно через поиск.
-
(days¶Step24Days) –Количество дней.
Examples:
search_results = gismeteo.search.by_query("Москва")
city_id = search_results[0].id
step24 = gismeteo.step24.by_id(city_id, days=10)
print(step24)