Skip to main content

YaWeather | Yandex Weather API

Python PyPI License: MIT

Build Status

☀️🌤🌧🌩❄️ Yandex Weather API wrapper with typings and asyncio support.

Docs: https://tech.yandex.com/weather/doc/dg/concepts/forecast-test-docpage (RU)

Get API Key: https://developer.tech.yandex.ru/services/18

📝 Table of Contents


🎒 Installation

Just

pip install yaweather

🛠 Examples

Simple

from yaweather import UnitedKingdom, YaWeather

y = YaWeather(api_key='secret')
res = y.forecast(UnitedKingdom.London)

print(f'Now: {res.fact.temp} °C, feels like {res.fact.feels_like} °C')
print(f'Condition: {res.fact.condition}')

Output:

Now: 18.0 °C, feels like 15.0 °C
Condition: cloudy

Simple Async

import asyncio

from yaweather import Russia, YaWeatherAsync


async def main():
    async with YaWeatherAsync(api_key='secret') as y:
        res = await y.forecast(Russia.Moscow)

        print(f'Now: {res.fact.temp} °C, feels like {res.fact.feels_like} °C')
        print(f'Condition: {res.fact.condition}')


asyncio.run(main())

Output:

Now: 16.0 °C, feels like 16.0 °C
Condition: clear

Forecasts

from yaweather import UnitedStates, YaWeather

y = YaWeather(api_key='secret')

res = y.forecast(UnitedStates.NewYork)

for f in res.forecasts:
    day = f.parts.day_short
    print(f'{f.date} | {day.temp} °C, {day.condition}')

Output:

2020-07-30 | 32.0 °C, cloudy
2020-07-31 | 26.0 °C, light-rain
2020-08-01 | 28.0 °C, cloudy
2020-08-02 | 28.0 °C, rain
2020-08-03 | 28.0 °C, light-rain
2020-08-04 | 27.0 °C, rain
2020-08-05 | 29.0 °C, light-rain

Forecasts Async

import asyncio

from yaweather import China, YaWeatherAsync


async def main():
    async with YaWeatherAsync(api_key='secret') as y:
        res = await y.forecast(China.Beijing)

        for f in res.forecasts:
            day = f.parts.day_short
            print(f'{f.date} | {day.temp} °C, {day.condition}')


asyncio.run(main())

Output:

2020-07-31 | 34.0 °C, light-rain
2020-08-01 | 34.0 °C, cloudy
2020-08-02 | 30.0 °C, heavy-rain
2020-08-03 | 33.0 °C, cloudy
2020-08-04 | 35.0 °C, cloudy
2020-08-05 | 34.0 °C, light-rain
2020-08-06 | 31.0 °C, heavy-rain

📜 Manual

Methods

API have one method:

  • forecast — request for the forecast, return type: ResponseForecast

Types

This library uses pydantic for parsing API responses. You can see data models in yaweather/models.

In case of unsupported types

API results can change and the library may not parse the new result. So you can request «raw» dicts:

raw_dict = y.forecast_raw(UnitedKingdom.London)

👨🏻‍💻 Author

Ramzan Bekbulatov:

💬 Contributing

Contributions, issues and feature requests are welcome!

📝 License

This project is MIT licensed.

Metadata

Release files for yaweather 1.2.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 yaweather 1.2.1
File Size Uploaded Provenance Actions
yaweather-1.2.1.tar.gz 28.1 kB Without provenance Details for yaweather-1.2.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for yaweather 1.2.1
File Interpreter ABI Platform Actions
yaweather-1.2.1-py3-none-any.whl Python 3 none any Details for yaweather-1.2.1-py3-none-any.whl

Total release size: 57.0 kB

Release files / yaweather-1.2.1.tar.gz

Download URL yaweather-1.2.1.tar.gz
Size 28.1 kB
Tags Source
SHA-256 checksum
How to use checksums
098f1d23352057e6c4e06e0b86bdd87222137bb601f8b24b5320ef87354f0c2d
BLAKE2b-256 checksum
How to use checksums
474a7d8489370bb3047295044a25cb966c114c6ea41bbcc276311f5d3403dc18
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

Release files / yaweather-1.2.1-py3-none-any.whl

Download URL yaweather-1.2.1-py3-none-any.whl
Size 28.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9e3345148b90fadc42c37ed72a184aee42d54b5a39447ad56485bcb9ee622919
BLAKE2b-256 checksum
How to use checksums
383f08d0ac64bff69cb00cdd5985e1aab686efb05e8b8634032bde42a94b5a90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

Security for yaweather 1.2.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.

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