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.0.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rustigc_py-0.0.6.tar.gz | 4.7 MB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| rustigc_py-0.0.6-cp312-abi3-win_amd64.whl | CPython 3.12 | abi3 | Windows x86-64 | Details |
| rustigc_py-0.0.6-cp312-abi3-manylinux_2_28_x86_64.whl | CPython 3.12 | abi3 | Linux glibc 2.28+ x86-64 | Details |
| rustigc_py-0.0.6-cp312-abi3-manylinux_2_28_aarch64.whl | CPython 3.12 | abi3 | Linux glibc 2.28+ ARM64 | Details |
| rustigc_py-0.0.6-cp312-abi3-macosx_11_0_arm64.whl | CPython 3.12 | abi3 | macOS 11.0+ ARM64 | Details |
Total release size: 6.5 MB
Release files / rustigc_py-0.0.6.tar.gz
| Download URL | rustigc_py-0.0.6.tar.gz |
|---|---|
| Size | 4.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4c17c5e666f0436a19503bb1095dde5ecdc749378af88a591c69f4d016f41afa
|
|
BLAKE2b-256 checksum How to use checksums |
213f5dbbe708603b222e9156e945fb60902aac5f234625b225db2b1eca724850
|
| 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 Aug 31, 2026.
Transparency logRelease files / rustigc_py-0.0.6-cp312-abi3-win_amd64.whl
| Download URL | rustigc_py-0.0.6-cp312-abi3-win_amd64.whl |
|---|---|
| Size | 393.6 kB |
| Tags | CPython 3.12 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
33b862ba55836216150c08dce156ffb9311ea1187d42e270ab0e8be65e733df6
|
|
BLAKE2b-256 checksum How to use checksums |
e2edba2df305297e0f246bdfd8e74cbcc8a3b78b23ee6b6a4660ae98c240164a
|
| 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 Aug 31, 2026.
Transparency logRelease files / rustigc_py-0.0.6-cp312-abi3-manylinux_2_28_x86_64.whl
| Download URL | rustigc_py-0.0.6-cp312-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 504.0 kB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
b58e4c0c64a50220186724cf0857cac5cc0036d2d0189e7d69eedd9078bbebc6
|
|
BLAKE2b-256 checksum How to use checksums |
41ef4a1b4cc437576a3187db008d6d7a0f0b117f0c5a30356513d09390209c5a
|
| 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 Aug 31, 2026.
Transparency logRelease files / rustigc_py-0.0.6-cp312-abi3-manylinux_2_28_aarch64.whl
| Download URL | rustigc_py-0.0.6-cp312-abi3-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 476.5 kB |
| Tags | CPython 3.12 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
980742ec7dbc952599e8a64187457b9e635f44373f6d0a80967e0b92af79f7b4
|
|
BLAKE2b-256 checksum How to use checksums |
97deef4a937b24d58a3cb786423c84b9c71b0ec99127601861fd2e2af168ddf9
|
| 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 Aug 31, 2026.
Transparency logRelease files / rustigc_py-0.0.6-cp312-abi3-macosx_11_0_arm64.whl
| Download URL | rustigc_py-0.0.6-cp312-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 475.3 kB |
| Tags | CPython 3.12 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5b150cd079908c1cbd2fa08ded6808a7412c419332c5377c7e1d84610bd352ba
|
|
BLAKE2b-256 checksum How to use checksums |
543c64925d42830e8dc8c857653907e0fba216f29a21fc980ee398b28e84d135
|
| 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 Aug 31, 2026.
Transparency log