Coordinate reference systems and coordinate transformations (OGC Coordinate Transformation Services, EPSG, WKT 1 and WKT 2)
Project description
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:
Und_min2.5x2.5_egm2008_isw=82_WGS84_TideFree(2.5′, 149 MB) — enough for most work.Und_min1x1_egm2008_isw=82_WGS84_TideFree(1′, 933 MB) — the finer grid.
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:
EGM08_REDNAP.txt(4 MB) — peninsula and Balearics.EGM08_REDNAP_Canarias.txt(0.4 MB) — the Canary Islands.
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file crskit-0.5.0.tar.gz.
File metadata
- Download URL: crskit-0.5.0.tar.gz
- Upload date:
- Size: 2.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18aeb3af81acdfcf150a17531872865083e6dcefd272547c1e65148dc5c42004
|
|
| MD5 |
a147a833218849e359d8f7a7968a636a
|
|
| BLAKE2b-256 |
7420c6f955802868e48d5e3eec64d5c28ae11e04e791895df7b32cf41eab7924
|
Provenance
The following attestation bundles were made for crskit-0.5.0.tar.gz:
Publisher:
wheels.yml on digi21/crskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crskit-0.5.0.tar.gz -
Subject digest:
18aeb3af81acdfcf150a17531872865083e6dcefd272547c1e65148dc5c42004 - Sigstore transparency entry: 2153715009
- Sigstore integration time:
-
Permalink:
digi21/crskit@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/digi21
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Trigger Event:
push
-
Statement type:
File details
Details for the file crskit-0.5.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: crskit-0.5.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64c4862b7ab7ae0bf874874111ad418cd8a92746639c3d9e708c8c319d7e6e70
|
|
| MD5 |
11fdf8912b82832c012dd503115e9706
|
|
| BLAKE2b-256 |
349923a50a80de4930a7f5132b28c403f66cdb92f8474432dd99a96ee95728d7
|
Provenance
The following attestation bundles were made for crskit-0.5.0-cp313-cp313-win_amd64.whl:
Publisher:
wheels.yml on digi21/crskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crskit-0.5.0-cp313-cp313-win_amd64.whl -
Subject digest:
64c4862b7ab7ae0bf874874111ad418cd8a92746639c3d9e708c8c319d7e6e70 - Sigstore transparency entry: 2153719137
- Sigstore integration time:
-
Permalink:
digi21/crskit@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/digi21
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Trigger Event:
push
-
Statement type:
File details
Details for the file crskit-0.5.0-cp313-cp313-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: crskit-0.5.0-cp313-cp313-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.13, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75b4d4547dcd3dd2ece8d0ab7d1f2fe6d7e0b2dbe7d078e9a6e14325f3daeada
|
|
| MD5 |
36da765dab1c91faa8aefea4580cb00c
|
|
| BLAKE2b-256 |
73215d19786ff7a4aae76c2057d2fd5c951f6b2ce7b5f848d0548725a4e75a7c
|
Provenance
The following attestation bundles were made for crskit-0.5.0-cp313-cp313-manylinux_2_28_x86_64.whl:
Publisher:
wheels.yml on digi21/crskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crskit-0.5.0-cp313-cp313-manylinux_2_28_x86_64.whl -
Subject digest:
75b4d4547dcd3dd2ece8d0ab7d1f2fe6d7e0b2dbe7d078e9a6e14325f3daeada - Sigstore transparency entry: 2153717212
- Sigstore integration time:
-
Permalink:
digi21/crskit@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/digi21
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Trigger Event:
push
-
Statement type:
File details
Details for the file crskit-0.5.0-cp313-cp313-macosx_13_0_x86_64.whl.
File metadata
- Download URL: crskit-0.5.0-cp313-cp313-macosx_13_0_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.13, macOS 13.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
272457d47368b7ad52d59e772dd7136f1a5059a6b34da7cc7e30238162d2d042
|
|
| MD5 |
b27a375015c6fb560b66341306980231
|
|
| BLAKE2b-256 |
92af89710453601b50ef7eb7d79ead5c6edea00f5f593e1ab3cca409f1646ae3
|
Provenance
The following attestation bundles were made for crskit-0.5.0-cp313-cp313-macosx_13_0_x86_64.whl:
Publisher:
wheels.yml on digi21/crskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crskit-0.5.0-cp313-cp313-macosx_13_0_x86_64.whl -
Subject digest:
272457d47368b7ad52d59e772dd7136f1a5059a6b34da7cc7e30238162d2d042 - Sigstore transparency entry: 2153718890
- Sigstore integration time:
-
Permalink:
digi21/crskit@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/digi21
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Trigger Event:
push
-
Statement type:
File details
Details for the file crskit-0.5.0-cp313-cp313-macosx_13_0_arm64.whl.
File metadata
- Download URL: crskit-0.5.0-cp313-cp313-macosx_13_0_arm64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.13, macOS 13.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
006c85314bcb35e38f0381a330f82f4ca3ad359f1c913d1b45f3b8d93bcfeeb4
|
|
| MD5 |
42377f5bbe83ac4d09a523388ef8c86b
|
|
| BLAKE2b-256 |
80dacbfb773ce519a122edfb5c82a4bfbdea376a6ea9da72bef880ead4203bb1
|
Provenance
The following attestation bundles were made for crskit-0.5.0-cp313-cp313-macosx_13_0_arm64.whl:
Publisher:
wheels.yml on digi21/crskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crskit-0.5.0-cp313-cp313-macosx_13_0_arm64.whl -
Subject digest:
006c85314bcb35e38f0381a330f82f4ca3ad359f1c913d1b45f3b8d93bcfeeb4 - Sigstore transparency entry: 2153717433
- Sigstore integration time:
-
Permalink:
digi21/crskit@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/digi21
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Trigger Event:
push
-
Statement type:
File details
Details for the file crskit-0.5.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: crskit-0.5.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a135d489a45ff51861ff84db3302afd362736d90a42dcb54f8f6cd93802f259
|
|
| MD5 |
101ab2b989380164a4f339d535424436
|
|
| BLAKE2b-256 |
823b0116b4eff45eb5d7c47b81428f286050b0e5d5b01df9ecff2c009cb8cd51
|
Provenance
The following attestation bundles were made for crskit-0.5.0-cp312-cp312-win_amd64.whl:
Publisher:
wheels.yml on digi21/crskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crskit-0.5.0-cp312-cp312-win_amd64.whl -
Subject digest:
3a135d489a45ff51861ff84db3302afd362736d90a42dcb54f8f6cd93802f259 - Sigstore transparency entry: 2153718949
- Sigstore integration time:
-
Permalink:
digi21/crskit@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/digi21
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Trigger Event:
push
-
Statement type:
File details
Details for the file crskit-0.5.0-cp312-cp312-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: crskit-0.5.0-cp312-cp312-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.12, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d8edc1e30c671f30db5b8aeac2496d9e09dfbd103585f3d29776fcf9881c17b
|
|
| MD5 |
37470f238f097fe0c68ffd3e2af83b00
|
|
| BLAKE2b-256 |
3f1c632f440e9d31dc13e8fd6d674357df448ed24171cd2cde0af6b911587d01
|
Provenance
The following attestation bundles were made for crskit-0.5.0-cp312-cp312-manylinux_2_28_x86_64.whl:
Publisher:
wheels.yml on digi21/crskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crskit-0.5.0-cp312-cp312-manylinux_2_28_x86_64.whl -
Subject digest:
5d8edc1e30c671f30db5b8aeac2496d9e09dfbd103585f3d29776fcf9881c17b - Sigstore transparency entry: 2153718184
- Sigstore integration time:
-
Permalink:
digi21/crskit@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/digi21
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Trigger Event:
push
-
Statement type:
File details
Details for the file crskit-0.5.0-cp312-cp312-macosx_13_0_x86_64.whl.
File metadata
- Download URL: crskit-0.5.0-cp312-cp312-macosx_13_0_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.12, macOS 13.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ee5308774e65a4e8ebbae40d8d5fdca8db83726dca6a4b1b0426884d0b00316
|
|
| MD5 |
3c5ff3091911a82e3c55239ceaaa3666
|
|
| BLAKE2b-256 |
2e73fd64d5bb459bd89fdee9b69fa614396a531c0803bbed9c920cdf13411b8b
|
Provenance
The following attestation bundles were made for crskit-0.5.0-cp312-cp312-macosx_13_0_x86_64.whl:
Publisher:
wheels.yml on digi21/crskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crskit-0.5.0-cp312-cp312-macosx_13_0_x86_64.whl -
Subject digest:
5ee5308774e65a4e8ebbae40d8d5fdca8db83726dca6a4b1b0426884d0b00316 - Sigstore transparency entry: 2153719305
- Sigstore integration time:
-
Permalink:
digi21/crskit@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/digi21
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Trigger Event:
push
-
Statement type:
File details
Details for the file crskit-0.5.0-cp312-cp312-macosx_13_0_arm64.whl.
File metadata
- Download URL: crskit-0.5.0-cp312-cp312-macosx_13_0_arm64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.12, macOS 13.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70437dc5ff4deb7ec0979fd3a0c2607aaa8c8e85ce5972bc3c777ce2e346962a
|
|
| MD5 |
0e463e8d7d6dce46b79052f39bbbf8af
|
|
| BLAKE2b-256 |
bf57c7975ad807af66726390d857870b3c592c99e4800b3f2e4f27e5f62b1e8d
|
Provenance
The following attestation bundles were made for crskit-0.5.0-cp312-cp312-macosx_13_0_arm64.whl:
Publisher:
wheels.yml on digi21/crskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crskit-0.5.0-cp312-cp312-macosx_13_0_arm64.whl -
Subject digest:
70437dc5ff4deb7ec0979fd3a0c2607aaa8c8e85ce5972bc3c777ce2e346962a - Sigstore transparency entry: 2153716292
- Sigstore integration time:
-
Permalink:
digi21/crskit@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/digi21
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Trigger Event:
push
-
Statement type:
File details
Details for the file crskit-0.5.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: crskit-0.5.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33be90d5d465f6c02fa7921d217e906c535996fb8e9feda0c0dbe2424d61a5c6
|
|
| MD5 |
98e53a72e60d8588904ba8492818af41
|
|
| BLAKE2b-256 |
11cef4fa4ce2ba60913730510d9fc9a3f3a0d83813363826de1ba354efc820ac
|
Provenance
The following attestation bundles were made for crskit-0.5.0-cp311-cp311-win_amd64.whl:
Publisher:
wheels.yml on digi21/crskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crskit-0.5.0-cp311-cp311-win_amd64.whl -
Subject digest:
33be90d5d465f6c02fa7921d217e906c535996fb8e9feda0c0dbe2424d61a5c6 - Sigstore transparency entry: 2153716445
- Sigstore integration time:
-
Permalink:
digi21/crskit@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/digi21
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Trigger Event:
push
-
Statement type:
File details
Details for the file crskit-0.5.0-cp311-cp311-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: crskit-0.5.0-cp311-cp311-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.11, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e768dc4e38f1602c1ba7a477dc43e457cf205f1c2950e9bcf2388c38aef367ff
|
|
| MD5 |
3f5be91d0fcc8756a7befd964d9a0bca
|
|
| BLAKE2b-256 |
7ee441246242626cf597ceae5c947052453633cb8efaa7407bf64eb76735d06c
|
Provenance
The following attestation bundles were made for crskit-0.5.0-cp311-cp311-manylinux_2_28_x86_64.whl:
Publisher:
wheels.yml on digi21/crskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crskit-0.5.0-cp311-cp311-manylinux_2_28_x86_64.whl -
Subject digest:
e768dc4e38f1602c1ba7a477dc43e457cf205f1c2950e9bcf2388c38aef367ff - Sigstore transparency entry: 2153717263
- Sigstore integration time:
-
Permalink:
digi21/crskit@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/digi21
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Trigger Event:
push
-
Statement type:
File details
Details for the file crskit-0.5.0-cp311-cp311-macosx_13_0_x86_64.whl.
File metadata
- Download URL: crskit-0.5.0-cp311-cp311-macosx_13_0_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.11, macOS 13.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a4019fdd72b66087d488495966b5563228aa668d0bf615deb72b6bb648ae03c9
|
|
| MD5 |
98d68bb8b67a37027c2ac910bae21df1
|
|
| BLAKE2b-256 |
0715f3c29dc11cce2e648ecb95d29aea4950a7d8e53a9404f902a384745ffda4
|
Provenance
The following attestation bundles were made for crskit-0.5.0-cp311-cp311-macosx_13_0_x86_64.whl:
Publisher:
wheels.yml on digi21/crskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crskit-0.5.0-cp311-cp311-macosx_13_0_x86_64.whl -
Subject digest:
a4019fdd72b66087d488495966b5563228aa668d0bf615deb72b6bb648ae03c9 - Sigstore transparency entry: 2153719219
- Sigstore integration time:
-
Permalink:
digi21/crskit@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/digi21
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Trigger Event:
push
-
Statement type:
File details
Details for the file crskit-0.5.0-cp311-cp311-macosx_13_0_arm64.whl.
File metadata
- Download URL: crskit-0.5.0-cp311-cp311-macosx_13_0_arm64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.11, macOS 13.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1852e6966d5b83f1dc099cd778ebada32cab9a2187673ea2344f0dc880c54176
|
|
| MD5 |
26ceec9c59d30af6b50f8bd6dad78fa8
|
|
| BLAKE2b-256 |
b3ec1261b081a54b39220ffe2539c02362ab9fdfdecb8d791a45eab5fb48fc2a
|
Provenance
The following attestation bundles were made for crskit-0.5.0-cp311-cp311-macosx_13_0_arm64.whl:
Publisher:
wheels.yml on digi21/crskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crskit-0.5.0-cp311-cp311-macosx_13_0_arm64.whl -
Subject digest:
1852e6966d5b83f1dc099cd778ebada32cab9a2187673ea2344f0dc880c54176 - Sigstore transparency entry: 2153719269
- Sigstore integration time:
-
Permalink:
digi21/crskit@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/digi21
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Trigger Event:
push
-
Statement type:
File details
Details for the file crskit-0.5.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: crskit-0.5.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
950efecd22c5b0f167f243ca170fe8352a7a8b871f988840a7cbf716473656bb
|
|
| MD5 |
931cc4b4928ef8eccd2b479aaaf76bd5
|
|
| BLAKE2b-256 |
ec18056eb4241aed7c95277a51163d504d8eea2f7be3dca5232eb1e63a611f6a
|
Provenance
The following attestation bundles were made for crskit-0.5.0-cp310-cp310-win_amd64.whl:
Publisher:
wheels.yml on digi21/crskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crskit-0.5.0-cp310-cp310-win_amd64.whl -
Subject digest:
950efecd22c5b0f167f243ca170fe8352a7a8b871f988840a7cbf716473656bb - Sigstore transparency entry: 2153719060
- Sigstore integration time:
-
Permalink:
digi21/crskit@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/digi21
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Trigger Event:
push
-
Statement type:
File details
Details for the file crskit-0.5.0-cp310-cp310-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: crskit-0.5.0-cp310-cp310-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.10, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84b4324ba6074c94cd3dfabbd53e3a3e571b715a6557dc27fe634d72ab8dd073
|
|
| MD5 |
869d6d08f3236fb9582aae98cca98ef0
|
|
| BLAKE2b-256 |
07bef14bfeb16df5cb0072d07f40fb0249f36a3d1b8fcea67773d6fa813f1677
|
Provenance
The following attestation bundles were made for crskit-0.5.0-cp310-cp310-manylinux_2_28_x86_64.whl:
Publisher:
wheels.yml on digi21/crskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crskit-0.5.0-cp310-cp310-manylinux_2_28_x86_64.whl -
Subject digest:
84b4324ba6074c94cd3dfabbd53e3a3e571b715a6557dc27fe634d72ab8dd073 - Sigstore transparency entry: 2153719010
- Sigstore integration time:
-
Permalink:
digi21/crskit@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/digi21
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Trigger Event:
push
-
Statement type:
File details
Details for the file crskit-0.5.0-cp310-cp310-macosx_13_0_x86_64.whl.
File metadata
- Download URL: crskit-0.5.0-cp310-cp310-macosx_13_0_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.10, macOS 13.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df676d3f1efca9e36818a69a048cd04ab39712b5f55e991058075ed765704ad5
|
|
| MD5 |
4b2dd061d6fd61f494e320ec8cd642ce
|
|
| BLAKE2b-256 |
a6a2e9003387c6982e82c18d3733905a020bdcff1f61aa7a54daf1d87718fc40
|
Provenance
The following attestation bundles were made for crskit-0.5.0-cp310-cp310-macosx_13_0_x86_64.whl:
Publisher:
wheels.yml on digi21/crskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crskit-0.5.0-cp310-cp310-macosx_13_0_x86_64.whl -
Subject digest:
df676d3f1efca9e36818a69a048cd04ab39712b5f55e991058075ed765704ad5 - Sigstore transparency entry: 2153715235
- Sigstore integration time:
-
Permalink:
digi21/crskit@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/digi21
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Trigger Event:
push
-
Statement type:
File details
Details for the file crskit-0.5.0-cp310-cp310-macosx_13_0_arm64.whl.
File metadata
- Download URL: crskit-0.5.0-cp310-cp310-macosx_13_0_arm64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.10, macOS 13.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5cee4e4658575fa594d2ff6e667f2f125fc317951f1e906b7e20c8b97f2181b0
|
|
| MD5 |
c67319f76032d65a18fbae384630a865
|
|
| BLAKE2b-256 |
12416107ff2b1886756ce82d9df06de0ae69be63a29640904b45b93f8a88ccb3
|
Provenance
The following attestation bundles were made for crskit-0.5.0-cp310-cp310-macosx_13_0_arm64.whl:
Publisher:
wheels.yml on digi21/crskit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crskit-0.5.0-cp310-cp310-macosx_13_0_arm64.whl -
Subject digest:
5cee4e4658575fa594d2ff6e667f2f125fc317951f1e906b7e20c8b97f2181b0 - Sigstore transparency entry: 2153719367
- Sigstore integration time:
-
Permalink:
digi21/crskit@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/digi21
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@15006f09f6eb27f0b4be78c3d5332584118e0447 -
Trigger Event:
push
-
Statement type: