Skip to main content

CrsKit for Python

Coordinate reference systems, Well-Known Text and coordinate transformations, backed by the full EPSG catalogue. A thin binding over CrsKit, a C++23 implementation of the OGC Coordinate Transformation Services model, conformance-tested against the IOGP GIGS series.

pip install crskit[epsg]

Getting started

The [epsg] extra brings the EPSG catalogue with it, so init() needs no path — it finds the database on its own:

import crskit

crskit.init()

etrs89 = crskit.crs_from_epsg(4258)     # ETRS89, geographic 2D (latitude, longitude)
utm30n = crskit.crs_from_epsg(25830)    # ETRS89 / UTM zone 30N (easting, northing)

madrid = crskit.transformation(etrs89, utm30n).transform([40.416775, -3.703790])
print(madrid)                           # [440291.2843479216, 4474254.600145094]

Coordinates are given in the axis order the CRS declares — EPSG 4258 is latitude, longitude, not the other way round. Ask the system if you are unsure:

>>> etrs89.axes
[('Lat', 'North'), ('Lon', 'East')]
>>> utm30n.axes
[('E', 'East'), ('N', 'North')]

Transforming many points

transform_points() takes a NumPy array of shape (n, source_dimension) and crosses into C++ once for the whole batch, releasing the GIL while it works — the path to use for point clouds:

import numpy as np

points = np.array([[40.416775, -3.703790],      # Madrid
                   [41.385064,  2.173404],      # Barcelona
                   [37.389092, -5.984459]])     # Sevilla

transformation = crskit.transformation(etrs89, utm30n)
projected = transformation.transform_points(points)      # -> (3, 2) array

NumPy is optional: transform() works with any sequence of floats, and the module imports without it.

Coordinate reference systems

Build a CRS from an EPSG code or from Well-Known Text (WKT 1 and WKT 2 are both understood; the grammar is detected from the text):

crs = crskit.crs_from_wkt(open("layer.prj").read())

crs.name             # 'ETRS89 / UTM zone 30N'
crs.authority_code   # 25830, or None when the WKT carries no authority
crs.dimension        # 2
crs.remarks

Emit WKT in any of the flavours the library supports:

crs.to_wkt()                                        # OGC WKT 1 (the default)
crs.to_wkt(crskit.WktVersion.WKT2_2019)             # ISO 19162:2019
crs.to_wkt(crskit.WktVersion.WKT1_ESRI)             # ESRI dialect, for a .prj ArcGIS will read

Two systems compare by their mathematical definition, not by their name or authority: == asks "are these the same CRS for transformation purposes?", ignoring naming and axis order.

>>> crskit.crs_from_wkt(utm30n.to_wkt()) == utm30n
True
>>> etrs89.compare(utm30n)      # graded similarity, 0..100
0

Choosing between coordinate operations

Between two datums there is rarely a single transformation. EPSG defines twelve from ED50 to ETRS89, differing in accuracy, in the area they are valid in, and in whether they need a grid file. Choosing for you would mean silently deciding how wrong your coordinates are, so an ambiguous pair raises TransformationNotFoundError unless you say which one to use:

def for_mainland_spain(source_name, target_name, operations):
    for operation in operations:
        print(f"EPSG:{operation.code}  {operation.accuracy} m  {operation.area_of_use}")
    spain = [o for o in operations if "Spain - mainland" in o.area_of_use and not o.grid_files]
    return min(spain, key=lambda o: o.accuracy)

transformation = crskit.transformation(ed50, etrs89, select_operation=for_mainland_spain)
EPSG:15932   0.2 m  Spain - mainland and Balearic Islands onshore   needs SPED2ETV2.gsb
EPSG:1588    1.0 m  Norway - offshore north of 65°N; Svalbard
EPSG:1628    1.0 m  Gibraltar
EPSG:1632    1.5 m  Spain - mainland except northwest
EPSG:1650    2.0 m  France
EPSG:5040    5.0 m  Portugal - mainland - onshore
...

Each candidate tells you its code, accuracy in metres, area_of_use, grid_files and information_source — enough to choose by geography and not only by the smallest number.

Heights above sea level

A GNSS receiver gives an ellipsoidal height, which is not the altitude anyone means. Turning it into an orthometric height takes a geoid model. Pair a horizontal system with a vertical one and transform in 3D:

etrs89_3d = crskit.crs_from_epsg(4937)              # latitude, longitude, ellipsoidal height
utm_over_sea_level = crskit.compound_crs(25830, 5782)   # UTM 30N + Alicante height

crskit.transformation(etrs89_3d, utm_over_sea_level).transform([40.416775, -3.703790, 700.0])
# [440291.284, 4474254.600, 648.888]   <- 51.112 m of geoid undulation over Madrid

Or transform straight to a vertical CRS, and get the point back with only its height changed — EGM2008 (EPSG 3855) is the global model, so this works anywhere:

to_egm2008 = crskit.transformation(crskit.crs_from_epsg(4979), crskit.crs_from_epsg(3855),
                                   select_operation=lambda source, target, ops: ops[0])

to_egm2008.transform([27.988056, 86.925278, 8820.43])   # Everest, ellipsoidal height
# [27.988056, 86.925278, 8848.86]   <- the orthometric height everyone knows

When a transformation needs a grid

Datum shifts and orthometric heights often need a grid file (a geoid model, an NTv2 grid) that cannot be redistributed with the software. When one is missing, the error tells you exactly which file to obtain and for which EPSG operation:

try:
    crskit.transformation(source, target)
except crskit.GridFileNotFoundError as error:
    print(error.grid_file)           # 'egm08_25.gtx'
    print(error.searched_path)       # where it was looked for
    print(error.operation_code)      # the EPSG coordinate operation that needs it
    print(error.information_source)  # who publishes it

Put the grids in the data directory (init(..., data_directory=...), which defaults to the folder holding the EPSG database) and the transformation builds.

Where to get the grids

Grid files belong to the agencies that publish them, so they are not shipped with CrsKit. The two you are most likely to need:

EGM2008, the global geoid, published by the NGA — save the file under the name EPSG gives it, which is the name in the link:

These are mirrors of the NGA files, in the little-endian layout the reader expects; the originals are at earth-info.nga.mil.

Spain — the EGM08-REDNAP geoid, which is the model EPSG uses for heights over Alicante datum:

The ED50↔ETRS89 NTv2 grids (PENR2009.gsb, BALR2009.gsb) come from the CNIG download centre. All of these are © Instituto Geográfico Nacional de España, mirrored under its CC BY 4.0-compatible licence; the originals live at datos-geodesia.ign.es.

data/grid-sources.json in the repository maps a grid name to where it can be obtained, so an application can offer to fetch it when GridFileNotFoundError is raised.

Every error the library raises derives from crskit.CrsError, so one except catches them all; AuthorityCodeNotFoundError, WktParseError, TransformationNotFoundError, DimensionMismatchError, CoordinateOutsideDomainError and UnsupportedFormatError let you discriminate when you care.

The EPSG database

The catalogue lives in its own package, crskit-epsg, which the [epsg] extra installs. It is versioned after the dataset, not after the library, so a newer EPSG release is pip install -U crskit-epsg — no new version of CrsKit needed.

init() looks for the database in this order: the path you pass, the DIGI21_EPSG_SQLITE environment variable, and then the crskit-epsg package. Any SQLite built from the official EPSG SQL scripts works — for instance one you build yourself with tools/epsg-sqlite for a version newer than the packaged one:

crskit.init("/path/to/epsg.sqlite", data_directory="/path/to/grids")

The data are the EPSG Geodetic Parameter Dataset (https://epsg.org), owned by IOGP and used under its Terms of Use, which ship inside crskit-epsg. IOGP provides them "as is" and does not endorse CrsKit.

Inside an application that embeds Python

The module links the CrsKit shared library rather than compiling it in. So when a host application that already uses CrsKit runs a script through an embedded interpreter, the loader binds the module to the library the application has already loaded, and both share its state: the EPSG catalogue and settings are the ones the application set up, and there is nothing left to initialise.

if not crskit.is_initialized():
    crskit.init()

Learning it

  • TUTORIAL.md — the long way in, from "what is a CRS" to geoids and point clouds. Written for someone who knows Python and no geodesy; every output in it was produced by running the code. Also in español, français, italiano and deutsch.
  • examples/ — runnable scripts: a quick start, WKT round trips, a million points with NumPy, choosing among candidate operations, and orthometric heights. The test suite runs them, so they cannot rot.

Typing

The package ships type stubs and a py.typed marker (PEP 561), so editors complete the API and mypy checks it, even though the module is compiled C++.

License

Apache-2.0. The EPSG dataset is IOGP's, used under its own terms; this product is not endorsed by IOGP.

Metadata

Release files for crskit 0.5.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 crskit 0.5.0
File Size Uploaded
crskit-0.5.0.tar.gz 2.3 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for crskit 0.5.0
File
crskit-0.5.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
crskit-0.5.0-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
crskit-0.5.0-cp313-cp313-macosx_13_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 13.0+ x86-64 Details
crskit-0.5.0-cp313-cp313-macosx_13_0_arm64.whl CPython 3.13 CPython 3.13 macOS 13.0+ ARM64 Details
crskit-0.5.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
crskit-0.5.0-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
crskit-0.5.0-cp312-cp312-macosx_13_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 13.0+ x86-64 Details
crskit-0.5.0-cp312-cp312-macosx_13_0_arm64.whl CPython 3.12 CPython 3.12 macOS 13.0+ ARM64 Details
crskit-0.5.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
crskit-0.5.0-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
crskit-0.5.0-cp311-cp311-macosx_13_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 13.0+ x86-64 Details
crskit-0.5.0-cp311-cp311-macosx_13_0_arm64.whl CPython 3.11 CPython 3.11 macOS 13.0+ ARM64 Details
crskit-0.5.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
crskit-0.5.0-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
crskit-0.5.0-cp310-cp310-macosx_13_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 13.0+ x86-64 Details
crskit-0.5.0-cp310-cp310-macosx_13_0_arm64.whl CPython 3.10 CPython 3.10 macOS 13.0+ ARM64 Details

Total release size: 22.8 MB

Release files / crskit-0.5.0.tar.gz

Download URL crskit-0.5.0.tar.gz
Size 2.3 MB
Tags Source
SHA-256 checksum
How to use checksums
18aeb3af81acdfcf150a17531872865083e6dcefd272547c1e65148dc5c42004
BLAKE2b-256 checksum
How to use checksums
7420c6f955802868e48d5e3eec64d5c28ae11e04e791895df7b32cf41eab7924
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 12, 2026.

Transparency log

Release files / crskit-0.5.0-cp313-cp313-win_amd64.whl

Download URL crskit-0.5.0-cp313-cp313-win_amd64.whl
Size 1.3 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
64c4862b7ab7ae0bf874874111ad418cd8a92746639c3d9e708c8c319d7e6e70
BLAKE2b-256 checksum
How to use checksums
349923a50a80de4930a7f5132b28c403f66cdb92f8474432dd99a96ee95728d7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 12, 2026.

Transparency log

Release files / crskit-0.5.0-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL crskit-0.5.0-cp313-cp313-manylinux_2_28_x86_64.whl
Size 1.6 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
75b4d4547dcd3dd2ece8d0ab7d1f2fe6d7e0b2dbe7d078e9a6e14325f3daeada
BLAKE2b-256 checksum
How to use checksums
73215d19786ff7a4aae76c2057d2fd5c951f6b2ce7b5f848d0548725a4e75a7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 12, 2026.

Transparency log

Release files / crskit-0.5.0-cp313-cp313-macosx_13_0_x86_64.whl

Download URL crskit-0.5.0-cp313-cp313-macosx_13_0_x86_64.whl
Size 1.1 MB
Tags CPython 3.13 macOS 13.0+ x86-64
SHA-256 checksum
How to use checksums
272457d47368b7ad52d59e772dd7136f1a5059a6b34da7cc7e30238162d2d042
BLAKE2b-256 checksum
How to use checksums
92af89710453601b50ef7eb7d79ead5c6edea00f5f593e1ab3cca409f1646ae3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 12, 2026.

Transparency log

Release files / crskit-0.5.0-cp313-cp313-macosx_13_0_arm64.whl

Download URL crskit-0.5.0-cp313-cp313-macosx_13_0_arm64.whl
Size 1.1 MB
Tags CPython 3.13 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
006c85314bcb35e38f0381a330f82f4ca3ad359f1c913d1b45f3b8d93bcfeeb4
BLAKE2b-256 checksum
How to use checksums
80dacbfb773ce519a122edfb5c82a4bfbdea376a6ea9da72bef880ead4203bb1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 12, 2026.

Transparency log

Release files / crskit-0.5.0-cp312-cp312-win_amd64.whl

Download URL crskit-0.5.0-cp312-cp312-win_amd64.whl
Size 1.3 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
3a135d489a45ff51861ff84db3302afd362736d90a42dcb54f8f6cd93802f259
BLAKE2b-256 checksum
How to use checksums
823b0116b4eff45eb5d7c47b81428f286050b0e5d5b01df9ecff2c009cb8cd51
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 12, 2026.

Transparency log

Release files / crskit-0.5.0-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL crskit-0.5.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 1.6 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5d8edc1e30c671f30db5b8aeac2496d9e09dfbd103585f3d29776fcf9881c17b
BLAKE2b-256 checksum
How to use checksums
3f1c632f440e9d31dc13e8fd6d674357df448ed24171cd2cde0af6b911587d01
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 12, 2026.

Transparency log

Release files / crskit-0.5.0-cp312-cp312-macosx_13_0_x86_64.whl

Download URL crskit-0.5.0-cp312-cp312-macosx_13_0_x86_64.whl
Size 1.1 MB
Tags CPython 3.12 macOS 13.0+ x86-64
SHA-256 checksum
How to use checksums
5ee5308774e65a4e8ebbae40d8d5fdca8db83726dca6a4b1b0426884d0b00316
BLAKE2b-256 checksum
How to use checksums
2e73fd64d5bb459bd89fdee9b69fa614396a531c0803bbed9c920cdf13411b8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 12, 2026.

Transparency log

Release files / crskit-0.5.0-cp312-cp312-macosx_13_0_arm64.whl

Download URL crskit-0.5.0-cp312-cp312-macosx_13_0_arm64.whl
Size 1.1 MB
Tags CPython 3.12 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
70437dc5ff4deb7ec0979fd3a0c2607aaa8c8e85ce5972bc3c777ce2e346962a
BLAKE2b-256 checksum
How to use checksums
bf57c7975ad807af66726390d857870b3c592c99e4800b3f2e4f27e5f62b1e8d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 12, 2026.

Transparency log

Release files / crskit-0.5.0-cp311-cp311-win_amd64.whl

Download URL crskit-0.5.0-cp311-cp311-win_amd64.whl
Size 1.3 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
33be90d5d465f6c02fa7921d217e906c535996fb8e9feda0c0dbe2424d61a5c6
BLAKE2b-256 checksum
How to use checksums
11cef4fa4ce2ba60913730510d9fc9a3f3a0d83813363826de1ba354efc820ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 12, 2026.

Transparency log

Release files / crskit-0.5.0-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL crskit-0.5.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 1.6 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e768dc4e38f1602c1ba7a477dc43e457cf205f1c2950e9bcf2388c38aef367ff
BLAKE2b-256 checksum
How to use checksums
7ee441246242626cf597ceae5c947052453633cb8efaa7407bf64eb76735d06c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 12, 2026.

Transparency log

Release files / crskit-0.5.0-cp311-cp311-macosx_13_0_x86_64.whl

Download URL crskit-0.5.0-cp311-cp311-macosx_13_0_x86_64.whl
Size 1.1 MB
Tags CPython 3.11 macOS 13.0+ x86-64
SHA-256 checksum
How to use checksums
a4019fdd72b66087d488495966b5563228aa668d0bf615deb72b6bb648ae03c9
BLAKE2b-256 checksum
How to use checksums
0715f3c29dc11cce2e648ecb95d29aea4950a7d8e53a9404f902a384745ffda4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 12, 2026.

Transparency log

Release files / crskit-0.5.0-cp311-cp311-macosx_13_0_arm64.whl

Download URL crskit-0.5.0-cp311-cp311-macosx_13_0_arm64.whl
Size 1.0 MB
Tags CPython 3.11 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
1852e6966d5b83f1dc099cd778ebada32cab9a2187673ea2344f0dc880c54176
BLAKE2b-256 checksum
How to use checksums
b3ec1261b081a54b39220ffe2539c02362ab9fdfdecb8d791a45eab5fb48fc2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 12, 2026.

Transparency log

Release files / crskit-0.5.0-cp310-cp310-win_amd64.whl

Download URL crskit-0.5.0-cp310-cp310-win_amd64.whl
Size 1.3 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
950efecd22c5b0f167f243ca170fe8352a7a8b871f988840a7cbf716473656bb
BLAKE2b-256 checksum
How to use checksums
ec18056eb4241aed7c95277a51163d504d8eea2f7be3dca5232eb1e63a611f6a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 12, 2026.

Transparency log

Release files / crskit-0.5.0-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL crskit-0.5.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 1.6 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
84b4324ba6074c94cd3dfabbd53e3a3e571b715a6557dc27fe634d72ab8dd073
BLAKE2b-256 checksum
How to use checksums
07bef14bfeb16df5cb0072d07f40fb0249f36a3d1b8fcea67773d6fa813f1677
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 12, 2026.

Transparency log

Release files / crskit-0.5.0-cp310-cp310-macosx_13_0_x86_64.whl

Download URL crskit-0.5.0-cp310-cp310-macosx_13_0_x86_64.whl
Size 1.1 MB
Tags CPython 3.10 macOS 13.0+ x86-64
SHA-256 checksum
How to use checksums
df676d3f1efca9e36818a69a048cd04ab39712b5f55e991058075ed765704ad5
BLAKE2b-256 checksum
How to use checksums
a6a2e9003387c6982e82c18d3733905a020bdcff1f61aa7a54daf1d87718fc40
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 12, 2026.

Transparency log

Release files / crskit-0.5.0-cp310-cp310-macosx_13_0_arm64.whl

Download URL crskit-0.5.0-cp310-cp310-macosx_13_0_arm64.whl
Size 1.0 MB
Tags CPython 3.10 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
5cee4e4658575fa594d2ff6e667f2f125fc317951f1e906b7e20c8b97f2181b0
BLAKE2b-256 checksum
How to use checksums
12416107ff2b1886756ce82d9df06de0ae69be63a29640904b45b93f8a88ccb3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jul 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.5.0 This release

17 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