Skip to main content

This project represents sample of asynchronous weather REST API that is build using quart (flask compatible API) python web microframework based on Asyncio

Project description

made-with-python Code style: black GitHub version Build Status Coverage Status

Forks Stars Issues GitHub watchers GitHub contributors

PyPI version PyPI pyversions

Docker pulls License

Async weather API

This project represents sample of asynchronous weather REST API that is build using quart (flask compatible API) python web microframework based on Asyncio.




Please run following script to obtain latest package from PYPI:

 pip install async-weather-api

Then please execute instructions below to launch game from your environment:

import weather"your-secret-key", bind="", debug=False)
Running on (CTRL + C to quit)

Note key stands for API key from

Docker image

Please run next command to start async weather api via docker:

docker run -it -p 3000:5001 vyahello/async-weather-api:0.5.0 weather run --bind --mode prod --key <secret-key>

Source code

To be able to run source code please execute command below:

 python -m weather run --bind --mode prod --key your-secret-key
Running on (CTRL + C to quit)


  • / - home page
      curl -X GET   curl -X GET 
    Response: html page
  • /api/weather/{city}/{state}/{country} - current weather event
      curl -X GET
    Response: json object
    {"city":"London","country":"GreatBritain","name":"Jeff the player","state":"GB"}
  • /api/weather/{zip_code}/{country} - current weather in city
      curl -X GET
    Response: json object
  • /api/sun/{zip_code}/{country} - current sunset/sunrise in city
      curl -X GET
    Response: json object
    {"astronomical_twilight_begin":"04:03:49 PM","astronomical_twilight_end":"04:29:50 AM",

Development notes


Project has Travis CI integration using .travis.yml file thus code analysis (black, mypy, pydocstyle, pylint, flake8) and unittests (pytest) will be run automatically after every made change to the repository.

To be able to run code analysis, please execute command below:


Also test-report.html will be generated after unittests execution.

Other than that, a fresh versioned package will be delivered on PYPI after new tag is created using pythonpublish.yml file.

Release notes

  • 0.5.0
    • Add official docker image
  • 0.4.2
    • Add manifest package installer file
  • 0.4.1
    • Read requirements for PYPI build
  • 0.4.0
    • Introduce PYPI package
  • 0.3.0
    • Introduce asynchronous approach
  • 0.2.0
    • Introduce synchronous approach
  • 0.1.0
    • Distribute initial project version


Author – Volodymyr Yahello

Distributed under the MIT license. See LICENSE for more information.

You can reach out me at:


  1. clone the repository
  2. configure Git for the first time after cloning with your name and email
  3. pip install -r requirements.txt to install all project dependencies
  4. pip install -r requirements-dev.txt to install all development project dependencies

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

async-weather-api-0.5.0.tar.gz (7.8 kB view hashes)

Uploaded source

Built Distribution

async_weather_api-0.5.0-py3-none-any.whl (11.0 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page