Metadata-Version: 2.4
Name: aviconv-met
Version: 0.3.0
Summary: Bidirectional METAR/SPECI ↔ TAF ↔ SIGMET/AIRMET ↔ VAA/TCA ↔ IWXXM 3.0 converter.
Project-URL: Homepage, https://github.com/ams-dev25/aviconv
Project-URL: Documentation, https://ams-dev25.github.io/aviconv/
Project-URL: Source, https://github.com/ams-dev25/aviconv
Project-URL: Issues, https://github.com/ams-dev25/aviconv/issues
Author: aviconv contributors
License: MIT
Keywords: airmet,aviation,icao,iwxxm,metar,opmet,sigmet,taf,tca,vaa,wmo
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: aviconv-core<0.1,>=0.0.2
Requires-Dist: click>=8.1
Requires-Dist: lxml>=5.2
Requires-Dist: pydantic>=2.7
Requires-Dist: shapely>=2.0
Requires-Dist: xmlschema>=3.3
Description-Content-Type: text/markdown

# aviconv-met

Bidirectional **METAR / SPECI ↔ TAF ↔ SIGMET / AIRMET ↔ VAA / TCA ↔ IWXXM 3.0**
converter — part of the [aviconv](https://github.com/ams-dev25/aviconv) monorepo.

```bash
pip install aviconv-met
```

ICAO mandated IWXXM (XML weather) for OPMET exchange in November 2020. Existing
toolchains for it are vendor-locked or one-way. `aviconv-met` is the
pip-installable, MIT-licensed, **round-trip** alternative.

## Public surface

```python
from aviconv_met import (
    Metar, Taf, Sigmet, Airmet, Vaa, Tca,
    parse_metar, format_metar,
    parse_taf, format_taf,
    parse_sigmet, format_sigmet,
    parse_advisory, format_advisory,
)
from aviconv_met.iwxxm import to_iwxxm, from_iwxxm
```

Frozen pydantic-v2 models for every report type, byte-stable text
round-trip for all six message types, and XSD-validated IWXXM 3.0
emission with field-level round-trip on inbound IWXXM.

## CLI

Mounted on the umbrella `aviconv` binary (provided by `aviconv-core`):

```bash
aviconv met parse <file>           # text → JSON
aviconv met format <file>          # JSON → text
aviconv met to-iwxxm <file>        # text → IWXXM 3.0 XML
aviconv met from-iwxxm <file>      # IWXXM XML → JSON or text
aviconv met validate <file>        # run validators
```

Each subcommand reads from `-` for stdin and writes stdout unless `-o PATH`.
Exit codes: `0` ok, `1` parse error, `2` validation error, `3` schema error.

## Round-trip semantics

- **Text round-trip (METAR/TAF/SIGMET/AIRMET/VAA/TCA):** byte-stable —
  `format_*(parse_*(text)) == text` whenever the model came from `parse_*`.
- **IWXXM round-trip:** field-level — `from_iwxxm(to_iwxxm(report)) == report`.
  GML IDs and namespace prefix choices are intentionally not preserved.

## Licence

MIT for `aviconv-met` itself. Bundled WMO IWXXM 3.0 schemas are
distributed under WMO open-data terms — see `LICENSES/README.md`.
