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

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

Built distributions (wheels)

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

Download URL rustigc_py-0.1.0.tar.gz
Size 4.7 MB
Tags Source
SHA-256 checksum
How to use checksums
618cb12fbdc552ddf2dd63dcf50bda1756026e607805b8492acc6fe6b87229de
BLAKE2b-256 checksum
How to use checksums
4378a625b72a85dc6d95497ddfd9b37ff4da08214d5cc92d9f5608ecd6137171
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.0-cp312-abi3-win_amd64.whl

Download URL rustigc_py-0.1.0-cp312-abi3-win_amd64.whl
Size 322.6 kB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
9f9dd485c6052dca7680eb21c7240223721896799ea949c9554080cf791f58c3
BLAKE2b-256 checksum
How to use checksums
3cab6c955f1133fb078c5eb0f9e57d53f05c0e6404454a9122eb4ebfa903fe70
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.0-cp312-abi3-manylinux_2_28_x86_64.whl

Download URL rustigc_py-0.1.0-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
77575934e0a773e813ea0990ed10b17e7958bc19556b44fdd0ce38a6a69ec07a
BLAKE2b-256 checksum
How to use checksums
9d6214b4b28d721fca7c15c67964a1f8f27b71d8f355697771a3c0ad0e804171
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.0-cp312-abi3-manylinux_2_28_aarch64.whl

Download URL rustigc_py-0.1.0-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
a086def82d64dde3e69bb46dea21031dafa35da7e5ed92987b518211c3711578
BLAKE2b-256 checksum
How to use checksums
4a6e81c18a1f3c2a956066472cf84387e4d73d4a40a2d8f5c609ca47b7706c76
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.0-cp312-abi3-macosx_11_0_arm64.whl

Download URL rustigc_py-0.1.0-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
fc2dcbc272f3a922de9bccfb78c45a7a6d1190a10b3f3a696f0ffd8119917457
BLAKE2b-256 checksum
How to use checksums
77af1b1ef44861a219b6a18a3a79f090c4002bcfd1f7a861a5193b8a289a61d3
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

0.1.1

5 release files

This release

0.1.0 This release

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