Skip to main content

Python bindings for the igc-net flight log exchange protocol

Project description

igc-net (Python)

Python bindings for the igc-net flight log exchange protocol, wrapping the Rust reference implementation via PyO3.

Installation

Install from PyPI:

pip install igc-net

If no matching wheel is available for your platform, pip will build the extension from source. That requires a local Rust toolchain.

For unreleased local development, use a checkout and maturin develop; see Development below.

Quick start

from igc_net import IgcNode, FlightMetadata
from pathlib import Path

# Inspect an IGC file (offline, no network needed)
meta = FlightMetadata.from_igc(Path("flight.igc").read_bytes())
print(meta.pilot_name, meta.duration_s)

# Publish to the network
with IgcNode(str(Path.home() / ".igc-net")) as node:
    result = node.publish(Path("flight.igc").read_bytes(), filename="flight.igc")
    print(result.igc_hash)

CLI

igc-net announce flight.igc       # Publish an IGC file
igc-net runindex --policy eager   # Run an indexer node
igc-net fetch <igc_hash>          # Retrieve by hash
igc-net inspect flight.igc        # Analyze offline
igc-net list                      # Show local index

Development

Requires Rust toolchain and Python 3.12+.

python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
make test

Useful targets:

make help
make fmt
make vet
make itest
make compliance

Cross-language compliance tests require the Rust CLI binary and do not assume a local sibling checkout. Install it separately and point the tests at it:

cargo install igc-net-cli
IGCNET_RS_BIN="$HOME/.cargo/bin/igc-net" make compliance

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

igc_net-0.1.0.tar.gz (83.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

igc_net-0.1.0-cp314-cp314-macosx_11_0_arm64.whl (9.2 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

File details

Details for the file igc_net-0.1.0.tar.gz.

File metadata

  • Download URL: igc_net-0.1.0.tar.gz
  • Upload date:
  • Size: 83.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for igc_net-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e69b90a24d1ed59873ffd93277e1c20d51264c29d2519dcb803508c64a448660
MD5 645418da3df491b9a24c07bbe109830c
BLAKE2b-256 ad5669c139307f832b097879668c53c4562590690845f869669a371ffde4490b

See more details on using hashes here.

File details

Details for the file igc_net-0.1.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for igc_net-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d92043856c9fd001f05cf388ea502550b5b6a21d510ece6c62f3489df664f946
MD5 431cbef998d95ffb1c3c5c1847381cac
BLAKE2b-256 dec23bdfbfa5cb19aab7014dcd3879fb135acef8db699ab798ba4ef5581304d6

See more details on using hashes here.

Supported by

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