Skip to main content

csar: Conic Spherical Aspect Ratio

Python bindings for csar_zig, a spherical aspect-ratio solver. Given a point set on the unit sphere, it finds the tightest ellipsoidal cone enclosing the points and returns the cone's axis ratio.

A thin Cython binding over a small C-ABI shim that links the upstream csar Zig package as a static archive — no separate shared library ships in the wheel.

Install

Not on PyPI yet — install directly from GitHub. Point pip/uv at the git URL, either the latest main or a tagged release:

# latest main
pip install git+https://github.com/ajfriend/csar_py.git
uv pip install git+https://github.com/ajfriend/csar_py.git

# a specific tagged release
pip install git+https://github.com/ajfriend/csar_py.git@v0.1.0
uv pip install git+https://github.com/ajfriend/csar_py.git@v0.1.0

For the optional plotting helper (csar.plot_cone), add the plot extra:

pip install "csar[plot] @ git+https://github.com/ajfriend/csar_py.git"

That path triggers a source build: meson-python pulls the Zig toolchain from the ziglang PyPI wheel (python -m ziglang build), compiles the upstream csar_zig package into a static archive — fetched over the network from the URL pinned in src/zig/build.zig.zon — then cythonizes src/cython/_cy.pyx and links the result against it. No host-level Zig or Cython install is required (Python 3.11+).

Local development

just test       # reinstall + run the test suite
just reinstall  # force a clean rebuild of the Zig extension

Usage

import csar

# A sequence of points. Each point is (lat, lng) in degrees by
# default; pass geo='vec3' to give unit (x, y, z) triples instead.
pts = [
    (0.0,  0.0),
    (0.0, 90.0),
    (90.0, 0.0),
]

r = csar.solve(pts)
if isinstance(r, csar.Converged):
    print(r.aspect_ratio)  # cross-section axis ratio (>= 1)
    print(r.Q[:, 0])       # unit cone axis (x, y, z) — first column of Q

Any list/tuple of points works; a NumPy array is also accepted and is read as an (N, k) array whose rows are points (k = 2 for the latlng/lonlat families, 3 for 'vec3'). The geo argument picks the convention: 'latlng' (default, h3's (lat, lng) order), 'lonlat' (GeoJSON's (lon, lat) order), their _deg/_rad variants, or 'vec3'.

Objects implementing __geo_interface__ (shapely, geopandas, geojson, h3 LatLngPoly/LatLngMultiPoly, …) can be passed directly — their vertices are read as GeoJSON (lon, lat) degrees, so geo is ignored:

import geopandas as gpd

gdf = gpd.read_file('countries.geojson')
for name, geom in zip(gdf['ADMIN'], gdf.geometry):
    r = csar.solve(geom)            # shapely geometry via __geo_interface__
    if isinstance(r, csar.Converged):
        print(name, r.aspect_ratio)

MultiPoint, LineString, Polygon (exterior ring), MultiPolygon, and a Feature wrapping one of those are supported.

To visualize the fit, csar.plot_cone(result, geom) draws the outline gnomonic-projected at the cone axis with the enclosing ellipse overlaid — defaulting to north-up, scaled to metres, with labelled axes (needs matplotlib — pip install csar[plot]):

csar.plot_cone(r, geom, title='Chile')  # a finished figure from one call

scripts/states/ and scripts/countries/ are full end-to-end examples.

solve runs all of this through csar.to_vec3(points, geo=...), which returns the (N, 3) array of unit vectors the solver actually sees. Call it directly to inspect how your input maps onto the sphere:

csar.to_vec3([(0, 0), (0, 90), (90, 0)])
# array([[1., 0., 0.],
#        [0., 1., 0.],
#        [0., 0., 1.]])

Outcomes

solve returns one of three outcome types — Converged, Infeasible, or DidNotConverge (collectively Outcome) — mirroring the Zig Outcome tagged union. Each carries only the fields meaningful for its outcome, so you dispatch on the type rather than guarding nullable fields:

match csar.solve(pts):
    case csar.Converged() as c:
        use(c.aspect_ratio, c.Q)      # certified cone
    case csar.Infeasible() as i:
        handle(i.residual)            # no enclosing cone exists
    case csar.DidNotConverge() as d:
        retry(d.gap, d.outer_iters)   # hit the iteration cap

On a Converged, sigma is the (3,) eigenvalue array and Q the (3, 3) eigenbasis (column i pairs with sigma[i]; column 0 is the axis), so the enclosing ellipsoid matrix is A = c.Q @ np.diag(c.sigma) @ c.Q.T. DidNotConverge exposes the same sigma/Q/gap for diagnostics but, being uncertified, deliberately has no aspect_ratio. See the docstrings in src/csar/__init__.py for the full field reference.

Solver paths

solve picks its solver via method=: 'auto' (the default) resolves to the library's recommended method — currently 'trust', a trust-region descent that converges on every input family constructed to date, including the wide/elongated inputs the original solver structurally cannot. 'alternating' is that original solver, kept for continuity and for large dense near-circular inputs where it can still be faster. The outcome's .method records the concrete path that ran.

Layout

.
├── pyproject.toml          — meson-python config, package metadata
├── meson.build             — drives Zig static-archive build + Cython compile
├── justfile                — reinstall / test / wheel / examples / clean
├── src/
│   ├── cython/_cy.pyx      — Cython binding, exposes _cy.solve
│   ├── csar/
│   │   ├── __init__.py     — gathers the public API (solve, to_vec3, plot_cone, Outcome…)
│   │   ├── convert.py      — input → (N, 3) unit vectors: to_vec3, geo-interface
│   │   ├── outcomes.py     — Converged/Infeasible/DidNotConverge + build()
│   │   ├── plot.py         — plot_cone (optional; needs matplotlib)
│   │   └── solver.py       — solve(): convert → _cy.solve → build
│   └── zig/
│       ├── build.zig       — produces libcsar.{a,lib} (static archive)
│       ├── build.zig.zon   — pins the csar_zig dependency
│       └── c_api.zig       — pub export fn csar_solve
├── scripts/                — examples (run via `just states|countries`)
│   ├── states/             — US-state aspect ratios (geopandas + csar)
│   └── countries/          — country aspect ratios (geopandas + csar)
└── tests/test_bindings.py

History

csar was previously developed as skar_py and forked into this fresh repository under a new name, since the skar name was already taken on PyPI. The skar_py repository is preserved as-is for its history and provenance.

License

MIT — see LICENSE.

Metadata

Release files for csar 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for csar 0.1.1
File Size Uploaded
csar-0.1.1.tar.gz 34.5 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for csar 0.1.1
File
csar-0.1.1-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
csar-0.1.1-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details
csar-0.1.1-cp314-cp314t-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 Details
csar-0.1.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
csar-0.1.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
csar-0.1.1-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
csar-0.1.1-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
csar-0.1.1-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details
csar-0.1.1-cp314-cp314-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ ARM64 Details
csar-0.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
csar-0.1.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
csar-0.1.1-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
csar-0.1.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
csar-0.1.1-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
csar-0.1.1-cp313-cp313-musllinux_1_2_aarch64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ ARM64 Details
csar-0.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
csar-0.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
csar-0.1.1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
csar-0.1.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
csar-0.1.1-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
csar-0.1.1-cp312-cp312-musllinux_1_2_aarch64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ ARM64 Details
csar-0.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
csar-0.1.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
csar-0.1.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
csar-0.1.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
csar-0.1.1-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
csar-0.1.1-cp311-cp311-musllinux_1_2_aarch64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ ARM64 Details
csar-0.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
csar-0.1.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
csar-0.1.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details

Total release size: 7.1 MB

Release files / csar-0.1.1.tar.gz

Download URL csar-0.1.1.tar.gz
Size 34.5 kB
Tags Source
SHA-256 checksum
How to use checksums
7c858fbce13054675c28fe357f7d30a03f5a012ee47e50372a87c120b1d4d34f
BLAKE2b-256 checksum
How to use checksums
08df5791f83fa4f518da16a48928dbcbcb504cd7f3bc57625d2eb348bddc13f0
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp314-cp314t-win_amd64.whl

Download URL csar-0.1.1-cp314-cp314t-win_amd64.whl
Size 175.5 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
934f3437cc02939249fc0e4c67fe41a6df6abe0c638fa3c23c30fcb06a547351
BLAKE2b-256 checksum
How to use checksums
8a5d18ec27f592f6ed831f7b371d175b6e47af5b90f950d8f7f6c85e14aa1dd0
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL csar-0.1.1-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 298.7 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
78ea521809809a543cc32da3923e392c75048f292dcb40372d2dbe1540a9f1d3
BLAKE2b-256 checksum
How to use checksums
a2864f817f88ac79b75b1edfc61554d0d2cf4e544eeb495a7d6ba25ea45edebb
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp314-cp314t-musllinux_1_2_aarch64.whl

Download URL csar-0.1.1-cp314-cp314t-musllinux_1_2_aarch64.whl
Size 255.1 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
e1a2ca5905379bf779ff95ffeaa3e53c0eae65ea6ed63a2264e78ae835fa16d5
BLAKE2b-256 checksum
How to use checksums
66df70ad9247eba27d2815cffa5366d488723bbb8b027bbb75cf8c740eceb58c
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL csar-0.1.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 295.4 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
581e5ad85fba122a41ba03c7f0e8c007a14c60e65e0144c920068a11402b3c23
BLAKE2b-256 checksum
How to use checksums
63d08bf0d2dd2bca41d2360c1121a717492ca7925dd5c788822992b5063ffdaa
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL csar-0.1.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 254.0 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
3085e4b4951f77bc59871c3b2a950afc03e19efde13b43988ee06c00da7c8a92
BLAKE2b-256 checksum
How to use checksums
1e02f1655d3022dc22f2c9a7d14959f73d6ac46aea891bfccef49024244c79a8
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp314-cp314t-macosx_11_0_arm64.whl

Download URL csar-0.1.1-cp314-cp314t-macosx_11_0_arm64.whl
Size 120.3 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ecf1dadeedcee69cdbc329842fa60c745190db6c65d33461cf31d9c7f37eb353
BLAKE2b-256 checksum
How to use checksums
aad841e24d6b916ee30e698c5f1e9aef8fd1e041e21fed12ab5c023adbdcb016
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp314-cp314-win_amd64.whl

Download URL csar-0.1.1-cp314-cp314-win_amd64.whl
Size 179.7 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
cb043ae0090a3149d1c30fb75de9115ee17d7a198830f30118b6e965ac24e13c
BLAKE2b-256 checksum
How to use checksums
3ba41dc493f906b8a81804224ce7d5ba05274bb5508ee6a0bc3e0467a44eeb35
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL csar-0.1.1-cp314-cp314-musllinux_1_2_x86_64.whl
Size 301.3 kB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
ab9a805de52bf5fe117684ab81bc5679b443c96607630b365d8b09f04cc8d567
BLAKE2b-256 checksum
How to use checksums
4786a080f9be4e1794b796947a05490af3abc447192d41bdeaecf5e5c658aaa3
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp314-cp314-musllinux_1_2_aarch64.whl

Download URL csar-0.1.1-cp314-cp314-musllinux_1_2_aarch64.whl
Size 259.5 kB
Tags CPython 3.14 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
6998d9127a5f748607ef63f2a2673cdc36d8c7367a652cf0cddc2a62b23509d4
BLAKE2b-256 checksum
How to use checksums
c009c467b79e73cde4cd125480fbe78c60426ae4334be3d01e64d93f78e71a73
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL csar-0.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 300.3 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2868488f1820dfdcfc044109ce4204d94b4d602ca96f2e7743d44f3f22e65272
BLAKE2b-256 checksum
How to use checksums
9e1cf5aaad93b23f11248ec2ca796bda7ab1831552ad44cea7ec8b620ae84425
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL csar-0.1.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 258.5 kB
Tags CPython 3.14 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
d69a04fa290865de0d6409e166e7f34ac19287ca932a64216d567f791980a9a0
BLAKE2b-256 checksum
How to use checksums
031b7a83ce67ff7b689776ebdd5f123a81db857e828534568fe2fb6afa82acda
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp314-cp314-macosx_11_0_arm64.whl

Download URL csar-0.1.1-cp314-cp314-macosx_11_0_arm64.whl
Size 115.9 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
cc0cb5e73ee3ef18c0195da42818502b9701fe6ef35dbfb59ef7ad9d0887274f
BLAKE2b-256 checksum
How to use checksums
ca80b4d20c5c9abc4e312d02d8bcf7bff810ac6edb0ad4cca2ee3f7a6dd63935
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp313-cp313-win_amd64.whl

Download URL csar-0.1.1-cp313-cp313-win_amd64.whl
Size 174.2 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
c64a170ea30621b44cac38a407c74d68ca1c6611c8d68d65249c327051960ee0
BLAKE2b-256 checksum
How to use checksums
7298444fd21f37ba7acecd0c48f953484108805857771fdb31c7826d0d56047a
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL csar-0.1.1-cp313-cp313-musllinux_1_2_x86_64.whl
Size 301.0 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
a1e642378c2994972acaa328752c2cfa810768ccfe88a8a6bd9d5e8675c4d0e3
BLAKE2b-256 checksum
How to use checksums
af10fcdc97c5c7e0ecec8373afbb5be8ecba04ccda871774bc44bf1066c17b83
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp313-cp313-musllinux_1_2_aarch64.whl

Download URL csar-0.1.1-cp313-cp313-musllinux_1_2_aarch64.whl
Size 258.5 kB
Tags CPython 3.13 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
cb3f2db3c77f5fc20e46bbc633f5bdbb039951df1a84ca4508bbffa9510fdc05
BLAKE2b-256 checksum
How to use checksums
cd24509da7f4c99905a8b89da52312c45f8dc1a7ee4c6297bcf3b83c0ea85a5b
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL csar-0.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 302.0 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9933e22e0db134186f7934ac1eabf6d973d428ee7d931b9c10dac6efe376546b
BLAKE2b-256 checksum
How to use checksums
f61efc308d33349be293277ab7a9e9c2cd770147f067e2f8543ef6a8d178b931
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL csar-0.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 257.4 kB
Tags CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
55feb4ad686796c481bfde58da01a5edeab1547ae9c400efc26e1fd07fb56bbc
BLAKE2b-256 checksum
How to use checksums
e3b036d9dc6f83d5b80e17e847fd18a9e902e9f09f5b2a4be206f5d712392208
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp313-cp313-macosx_11_0_arm64.whl

Download URL csar-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
Size 115.4 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
54415d6b99fd6e9cfcc75ccc35c90bd1185c7dd5ecabd108b01514fcb66f2244
BLAKE2b-256 checksum
How to use checksums
0b514a8f6740dcc273f14044685a3879a4342a87ea5e2b6e299f87bf51918871
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp312-cp312-win_amd64.whl

Download URL csar-0.1.1-cp312-cp312-win_amd64.whl
Size 174.4 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
26f8936b9f90991789e289576a9ac24df86e0c2c87681c11f33b18fef7af5ca5
BLAKE2b-256 checksum
How to use checksums
66ff11958f3bad37b2a01464a0baca088fef57945f9b3eb8f13e6ae08a36863f
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL csar-0.1.1-cp312-cp312-musllinux_1_2_x86_64.whl
Size 301.1 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
84034695b97195c99055e2815032b763aeccc37a8a8b33ccf1e8c49ecaf6d052
BLAKE2b-256 checksum
How to use checksums
c1af700adc906b9efbf41c6f6f828382f9d0efdfe420577406c936cfe2360cec
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp312-cp312-musllinux_1_2_aarch64.whl

Download URL csar-0.1.1-cp312-cp312-musllinux_1_2_aarch64.whl
Size 258.6 kB
Tags CPython 3.12 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
d3e60ec5bf6727996f9e780a37e34e21d5503a627a65fc5f26c9d4f0fc4d4757
BLAKE2b-256 checksum
How to use checksums
fafc57dde050509f5720a463f92b5a5f7047872054bcce92ad09a0c0c4d0f3fb
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL csar-0.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 300.0 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f1a523d73f5575b016907b908e75194f54abed20bd2e2d711783740f98281aea
BLAKE2b-256 checksum
How to use checksums
07bc2a80cd2b78b8c2bc30c14b214895866c9a92253e7a5c9a0e97c1a5f117ab
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL csar-0.1.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 257.8 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
85bc17a56cfa43c0d1b1465e48a7eab2a2b9490ca50e3cccea5e8d60b90086c4
BLAKE2b-256 checksum
How to use checksums
703fcf85f84619b61d55f83499b12d86855af24ad8bd23bbb3f0a31169d7d966
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp312-cp312-macosx_11_0_arm64.whl

Download URL csar-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
Size 115.9 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1935179c19185da24639c623ba24af4d7d0eb5edc78c96f2292674a786f3a4e5
BLAKE2b-256 checksum
How to use checksums
59e026e90f9ef2ff685eefe872a97dd5433a5f68ba8d5e7e2db5e980215bb762
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp311-cp311-win_amd64.whl

Download URL csar-0.1.1-cp311-cp311-win_amd64.whl
Size 176.4 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
b20633206c545f154eb1ba19e6014cb3dc48eb4b386788ef57bfcc9fab1659eb
BLAKE2b-256 checksum
How to use checksums
6ddd884cf9d1b339b79c0fff4206652fc5d3b0531cf5fbe0804c614702e927e5
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL csar-0.1.1-cp311-cp311-musllinux_1_2_x86_64.whl
Size 305.1 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
bb0e7dc6a937be644b6f06686837590726a1e6e692f73bc63471943bddb66e39
BLAKE2b-256 checksum
How to use checksums
8c77e145d49ba6d5aa24542dced0aa78969c8a6f74eecf2018d1cb93d946b0a2
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp311-cp311-musllinux_1_2_aarch64.whl

Download URL csar-0.1.1-cp311-cp311-musllinux_1_2_aarch64.whl
Size 261.4 kB
Tags CPython 3.11 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
a91f1661c8001f3483fc0425c9bf7e311bddf1b31413ac9fed9cce4e2b8279cc
BLAKE2b-256 checksum
How to use checksums
9b7f6a82a9270006081b7939078698822d0874e51d0b624374bc363f20c6f258
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL csar-0.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 303.7 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2548f09097df9f9a9bfe2c573b536095398e38fa2374a7132a2c44cd1322b1a8
BLAKE2b-256 checksum
How to use checksums
07503a04187f3a409be556a8c4aa1d3443f680509a5dbbc9dab19ca74b059e9b
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL csar-0.1.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 260.6 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
6392c940f0a10f208a1dabd1bb675de73021bccc038b060df673806ba61e5bdf
BLAKE2b-256 checksum
How to use checksums
ca34f17950779c7c748330cb6b64ab7235b61c90531da11c584a20888db636cb
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 16, 2026.

Transparency log

Release files / csar-0.1.1-cp311-cp311-macosx_11_0_arm64.whl

Download URL csar-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Size 115.4 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
15899986ed598f12d925ac282ec6d81bbb1e03a58803e9b2fed3c5d24d21efa4
BLAKE2b-256 checksum
How to use checksums
451c4cfd33c0edb6b7b6b719415bd2aad9a37492b7a032e9f9f8fa167ce32ddc
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 16, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

31 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