avwx-engine


Nameavwx-engine JSON
Version 1.9.2 PyPI version JSON
download
home_pageNone
SummaryAviation weather report parsing library
upload_time2024-12-02 18:38:28
maintainerNone
docs_urlhttps://pythonhosted.org/avwx-engine/
authorNone
requires_python>=3.10
licenseMIT
keywords aviation metar weather
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # AVWX

![AVWX logo](https://raw.githubusercontent.com/avwx-rest/avwx-engine/main/docs/assets/images/avwx-logo-color-200.png)

[![PyPI](https://img.shields.io/pypi/v/avwx-engine?style=flat)](https://pypi.python.org/pypi/avwx-engine/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/avwx-engine?style=flat)](https://pypi.python.org/pypi/avwx-engine/)
[![GitHub - Test Suite Status](https://github.com/avwx-rest/avwx-engine/actions/workflows/test.yml/badge.svg)](https://github.com/avwx-rest/avwx-engine/actions/workflows/test.yml)
[![Hatch project](https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg)](https://github.com/pypa/hatch)
[![Checked with mypy](https://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

---

**Documentation**: [https://engine.avwx.rest](https://engine.avwx.rest)

**Source Code**: [https://github.com/avwx-rest/avwx-engine](https://github.com/avwx-rest/avwx-engine)

**PyPI**: [https://pypi.org/project/avwx-engine/](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:

```bash
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.

```python
>>> 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](https://engine.avwx.rest)

**Note**: This library requires Python 3.10 or above

## Development

Download and install the source code and its development dependencies:

* Clone this repository

```sh
git clone https://github.com/avwx-rest/avwx-engine
cd avwx-engine
```

* Requirements:
  * [Hatch](https://hatch.pypa.io/latest/)
  * Python 3.10+

* Create a virtual environment and install the dependencies

```sh
hatch env create
```

* Activate the virtual environment

```sh
hatch shell
```

### Formatting and Code Checks

`hatch` handles all of the formatting and linting for us. The library and test suite are fully typed and formatted. Make sure to run these checks before submitting PRs because the workflows will fail if errors are found.

Typing with `mypy`:

```bash
hatch run types:check
```

Code formatting and linting:

```bash
hatch fmt
```

### Testing

Testing is managed by `hatch` which uses `pytest` and coverage under the hood.

```bash
hatch test
```

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](./docs) and from the docstrings of the public signatures of the source code. The documentation is updated and published to [engine.avwx.rest](https://engine.avwx.rest) automatically as part each release.

You can also preview local changes during development:

```sh
hatch run docs:serve
```

### Releasing

Trigger the [Draft release workflow](https://github.com/avwx-rest/avwx-engine/actions/workflows/draft_release.yml) (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](https://github.com/avwx-rest/avwx-engine/releases) and publish it. When a release is published, it'll trigger [release](https://github.com/avwx-rest/avwx-engine/blob/main/.github/workflows/release.yml) workflow which creates PyPI release and deploys updated documentation.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "avwx-engine",
    "maintainer": null,
    "docs_url": "https://pythonhosted.org/avwx-engine/",
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "aviation, metar, weather",
    "author": null,
    "author_email": "Michael duPont <michael@dupont.dev>",
    "download_url": "https://files.pythonhosted.org/packages/9a/c5/ee5dbba4cd5fde80828fd37f5999bf980c3813349b0ba909d77c89036474/avwx_engine-1.9.2.tar.gz",
    "platform": null,
    "description": "# AVWX\n\n![AVWX logo](https://raw.githubusercontent.com/avwx-rest/avwx-engine/main/docs/assets/images/avwx-logo-color-200.png)\n\n[![PyPI](https://img.shields.io/pypi/v/avwx-engine?style=flat)](https://pypi.python.org/pypi/avwx-engine/)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/avwx-engine?style=flat)](https://pypi.python.org/pypi/avwx-engine/)\n[![GitHub - Test Suite Status](https://github.com/avwx-rest/avwx-engine/actions/workflows/test.yml/badge.svg)](https://github.com/avwx-rest/avwx-engine/actions/workflows/test.yml)\n[![Hatch project](https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg)](https://github.com/pypa/hatch)\n[![Checked with mypy](https://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n---\n\n**Documentation**: [https://engine.avwx.rest](https://engine.avwx.rest)\n\n**Source Code**: [https://github.com/avwx-rest/avwx-engine](https://github.com/avwx-rest/avwx-engine)\n\n**PyPI**: [https://pypi.org/project/avwx-engine/](https://pypi.org/project/avwx-engine/)\n\n---\n\nAVWX 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.\n\nAVWX currently supports:\n\n- Station data and search\n- METAR\n- TAF\n- PIREP\n- AIRMET / SIGMET\n- NOTAM\n- NBM (NBH, NBS, NBE)\n- GFS (MAV, MEX)\n\n## Install\n\nThe easiest way to get started is to download the library from pypi using pip:\n\n```bash\npython -m pip install avwx-engine\n```\n\n## Basic Usage\n\nReports use ICAO, IATA, or GPS idents when specifying the desired station. Exceptions are thrown if a potentially invalid ident is given.\n\n```python\n>>> import avwx\n>>>\n>>> metar = avwx.Metar('KJFK')\n>>> metar.station.name\n'John F Kennedy International Airport'\n>>> metar.update()\nTrue\n>>> metar.data.flight_rules\n'IFR'\n```\n\nYou can learn more by reading the [project documentation](https://engine.avwx.rest)\n\n**Note**: This library requires Python 3.10 or above\n\n## Development\n\nDownload and install the source code and its development dependencies:\n\n* Clone this repository\n\n```sh\ngit clone https://github.com/avwx-rest/avwx-engine\ncd avwx-engine\n```\n\n* Requirements:\n  * [Hatch](https://hatch.pypa.io/latest/)\n  * Python 3.10+\n\n* Create a virtual environment and install the dependencies\n\n```sh\nhatch env create\n```\n\n* Activate the virtual environment\n\n```sh\nhatch shell\n```\n\n### Formatting and Code Checks\n\n`hatch` handles all of the formatting and linting for us. The library and test suite are fully typed and formatted. Make sure to run these checks before submitting PRs because the workflows will fail if errors are found.\n\nTyping with `mypy`:\n\n```bash\nhatch run types:check\n```\n\nCode formatting and linting:\n\n```bash\nhatch fmt\n```\n\n### Testing\n\nTesting is managed by `hatch` which uses `pytest` and coverage under the hood.\n\n```bash\nhatch test\n```\n\nThe 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.\n\n### Documentation\n\nThe documentation is automatically generated from the content of the [docs directory](./docs) and from the docstrings of the public signatures of the source code. The documentation is updated and published to [engine.avwx.rest](https://engine.avwx.rest) automatically as part each release.\n\nYou can also preview local changes during development:\n\n```sh\nhatch run docs:serve\n```\n\n### Releasing\n\nTrigger the [Draft release workflow](https://github.com/avwx-rest/avwx-engine/actions/workflows/draft_release.yml) (press _Run workflow_). This will update the changelog & version and create a GitHub release which is in _Draft_ state.\n\nFind the draft release from the [GitHub releases](https://github.com/avwx-rest/avwx-engine/releases) and publish it. When a release is published, it'll trigger [release](https://github.com/avwx-rest/avwx-engine/blob/main/.github/workflows/release.yml) workflow which creates PyPI release and deploys updated documentation.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Aviation weather report parsing library",
    "version": "1.9.2",
    "project_urls": {
        "Documentation": "https://engine.avwx.rest",
        "Homepage": "https://engine.avwx.rest",
        "Issues": "https://github.com/avwx-rest/avwx-engine/issues",
        "Source": "https://github.com/avwx-rest/avwx-engine"
    },
    "split_keywords": [
        "aviation",
        " metar",
        " weather"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cf24fdc5879b97ceac595c5d903c7867a69a8e4e61e32c64cc64d2e8a42a33c3",
                "md5": "5ea744e31770e208d66d626876a8e40b",
                "sha256": "8e38255148a2c833bcf38dc2339a9d7ea9ad5e957883d49d8235ba3c50f4ea9f"
            },
            "downloads": -1,
            "filename": "avwx_engine-1.9.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5ea744e31770e208d66d626876a8e40b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 3445474,
            "upload_time": "2024-12-02T18:38:26",
            "upload_time_iso_8601": "2024-12-02T18:38:26.149549Z",
            "url": "https://files.pythonhosted.org/packages/cf/24/fdc5879b97ceac595c5d903c7867a69a8e4e61e32c64cc64d2e8a42a33c3/avwx_engine-1.9.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9ac5ee5dbba4cd5fde80828fd37f5999bf980c3813349b0ba909d77c89036474",
                "md5": "10ead431b27bb5a126b2a61cb0b1084c",
                "sha256": "914e2d845f6de965ffb05b962054a59990cbe4e8b23966786983d5037cf2c2a3"
            },
            "downloads": -1,
            "filename": "avwx_engine-1.9.2.tar.gz",
            "has_sig": false,
            "md5_digest": "10ead431b27bb5a126b2a61cb0b1084c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 3123383,
            "upload_time": "2024-12-02T18:38:28",
            "upload_time_iso_8601": "2024-12-02T18:38:28.202254Z",
            "url": "https://files.pythonhosted.org/packages/9a/c5/ee5dbba4cd5fde80828fd37f5999bf980c3813349b0ba909d77c89036474/avwx_engine-1.9.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-02 18:38:28",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "avwx-rest",
    "github_project": "avwx-engine",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "avwx-engine"
}
        
Elapsed time: 2.41998s