Skip to main content

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)

Source distribution for dfb-weather 0.1.1
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)

Table of built distributions (wheels) for dfb-weather 0.1.1
File Interpreter ABI Platform Actions
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.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page