pygismeteo¶
Добро пожаловать в документацию pygismeteo, обёртки для Gismeteo API на Python!
Асинхронная версия здесь.
Разработка приостановлена¶
Для использования библиотеки нужен API токен, который можно запросить по электронной почте b2b@gismeteo.ru.
В настоящее время у разработчика отсутствует API токен, что делает невозможными тестирование и дальнейшую разработку.
Если вам нужна погодная библиотека без API токена, можете рассмотреть https://github.com/monosans/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:
...
Кастомный httpx.Client:
with httpx.Client(
timeout=httpx.Timeout(60, connect=5), follow_redirects=True
) as session:
gismeteo = pygismeteo.Gismeteo(token=..., session=session)
...
__version__ module-attribute ¶
__version__ = '8.0.1'
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:
...
Кастомный httpx.Client:
with httpx.Client(
timeout=httpx.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:
...
Кастомный httpx.Client:
with httpx.Client(
timeout=httpx.Timeout(60, connect=5), follow_redirects=True
) as session:
gismeteo = gismeteo.Gismeteo(token=..., session=session)
...
base_url property ¶
base_url: AnyHttpUrl
session property ¶
session: Client | None
models ¶
Pydantic модели ответов Gismeteo API.
current ¶
Precipitation ¶
Bases: FrozenModel
intensity instance-attribute ¶
intensity: PrecipitationIntensity
type instance-attribute ¶
type: PrecipitationType
Pressure ¶
Direction ¶
Bases: FrozenModel
scale_8 class-attribute instance-attribute ¶
scale_8: WindScale8 | None = None
Speed ¶
Wind ¶
Cloudiness ¶
Bases: FrozenModel
type instance-attribute ¶
type: CloudinessType
Date ¶
Bases: FrozenModel
Radiation ¶
Comfort ¶
Water ¶
Air ¶
Temperature ¶
Model ¶
Bases: FrozenModel
precipitation instance-attribute ¶
precipitation: Precipitation
gm instance-attribute ¶
gm: GeomagneticField
cloudiness instance-attribute ¶
cloudiness: Cloudiness
kind instance-attribute ¶
kind: WeatherDataType
temperature instance-attribute ¶
temperature: Temperature
description instance-attribute ¶
description: Description
enums ¶
Description dataclass ¶
IntEnumWithDescription ¶
Bases: _DescriptionMixin, IntEnum
StrEnumWithDescription ¶
Bases: _DescriptionMixin, StrEnum
WeatherDataType ¶
Bases: StrEnumWithDescription
CloudinessType ¶
Bases: IntEnumWithDescription
SUNNY class-attribute instance-attribute ¶
SUNNY = (0, 'Sunny', 'Ясно')
MOSTLY_SUNNY class-attribute instance-attribute ¶
MOSTLY_SUNNY = (1, 'Mostly sunny', 'Малооблачно')
MOSTLY_CLOUDY class-attribute instance-attribute ¶
MOSTLY_CLOUDY = (2, 'Mostly cloudy', 'Облачно')
OVERCAST class-attribute instance-attribute ¶
OVERCAST = (3, 'Overcast', 'Пасмурно')
PARTLY_CLOUDY class-attribute instance-attribute ¶
PARTLY_CLOUDY = (
101,
"Partly cloudy",
"Переменная облачность",
)
PrecipitationType ¶
Bases: IntEnumWithDescription
NO_PRECIPITATION class-attribute instance-attribute ¶
NO_PRECIPITATION = (0, 'No precipitation', 'Нет осадков')
RAIN class-attribute instance-attribute ¶
RAIN = (1, 'Rain', 'Дождь')
SNOW class-attribute instance-attribute ¶
SNOW = (2, 'Snow', 'Снег')
MIXED_PRECIPITATION class-attribute instance-attribute ¶
MIXED_PRECIPITATION = (
3,
"Mixed precipitation",
"Смешанные осадки",
)
PrecipitationIntensity ¶
Bases: IntEnumWithDescription
NO_PRECIPITATION class-attribute instance-attribute ¶
NO_PRECIPITATION = (0, 'No precipitation', 'Нет осадков')
RAIN class-attribute instance-attribute ¶
RAIN = (1, 'Light rain / snow', 'Небольшой дождь / снег')
SNOW class-attribute instance-attribute ¶
SNOW = (2, 'Rain / snow', 'Дождь / снег')
MIXED_PRECIPITATION class-attribute instance-attribute ¶
MIXED_PRECIPITATION = (
3,
"Heavy rain / snow",
"Сильный дождь / снег",
)
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
CALM class-attribute instance-attribute ¶
CALM = (0, 'Calm', 'Штиль')
NORTHERLY class-attribute instance-attribute ¶
NORTHERLY = (1, 'Northerly', 'Северный')
NORTHEASTERLY class-attribute instance-attribute ¶
NORTHEASTERLY = (2, 'Northeasterly', 'Северо-восточный')
EASTERLY class-attribute instance-attribute ¶
EASTERLY = (3, 'Easterly', 'Восточный')
SOUTHEASTERLY class-attribute instance-attribute ¶
SOUTHEASTERLY = (4, 'Southeasterly', 'Юго-восточный')
SOUTHERLY class-attribute instance-attribute ¶
SOUTHERLY = (5, 'Southerly', 'Южный')
SOUTHWESTERLY class-attribute instance-attribute ¶
SOUTHWESTERLY = (6, 'Southwesterly', 'Юго-западный')
WESTERLY class-attribute instance-attribute ¶
WESTERLY = (7, 'Westerly', 'Западный')
NORTHWESTERLY class-attribute instance-attribute ¶
NORTHWESTERLY = (8, 'Northwesterly', 'Северо-западный')
GeographicObjectType ¶
Bases: StrEnumWithDescription
CITY class-attribute instance-attribute ¶
CITY = ('T', 'City', 'Город')
METROPOLIS class-attribute instance-attribute ¶
METROPOLIS = ('C', 'Metropolis', 'Метрополис')
AIRPORT class-attribute instance-attribute ¶
AIRPORT = ('A', 'Airport', 'Аэропорт')
WEATHER_STATION class-attribute instance-attribute ¶
WEATHER_STATION = ('M', 'Weather station', 'Метеостанция')
search_by_coordinates ¶
District ¶
SubDistrict ¶
Country ¶
ModelItem ¶
Bases: FrozenModel
sub_district class-attribute instance-attribute ¶
sub_district: SubDistrict | None = None
kind instance-attribute ¶
kind: GeographicObjectType
search_by_ip ¶
District ¶
SubDistrict ¶
Country ¶
Model ¶
Bases: FrozenModel
sub_district class-attribute instance-attribute ¶
sub_district: SubDistrict | None = None
kind instance-attribute ¶
kind: GeographicObjectType
search_by_query ¶
District ¶
Country ¶
SubDistrict ¶
ModelItem ¶
Bases: FrozenModel
sub_district class-attribute instance-attribute ¶
sub_district: SubDistrict | None = None
kind instance-attribute ¶
kind: GeographicObjectType
step24 ¶
Precipitation ¶
Bases: FrozenModel
intensity instance-attribute ¶
intensity: PrecipitationIntensity
type instance-attribute ¶
type: PrecipitationType
Pressure ¶
Percent ¶
Cloudiness ¶
Bases: FrozenModel
type instance-attribute ¶
type: CloudinessType
Date ¶
Radiation ¶
Max ¶
Min ¶
Max1 ¶
Max2 ¶
Avg ¶
Air ¶
Temperature ¶
Max3 ¶
Min3 ¶
Avg1 ¶
Speed ¶
Max4 ¶
Bases: FrozenModel
scale_8 class-attribute instance-attribute ¶
scale_8: WindScale8 | None = None
Min4 ¶
Bases: FrozenModel
scale_8 class-attribute instance-attribute ¶
scale_8: WindScale8 | None = None
Avg2 ¶
Bases: FrozenModel
scale_8 class-attribute instance-attribute ¶
scale_8: WindScale8 | None = None
Direction ¶
Wind ¶
ModelItem ¶
Bases: FrozenModel
precipitation instance-attribute ¶
precipitation: Precipitation
gm instance-attribute ¶
gm: GeomagneticField
description instance-attribute ¶
description: Description
cloudiness instance-attribute ¶
cloudiness: Cloudiness
kind class-attribute instance-attribute ¶
kind: WeatherDataType | None = None
temperature instance-attribute ¶
temperature: Temperature
step3 ¶
Precipitation ¶
Bases: FrozenModel
intensity instance-attribute ¶
intensity: PrecipitationIntensity
type instance-attribute ¶
type: PrecipitationType
Pressure ¶
Direction ¶
Bases: FrozenModel
scale_8 class-attribute instance-attribute ¶
scale_8: WindScale8 | None = None
Speed ¶
Wind ¶
Cloudiness ¶
Bases: FrozenModel
type instance-attribute ¶
type: CloudinessType
Date ¶
Bases: FrozenModel
Radiation ¶
Comfort ¶
Water ¶
Air ¶
Temperature ¶
ModelItem ¶
Bases: FrozenModel
precipitation instance-attribute ¶
precipitation: Precipitation
gm instance-attribute ¶
gm: GeomagneticField
cloudiness instance-attribute ¶
cloudiness: Cloudiness
kind instance-attribute ¶
kind: WeatherDataType
temperature instance-attribute ¶
temperature: Temperature
description instance-attribute ¶
description: Description
step6 ¶
Precipitation ¶
Bases: FrozenModel
intensity instance-attribute ¶
intensity: PrecipitationIntensity
type instance-attribute ¶
type: PrecipitationType
Pressure ¶
Direction ¶
Bases: FrozenModel
scale_8 class-attribute instance-attribute ¶
scale_8: WindScale8 | None = None
Speed ¶
Wind ¶
Cloudiness ¶
Bases: FrozenModel
type instance-attribute ¶
type: CloudinessType
Date ¶
Bases: FrozenModel
Radiation ¶
Comfort ¶
Water ¶
Air ¶
Temperature ¶
ModelItem ¶
Bases: FrozenModel
precipitation instance-attribute ¶
precipitation: Precipitation
gm instance-attribute ¶
gm: GeomagneticField
cloudiness instance-attribute ¶
cloudiness: Cloudiness
kind instance-attribute ¶
kind: WeatherDataType
temperature instance-attribute ¶
temperature: Temperature
description instance-attribute ¶
description: Description
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 языки.
RU class-attribute instance-attribute ¶
RU = 'ru'
EN class-attribute instance-attribute ¶
EN = 'en'
UA class-attribute instance-attribute ¶
UA = 'ua'
LT class-attribute instance-attribute ¶
LT = 'lt'
LV class-attribute instance-attribute ¶
LV = 'lv'
PL class-attribute instance-attribute ¶
PL = 'pl'
RO class-attribute instance-attribute ¶
RO = 'ro'
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)