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)