Skip to main content

rustigc-py

Python bindings for rustigc: parsing and cross-country scoring of IGC flight recorder files.

Installation

pip install rustigc-py

Usage

from rustigc_py import Log

log = Log.from_file("flight.igc")
print(log.pilot_name, log.glider_type, len(log.track))

flight = log.flights().longest
score = log.score("xcontest")  # or log.score("xcontest", (125, 25457))
if score:
    print(score.description, score.score, score.distance_km)

open("flight.geojson", "w").write(log.export(flight, score))

Log is the entry point. The API is documented in the docstrings — help(rustigc_py.Log), or hover in any editor; the package ships py.typed, so type checkers see the annotations too.

A track is a numpy structured array underneath, copied once from Rust and then read entirely in Python. Track hands out views over it for vectorized work:

log.track._latitude.mean()
log.track._data[0:100]

The array is read-only, so it always matches what Rust holds. A Log never changes either: Log.with_track hands back a new one over the track it is given.

Scoring without a log

Scorer scores a table of coordinates, so points that do not come from an IGC file score the same way. It takes an (N, 2) array of [latitude, longitude] in degrees, in flight order:

from rustigc_py import Scorer

score = Scorer(points).score("xcontest")

The whole table is the scored window — there are no timestamps to detect a flight in — and there are no fixes behind the result, so takeoff, entry, turnpoints, exit and landing come back as plain indices into the table rather than Fix objects.

league_names() lists what score accepts.

Development

python -m venv venv && source venv/bin/activate
pip install maturin pytest
maturin develop
python -m pytest -v

License

GPL-2.0-or-later WITH Classpath-exception-2.0

Metadata

Release files for rustigc-py 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rustigc-py 0.1.1
File Size Uploaded
rustigc_py-0.1.1.tar.gz 4.7 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for rustigc-py 0.1.1
File
rustigc_py-0.1.1-cp312-abi3-win_amd64.whl CPython 3.12 abi3 Windows x86-64 Details
rustigc_py-0.1.1-cp312-abi3-manylinux_2_28_x86_64.whl CPython 3.12 abi3 Linux glibc 2.28+ x86-64 Details
rustigc_py-0.1.1-cp312-abi3-manylinux_2_28_aarch64.whl CPython 3.12 abi3 Linux glibc 2.28+ ARM64 Details
rustigc_py-0.1.1-cp312-abi3-macosx_11_0_arm64.whl CPython 3.12 abi3 macOS 11.0+ ARM64 Details

Total release size: 6.2 MB

Release files / rustigc_py-0.1.1.tar.gz

Download URL rustigc_py-0.1.1.tar.gz
Size 4.7 MB
Tags Source
SHA-256 checksum
How to use checksums
c9fb9860bb0a7a7e95636056546471aaf15e42dbc300dac80de038a90358929f
BLAKE2b-256 checksum
How to use checksums
4f5f456ae338f11f67bfc80244c9e793ab01027d2733eff989ccb57dd676bba2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release files / rustigc_py-0.1.1-cp312-abi3-win_amd64.whl

Download URL rustigc_py-0.1.1-cp312-abi3-win_amd64.whl
Size 322.8 kB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
4461cb84c12d99114357c203a675d9538166569e1d9af420a2f16f58b4df7904
BLAKE2b-256 checksum
How to use checksums
dde64f34377b078fed352843539a3038da7d98e68557750ec3ae282e418c22d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release files / rustigc_py-0.1.1-cp312-abi3-manylinux_2_28_x86_64.whl

Download URL rustigc_py-0.1.1-cp312-abi3-manylinux_2_28_x86_64.whl
Size 429.2 kB
Tags CPython 3.12 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
318c99b6c3fa76c0a3e4ec3cd5f23b06ac332db4e264ddf86f6dc67409d75c77
BLAKE2b-256 checksum
How to use checksums
6565aa385af565f972dc86b5a1a53041759abbee4704ea4c3d8b8a57c78cba4d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release files / rustigc_py-0.1.1-cp312-abi3-manylinux_2_28_aarch64.whl

Download URL rustigc_py-0.1.1-cp312-abi3-manylinux_2_28_aarch64.whl
Size 408.4 kB
Tags CPython 3.12 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
067847a8d2c9501b16dd7d4b3c8f8401ed9ea3446758dc656e04f2259e91427f
BLAKE2b-256 checksum
How to use checksums
f4f4d3bfa5c972c1d006fb7ec9edd9eacc714f5e6fd9063371d48625b8bac17b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release files / rustigc_py-0.1.1-cp312-abi3-macosx_11_0_arm64.whl

Download URL rustigc_py-0.1.1-cp312-abi3-macosx_11_0_arm64.whl
Size 370.0 kB
Tags CPython 3.12 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e82eb7bf251e44f4039cd0845fbcd37eca6bd7c5fc68079cff5586c797aae66c
BLAKE2b-256 checksum
How to use checksums
661654bfd364490c84364b689d6a34c44c8124aab0cc7b837f706143b972bae8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

5 release files

0.1.0

5 release files

0.0.6

5 release files

0.0.5

5 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page