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.0.5

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.0.5
File Size Uploaded
rustigc_py-0.0.5.tar.gz 4.7 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for rustigc-py 0.0.5
File
rustigc_py-0.0.5-cp312-abi3-win_amd64.whl CPython 3.12 abi3 Windows x86-64 Details
rustigc_py-0.0.5-cp312-abi3-manylinux_2_28_x86_64.whl CPython 3.12 abi3 Linux glibc 2.28+ x86-64 Details
rustigc_py-0.0.5-cp312-abi3-manylinux_2_28_aarch64.whl CPython 3.12 abi3 Linux glibc 2.28+ ARM64 Details
rustigc_py-0.0.5-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.5.tar.gz

Download URL rustigc_py-0.0.5.tar.gz
Size 4.7 MB
Tags Source
SHA-256 checksum
How to use checksums
a0149312b13f865d7af9e4bfcad5c8a220254393942c158acbae9466c594f5b5
BLAKE2b-256 checksum
How to use checksums
1b80c47ec8c17d78fe0e950f797198a65e4a303effedc3e6942a1fa490271d0f
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

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

Download URL rustigc_py-0.0.5-cp312-abi3-win_amd64.whl
Size 393.6 kB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
11ed07d75789041100e9387ff96197c9ac504d99260a070dfec08d3cb30d832e
BLAKE2b-256 checksum
How to use checksums
fbc44cebfde72f80432c4b974c391d3f090ad897ad1ee585f751bcfaaf3cc906
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

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

Download URL rustigc_py-0.0.5-cp312-abi3-manylinux_2_28_x86_64.whl
Size 503.9 kB
Tags CPython 3.12 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
3989d6222f80a6618daf15e06cca7afa5ed56f8970de9b6b51bde789f7c0d069
BLAKE2b-256 checksum
How to use checksums
0b02498e1a0c7c029098afefe5b2f6e84e638f30fc3fabeff08c219f450bd7ab
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

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

Download URL rustigc_py-0.0.5-cp312-abi3-manylinux_2_28_aarch64.whl
Size 476.6 kB
Tags CPython 3.12 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
81981629181d1f067b586c1a69b00e3149e077368230a328682bc19566663c19
BLAKE2b-256 checksum
How to use checksums
32234e472b2b218627cd51f3b68265a7584c1a1b1db28add4f23b6c5fd62d229
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

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

Download URL rustigc_py-0.0.5-cp312-abi3-macosx_11_0_arm64.whl
Size 475.4 kB
Tags CPython 3.12 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3396045aa03e86f447d43c27bd794270e64df4b8a24ab3f93cb7c0c98fc25cc3
BLAKE2b-256 checksum
How to use checksums
5d12973088000fa304aed44395fa292c7ac770b825ccf49043bad31e0322d920
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

Release history Release notifications | RSS feed

0.1.1

5 release files

0.1.0

5 release files

0.0.6

5 release files

This release

0.0.5 This release

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