Aviation weather report parsing library
Project description
AVWX
Documentation: https://engine.avwx.rest
Source Code: https://github.com/avwx-rest/avwx-engine
PyPI: https://pypi.org/project/avwx-engine/
AVWX is a global aviation weather fetching and parsing engine. It sources reports from a variety of government sources, parses individual elements, and calculates additional information like flight rules and time range interpolation.
AVWX currently supports:
- Station data and search
- METAR
- TAF
- PIREP
- AIRMET / SIGMET
- NOTAM
- NBM (NBH, NBS, NBE)
- GFS (MAV, MEX)
Install
The easiest way to get started is to download the library from pypi using pip:
python -m pip install avwx-engine
Basic Usage
Reports use ICAO, IATA, or GPS idents when specifying the desired station. Exceptions are thrown if a potentially invalid ident is given.
>>> import avwx
>>>
>>> metar = avwx.Metar('KJFK')
>>> metar.station.name
'John F Kennedy International Airport'
>>> metar.update()
True
>>> metar.data.flight_rules
'IFR'
You can learn more by reading the project documentation
Note: This library requires Python 3.8 or above
Development
Download and install the source code and its development dependencies:
- Clone this repository
git clone https://github.com/avwx-rest/avwx-engine
cd avwx-engine
- Requirements:
- Poetry
- Python 3.8+
- Create a virtual environment and install the dependencies
poetry install
- Activate the virtual environment
poetry shell
Testing
The test suite was built while using the pytest
library, which is also installed as a dev dependency.
pytest
The end-to-end test files were generated using util/build_tests.py
and placed into tests/{report}/data
. Because Timestamp generation interprets the text based on the current date, Timestamp objects are nullified in the end-to-end tests.
Documentation
The documentation is automatically generated from the content of the docs directory and from the docstrings of the public signatures of the source code. The documentation is updated and published to engine.avwx.rest automatically as part each release.
You can also preview local changes during development:
cd docs
mkdocs serve
Releasing
Trigger the Draft release workflow (press Run workflow). This will update the changelog & version and create a GitHub release which is in Draft state.
Find the draft release from the GitHub releases and publish it. When a release is published, it'll trigger release workflow which creates PyPI release and deploys updated documentation.
Pre-commit
Pre-commit hooks run all the auto-formatters, linters, and other quality checks to make sure the changeset is in good shape before a commit/push happens.
You can install the hooks with (runs for each commit):
pre-commit install
Or if you want them to run only for each push:
pre-commit install -t pre-push
Or if you want e.g. want to run all checks manually for all files:
pre-commit run --all-files
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for avwx_engine-1.8.15-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de0ebd173d9f9171b2329981053161761db0140cd91f3b3c35a36084e8f47b1e |
|
MD5 | 6bffb738fc026714c4171ea936657e34 |
|
BLAKE2b-256 | 5d7c5ebcbc38dd2256e8b57fdcf8d0e9ff3ed28dcb898d3d6ccbecc93d41a97b |