dfb-weather
Библиотека для быстрого и удобного получения текущих данных о погоде через бесплатное API Open-Meteo с автоматическим определением местоположения по IP-адресу.
🚀 Особенности
- 🌍 Автоматическая геолокация: Если координаты не переданы, библиотека сама определит ваше местоположение (город) по IP-адресу через сервис
ip-api.com. - ⚡ Чистые данные: Никакого мусора в ответах — только нужная информация (температура, влажность, давление, ветер, облачность).
- 🌡️ Адаптация под СНГ: Давление автоматически переводится из гектопаскалей (hPa) в привычные мм рт. ст., а скорость ветра отдается в м/с.
- 🛠️ Безопасность: Защита от изменений структуры сторонних API — данные парсятся строго по ключам, а не через слепую распаковку.
📦 Установка
Установка библиотеки:
pip install dfb-weather
🛠️ Быстрый старт
1. Автоматическое определение погоды по IP
Вам не нужно искать свои координаты — библиотека сделает это за вас:
from dfb_weather import Weather
# Создаем объект погоды
weather = Weather()
# Обновляем данные (координаты определятся по вашему IP)
if weather.update():
# Получаем данные в виде словаря
data = weather.to_dict()
print(f"Погода на время: {data['time']}")
print(f"Температура: {data['temperature']} °C (ощущается как {data['apparent_temperature']} °C)")
print(f"Влажность: {data['relative_humidity']}%")
print(f"Давление: {data['surface_pressure']} мм рт. ст.")
print(f"Ветер: {data['wind_speed']} м/с")
else:
print("Не удалось получить данные о погоде.")
Так же можно получить данные не только в виде словаря, но и как параметр:
temperature = weather.temperature # Здесь weather - экземпляр класса
2. Запрос погоды по конкретным координатам
Если вы знаете точную широту и долготу (например, для Москвы — 55.7558, 37.6173):
from dfb_weather import Weather
weather = Weather()
# Передаем координаты кортежем (latitude, longitude)
if weather.update(lat_lon=(55.7558, 37.6173)):
print(f"Температура в Москве: {weather.temperature} °C")
📋 Описание возвращаемых данных
Метод weather.to_dict() возвращает словарь со следующими полями:
| Ключ | Описание | Единицы измерения |
|---|---|---|
time |
Время замера данных на сервере | Текстовый формат (YYYY-MM-DDTHH:MM) |
temperature |
Фактическая температура воздуха на высоте 2 метров | Градусы Цельсия (°C) |
apparent_temperature |
Ощущаемая температура с учетом ветра и влажности | Градусы Цельсия (°C) |
relative_humidity |
Относительная влажность воздуха | Проценты (%) |
precipitation |
Общий объем осадков (дождь/снег) за последний час | Миллиметры (мм) |
wind_speed |
Скорость движения воздушных масс (ветер) | Метры в секунду (м/с) |
cloud_cover |
Степень покрытия неба облаками | Проценты (от 0% до 100%) |
surface_pressure |
Атмосферное давление на уровне земли | Миллиметры ртутного столба (мм рт. ст.) |
🔒 Требования и зависимости
- Python:
>= 3.8 - Библиотеки:
requests>=2.25.0
📄 Лицензия
Проект распространяется под лицензией MIT. Подробнее см. в файле LICENSE.
👨💻 Автор: Fribus Danila (dbfribus4@gmail.com)
Metadata
Release files for dfb-weather 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| dfb_weather-0.1.1.tar.gz | 4.5 kB | Without provenance | Details for dfb_weather-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| dfb_weather-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for dfb_weather-0.1.1-py3-none-any.whl |
Total release size: 9.6 kB
Release files / dfb_weather-0.1.1.tar.gz
| Download URL | dfb_weather-0.1.1.tar.gz |
|---|---|
| Size | 4.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a1f8f77733d3fb4cbabef3427df49cfed373bf1f2edb17ebd31ff858486d66c0
|
|
BLAKE2b-256 checksum How to use checksums |
596299a9e633649ffb6266592f73326cd0cc43780826435fd142c16eb150efc7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.0
|
Release files / dfb_weather-0.1.1-py3-none-any.whl
| Download URL | dfb_weather-0.1.1-py3-none-any.whl |
|---|---|
| Size | 5.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bee6bff8929aea6c3fd33fd2a4bc3a97a1a39bdca66032eed146526e4e601fa7
|
|
BLAKE2b-256 checksum How to use checksums |
f35219405f5854f1dc53669972ef3bb5ee631942003b89daad9a4287cbc43ceb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.0
|
Security for dfb-weather 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.