Skip to main content

citry_core

Python package that exposes Rust functionality from the twin citry_core_py Rust crate.

Install and quick start

pip install citry-core

The public APIs are namespaced by capability:

from citry_core.template_parser import compile_template, parse_template

template = parse_template("<p>Hello {{ name }}!</p>")
python_source = compile_template(template)

The package also exposes HTML transformation, Fluent i18n, safe expression evaluation, template formatting, and browser-expression analysis.

Build integration

This package is the Python-side twin to the citry_core_py Rust crate. The connection between them is defined in pyproject.toml via the [tool.maturin] section:

[tool.maturin]
manifest-path = "../../../crates/citry_core_py/Cargo.toml"
module-name = "citry_core._rust"

When built with maturin, the Rust crate is compiled into a Python extension module that provides the core functionality, while this package adds Python-side wrappers, type stubs, and additional utilities.

Maturin module-name configuration

Important: The module-name setting is crucial for this package to work correctly.

By default, maturin would create a Python module with the same name as the Rust crate (citry_core_py), but we want to publish this package as citry_core. The module-name = "citry_core._rust" setting tells maturin to:

  1. Create the compiled Rust extension as _rust.cpython.so (instead of citry_core_py.cpython.so)
  2. Place it in the citry_core/ directory (matching our Python package name)
  3. Merge it with our existing citry_core/ Python code

This allows us to:

  • Keep the Rust crate named citry_core_py (useful for potential future bindings like citry_core_js)
  • Publish the Python package as citry_core (the desired public name)
  • Have maturin automatically merge the Rust binary with our Python code

The module-name format is <python_package_name>.<rust_module_name>, where:

  • python_package_name must match the Python package directory (here, ./citry_core/)
  • rust_module_name must match the #[pymodule] function name in the Rust crate's lib.rs (e.g., fn _rust)

See the detailed comments in pyproject.toml for more information about this configuration.

Package structure

The package uses a mixed Rust/Python layout:

packages/py/citry_core/
├── citry_core/               # Package code
│   ├── __init__.py           # Empty - see below
│   ├── _rust                 # Platform extension module generated by maturin
│   │                         # from `crates/citry_core_py` (suffix varies).
│   │                         # Name set by `module-name` setting in `pyproject.toml`
│   ├── _rust.pyi             # Type stubs for Rust API
│   │                         # Filename matches <rust_module_name> from `module-name`
│   │
│   │   # API for individual Rust crates defined
│   │   # as separate submodules / subdirectories
│   │
│   ├── html_transform/      # HTML transformation API
│   │   └── __init__.py      # API for this submodule
│   ├── i18n/                # Fluent compiler and locale runtime API
│   ├── safe_eval/           # Safe eval API
│   ├── template_formatter/  # Authored template formatting API
│   ├── template_parser/     # Template parsing API
│   └── ...
├── tests/                    # Package tests
└── pyproject.toml

Manual API management

By default, maturin auto-generates __init__.py files. However, this package manually manages the Python-side API for several reasons:

  1. Multiple crates: The Rust crate exposes multiple submodules (html_transform, i18n, safe_eval, template_formatter, template_parser). We split these into separate submodules to avoid name conflicts.
  2. Python-side post-processing: Some crates need Python-side code that wraps or extends the Rust API. safe_eval executes transformed code, while template_parser provides Python wrappers around the Rust parser and compiler.

The root __init__.py is intentionally empty because we namespace each Rust crate under its own Python module. Instead, the API for each crate is defined in a separate directory with its own __init__.py file, e.g.:

  • citry_core/html_transform/__init__.py
  • citry_core/i18n/__init__.py
  • citry_core/safe_eval/__init__.py
  • citry_core/template_formatter/__init__.py
  • citry_core/template_parser/__init__.py

This allows clean, namespaced imports:

from citry_core.html_transform import transform_html
from citry_core.i18n import CatalogCompiler, canonicalize_locale
from citry_core.safe_eval import safe_eval
from citry_core.template_formatter import (
    finish_embedded_format,
    format_template,
    prepare_embedded_format,
    python_expression_provider,
)
from citry_core.template_parser import (
    analyze_browser_source,
    compile_template,
    parse_diagnostic,
    parse_template,
)

The i18n API compiles and analyzes Fluent project catalogs and runs their locale-aware messages, formatting, and strict number/date/time input. The parser API also exposes stable diagnostics, JavaScript analysis, and parser-owned syntax inventories for editor and batch tooling.

The formatter includes conservative Citry/HTML structural layout plus the vendored, in-process Python expression adapter. The provider identity function lets tooling report the exact pinned Ruff implementation used for expression output. JavaScript and CSS providers use an opaque two-pass API: prepare_embedded_format() returns immutable, source-bound requests for safe expression-free <script> and <style> bodies, and finish_embedded_format() validates every result before composing one atomic template result. This package discovers regions and enforces Citry boundaries; the caller chooses and invokes the external provider.

Remember: When you import
citry_core.html_transform,
you are directly accessing
citry_core/html_transform/__init__.py
You are NOT accessing
citry_core/__init__.py

Type stubs and runtime access

Issues with type checking

Type checkers (mypy, Pylance/Pyright) cannot pick up signatures and docstrings from the Rust API generated by maturin. The Rust code is compiled into a binary extension module, and type checkers don't have access to the original Rust source code or its PyO3 annotations.

To solve the type checking issue, we define type stubs in _rust.pyi.

The _rust.pyi:

  • Re-defines function signatures and docstrings
  • Enables type checking, IDE autocomplete, hover tooltips, etc
  • Important: The filename _rust.pyi MUST match the second part of the module-name setting in pyproject.toml
    (tool.maturin.module-name = "citry_core._rust").
    This ensures type checkers can find the type stubs for the Rust extension module.

Issues with Pytest and virtual modules

Another issue is with pytest. We define nested Python submodules for each Rust crate to avoid name conflicts in the Rust API. But pytest can't import the nested modules directly using the import keyword. This fails in pytest:

from citry_core._rust.template_parser import parse_template
# ModuleNotFoundError: No module named 'citry_core._rust.template_parser'

The cause is likely because the Rust-generated submodules (like _rust.template_parser) are virtual modules - they don't exist as actual files, but only inside the Rust binary.

To fix the issue with pytest, we have to avoid importing the virtual Python modules using import keyword.

This simply means that, instead of importing the Rust API as:

from citry_core._rust.html_transform import transform_html

transform_html(...)

We have to do:

from citry_core import _rust

_rust.html_transform.transform_html(...)

Development

Installing from the source distribution requires Rust 1.96 or newer. Normal GIL-enabled CPython 3.10-3.14 installations use a prebuilt ABI3 wheel and do not need a Rust toolchain. Free-threaded CPython and PyPy wheel coverage is narrower and currently targets the release workflow's Linux platforms; an interpreter/platform pair without a matching wheel falls back to the source distribution and therefore needs Rust 1.96 or newer.

Build

Build the package using maturin:

cd packages/py/citry_core
maturin develop  # Development build
maturin build    # Production build

Or with uv:

uv run maturin develop

Test

Important: Before running tests, you must install the package in development mode:

cd packages/py/citry_core
uv run maturin develop

This builds the Rust extension module and installs the package so Python can import it. Without this step, tests will fail with ModuleNotFoundError: No module named 'citry_core'.

After installing, run tests:

# From the package directory
uv run pytest

Adding a new Rust crate

When a new Rust crate / submodule is added to the twin Rust crate citry_core_py:

  1. Add to _rust.pyi: Define the type stubs

    class new_module:
        def new_function(...) -> ...:
            """Docstring"""
            ...
    
  2. Create Python wrapper: Add citry_core/new_module/__init__.py if needed

NOTE: A validator bindings (run by python scripts/check.py) checks that we've added entries to _rust.pyi and that the new_module subdirectory exists.

Type stub maintenance

When updating Rust functions:

  1. Update the function signature and docstring in _rust.pyi
  2. Ensure the filename _rust.pyi matches the second part from module-name in pyproject.toml

Metadata

Release files for citry-core 1.7.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 citry-core 1.7.1
File Size Uploaded
citry_core-1.7.1.tar.gz 2.2 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for citry-core 1.7.1
File
citry_core-1.7.1-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux musl 1.2+ x86-64 Details
citry_core-1.7.1-pp311-pypy311_pp73-musllinux_1_2_i686.whl PyPy 3.11 PyPy 3.11 7.3 Linux musl 1.2+ x86-32 Details
citry_core-1.7.1-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl PyPy 3.11 PyPy 3.11 7.3 Linux musl 1.2+ ARMv7l Details
citry_core-1.7.1-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl PyPy 3.11 PyPy 3.11 7.3 Linux musl 1.2+ ARM64 Details
citry_core-1.7.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ x86-64 Details
citry_core-1.7.1-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ IBM System/390x Details
citry_core-1.7.1-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ PowerPC 64-le Details
citry_core-1.7.1-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ ARMv7l Details
citry_core-1.7.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ ARM64 Details
citry_core-1.7.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.5+ x86-32 Details
citry_core-1.7.1-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details
citry_core-1.7.1-cp314-cp314t-musllinux_1_2_i686.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-32 Details
citry_core-1.7.1-cp314-cp314t-musllinux_1_2_armv7l.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARMv7l Details
citry_core-1.7.1-cp314-cp314t-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 Details
citry_core-1.7.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details
citry_core-1.7.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ IBM System/390x Details
citry_core-1.7.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ PowerPC 64-le Details
citry_core-1.7.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARMv7l Details
citry_core-1.7.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details
citry_core-1.7.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.5+ x86-32 Details
citry_core-1.7.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl CPython 3.14 CPython 3.14 PyEmscripten 2026.0+ WebAssembly Details
citry_core-1.7.1-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
citry_core-1.7.1-cp310-abi3-win32.whl CPython 3.10 abi3 Windows x86-32 Details
citry_core-1.7.1-cp310-abi3-musllinux_1_2_x86_64.whl CPython 3.10 abi3 Linux musl 1.2+ x86-64 Details
citry_core-1.7.1-cp310-abi3-musllinux_1_2_i686.whl CPython 3.10 abi3 Linux musl 1.2+ x86-32 Details
citry_core-1.7.1-cp310-abi3-musllinux_1_2_armv7l.whl CPython 3.10 abi3 Linux musl 1.2+ ARMv7l Details
citry_core-1.7.1-cp310-abi3-musllinux_1_2_aarch64.whl CPython 3.10 abi3 Linux musl 1.2+ ARM64 Details
citry_core-1.7.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details
citry_core-1.7.1-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl CPython 3.10 abi3 Linux glibc 2.17+ IBM System/390x Details
citry_core-1.7.1-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl CPython 3.10 abi3 Linux glibc 2.17+ PowerPC 64-le Details
citry_core-1.7.1-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl CPython 3.10 abi3 Linux glibc 2.17+ ARMv7l Details
citry_core-1.7.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details
citry_core-1.7.1-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl CPython 3.10 abi3 Linux glibc 2.5+ x86-32 Details
citry_core-1.7.1-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details
citry_core-1.7.1-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details

Total release size: 215.3 MB

Release files / citry_core-1.7.1.tar.gz

Download URL citry_core-1.7.1.tar.gz
Size 2.2 MB
Tags Source
SHA-256 checksum
How to use checksums
58550b0ed4433184b1c40c5286bf2a6e08fe83581714332815307103201ca4ee
BLAKE2b-256 checksum
How to use checksums
587e239e8ad9c6282d7f49d5025f32a73d08da6e6659580d8a5aa3c38ec6249f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl

Download URL citry_core-1.7.1-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Size 6.4 MB
Tags Linux musl 1.2+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
615b2a1c6a90dfccac9545db20b5d0959fff04570eaa5f72caceb0e6ac6ec7a1
BLAKE2b-256 checksum
How to use checksums
6acfc3fff05a96ad64a1ef006bdcd035383cc052356079285904f2ddd4a4566c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-pp311-pypy311_pp73-musllinux_1_2_i686.whl

Download URL citry_core-1.7.1-pp311-pypy311_pp73-musllinux_1_2_i686.whl
Size 6.2 MB
Tags Linux musl 1.2+ x86-32 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
07a320d28bcbbf02b36fa107576a4d056c417187b23e5a0ddbc430b516d9b719
BLAKE2b-256 checksum
How to use checksums
26c1ee2c617d93434bb06887e828c1cf77c984dba05725c4091cea2466fa8b73
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl

Download URL citry_core-1.7.1-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl
Size 6.1 MB
Tags Linux musl 1.2+ ARMv7l PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
e13153b75d5fff3d5e192def76ff05e2c324069ce2a43f9252ba66eaae2d0852
BLAKE2b-256 checksum
How to use checksums
a18a0336a18f297ab0edb062717868518e4cdc5739dd25f407935ebfc006687a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl

Download URL citry_core-1.7.1-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Size 6.1 MB
Tags Linux musl 1.2+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
e208e30245884e604ab48ca4822cd7e8ea0dad62800dd09e943e87cd9d4585df
BLAKE2b-256 checksum
How to use checksums
b4b0036719779f791574958b3c7e8dad39b9949277dce841e17bcaf9ecc06e05
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL citry_core-1.7.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.1 MB
Tags Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
6d0c281fbf349c8ca0af6ce8214de03b628131fe48cc4471c651ae720a6f9347
BLAKE2b-256 checksum
How to use checksums
ae81d75e1438bde4770c773d8d267f346c4650e95e8618c812f7b705a192f91c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl

Download URL citry_core-1.7.1-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Size 6.5 MB
Tags Linux glibc 2.17+ IBM System/390x PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
38d333ca48d91cb86ce33192265075a6585665088b941451447e5f71b4eb0fef
BLAKE2b-256 checksum
How to use checksums
0e9d127a59f6249c0b26e5e8151b0ee937ef3c2223cfac3b7bc179dc229e5553
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl

Download URL citry_core-1.7.1-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 6.6 MB
Tags Linux glibc 2.17+ PowerPC 64-le PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
050e9edad4cd044112a4f0b8bbed0d000fdf746a697e88b703c633b97ca9e2f3
BLAKE2b-256 checksum
How to use checksums
b89274237dc70a51b1e9fc0ba4b37767cbd2cbffc07b878241fabd8ef6125012
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL citry_core-1.7.1-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 5.8 MB
Tags Linux glibc 2.17+ ARMv7l PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
bedb5650f9843fba46bbab7e95c662471aee7791fa1d5662640e53a0821a31ae
BLAKE2b-256 checksum
How to use checksums
2a89e426fceeb14906735382ed52df3b634e4329d1f01b48fdfa3bee3cfb5b85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL citry_core-1.7.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 5.9 MB
Tags Linux glibc 2.17+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
c81b8189377c5813c1390d00a1530bf827dc10461e2ffa1d3b0a2d4558ddc5fd
BLAKE2b-256 checksum
How to use checksums
4ccc5831ae47f6137f7d5b8c46eee1c84ad67b298ef78c6f7fc83b0c99d5886c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl

Download URL citry_core-1.7.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Size 6.1 MB
Tags Linux glibc 2.5+ x86-32 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
03e0d81daa6f66359f24b9c78571200d2d8937020f514bb3cee54e700913cac7
BLAKE2b-256 checksum
How to use checksums
b46cfe7e8807e0992b1c1901987f045231f1d80e5a9ded82d4eb4e8bd72a61f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL citry_core-1.7.1-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 6.4 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
f17c741b17372687aad1d66198fe0c568ab1b9867e9f8dd91b64149f09b20054
BLAKE2b-256 checksum
How to use checksums
b86e16c529a9c367814fa5732f6d457c8538abe19cb7ec056c6c517a483a46f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp314-cp314t-musllinux_1_2_i686.whl

Download URL citry_core-1.7.1-cp314-cp314t-musllinux_1_2_i686.whl
Size 6.2 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
e9d37de653468c4edca3d1a71cc1c9effb8e15fb376910a62f5a83e930477f5d
BLAKE2b-256 checksum
How to use checksums
8ee3e9c534613b090132b701446439e6e6f3b6f86d227ec06900bd6b4810c3af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp314-cp314t-musllinux_1_2_armv7l.whl

Download URL citry_core-1.7.1-cp314-cp314t-musllinux_1_2_armv7l.whl
Size 6.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARMv7l
SHA-256 checksum
How to use checksums
147769e71051ab6037f91dd44a1fa7b7d2700162a9ba47ff1591b2201491466e
BLAKE2b-256 checksum
How to use checksums
fd311e0a139688e624b8c0ceb1f427af59b52e38d83ffd059d1f4d21d58cdb74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp314-cp314t-musllinux_1_2_aarch64.whl

Download URL citry_core-1.7.1-cp314-cp314t-musllinux_1_2_aarch64.whl
Size 6.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
81383fd6e09dad21d943b99e42aa8dfd7991ca64be8088ce96a383053aabc148
BLAKE2b-256 checksum
How to use checksums
a018939c35420473a5e38a5eb3c7f72ce540559242a1ad96b14a324b4ff30c3a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL citry_core-1.7.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f4d229c69169259777fe4d1df63709248e3471e36da55b01f86bc337ed8fd598
BLAKE2b-256 checksum
How to use checksums
bd7c7b8b4d81acdfa719e2855526755b32152b7630975d68656ecbb93a9d6b1f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl

Download URL citry_core-1.7.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Size 6.5 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ IBM System/390x
SHA-256 checksum
How to use checksums
2df00a694bea2c947db223e1448815c1bfd5bf1e2caf48f78619c6c0336f85fd
BLAKE2b-256 checksum
How to use checksums
d1fe42d1476bdbc46b040ecf2eef98f20340969e9556b877894a667d28331e6a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl

Download URL citry_core-1.7.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 6.6 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ PowerPC 64-le
SHA-256 checksum
How to use checksums
2c22bfe1f55d20b257b21d8d0f38b9c3e1650db8f3697bc2a13c5cfbdced99d5
BLAKE2b-256 checksum
How to use checksums
46432cc6a195853c33bd87434d22345488e8fd400a4afe73c162a1739be491bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL citry_core-1.7.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 5.8 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARMv7l
SHA-256 checksum
How to use checksums
24749bf93b55f090b1cc0de5b5bbd2b3dd4c43fdbdce5ff7289e74961c042940
BLAKE2b-256 checksum
How to use checksums
2213b5a284130b5a0824bb45788faaa0eb1c923073afece058bfbfed63e3af7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL citry_core-1.7.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 5.9 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
f3711367c895d2059738f3dce6fecc0e36e338a1ad019c822c6fef1542ab0b25
BLAKE2b-256 checksum
How to use checksums
0e02ff035156ef3e790e7c5f331f92816a2d66fbd342ab06fe4c441ebf052cde
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl

Download URL citry_core-1.7.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl
Size 6.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
3dcb8d3a97703c75faf58efb4c13354171353334a87bd5f9fed33f529300da60
BLAKE2b-256 checksum
How to use checksums
6f0907ae65b27e05e6b60b545ffa39030b96d0e214215a6a070f276dbf030dcf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl

Download URL citry_core-1.7.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl
Size 4.6 MB
Tags CPython 3.14 PyEmscripten 2026.0+ WebAssembly
SHA-256 checksum
How to use checksums
94dfb3325eb7e88a5885533510342cbd58ab2cb722ea92b75e36f2aebc1e9923
BLAKE2b-256 checksum
How to use checksums
5d7e7ace52d70ad82de8030a618179ed686fd9a9424a7906bd44f947d912f80a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp310-abi3-win_amd64.whl

Download URL citry_core-1.7.1-cp310-abi3-win_amd64.whl
Size 6.0 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
34a1eb928bfdb3c583edeea6e12294a77982e340b37e1d8aabebcf5836da2981
BLAKE2b-256 checksum
How to use checksums
5a4c953ce8a6838e1f6dd9cc027ce4c1af47709e24969a1e0c469537f05b58cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp310-abi3-win32.whl

Download URL citry_core-1.7.1-cp310-abi3-win32.whl
Size 5.7 MB
Tags CPython 3.10 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
dfb10bbd0e502b3fb9f35eaa21789cf576a62ab1b5b35a60c689061fbde5ea4d
BLAKE2b-256 checksum
How to use checksums
d5797c6aade4ce5204578308ade33eb174b112f5bf01e23ec43b3e4f9c645d8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL citry_core-1.7.1-cp310-abi3-musllinux_1_2_x86_64.whl
Size 6.4 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
6a71b9c2a67ad50864a8f040fbcf03b3a10d8fe32b82e7c38bb4bbf5bec6f485
BLAKE2b-256 checksum
How to use checksums
3f6e55503197f81927b6ab767c22d0a73614e200089ac7717d81e5ffe573bd0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp310-abi3-musllinux_1_2_i686.whl

Download URL citry_core-1.7.1-cp310-abi3-musllinux_1_2_i686.whl
Size 6.2 MB
Tags CPython 3.10 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
3316d15e146357aa22378fc7564d0e3f1ffe84b76a8d63bd6eacb9ed682f95ed
BLAKE2b-256 checksum
How to use checksums
334bea80daff3ea68ac7e55e2f88d742ad34406e96f2d1d4f870159f7c7df91c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp310-abi3-musllinux_1_2_armv7l.whl

Download URL citry_core-1.7.1-cp310-abi3-musllinux_1_2_armv7l.whl
Size 6.1 MB
Tags CPython 3.10 Linux musl 1.2+ ARMv7l abi3
SHA-256 checksum
How to use checksums
9bdeb34171d9e7df3a35bb5a92d9ff3947d787dce97446d58a675d23a4fbc716
BLAKE2b-256 checksum
How to use checksums
b749ee376c5d9aae74cad623480f43ce5bfc54de4155e5c580b8ec79b9112091
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL citry_core-1.7.1-cp310-abi3-musllinux_1_2_aarch64.whl
Size 6.1 MB
Tags CPython 3.10 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
38fcab5c47b3f8ee3c6e05c16e185a95f81eb6172a77716ab3db3b39f5f04e00
BLAKE2b-256 checksum
How to use checksums
adcbe0cbd5d583b9246e9fecc28b3cd0bf9fb89c4dc02cf3863ff372ac0597fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL citry_core-1.7.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.1 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
f92e33719117b4e34b612ab55ab28ad681ce562a6614be1693ce5e738bf20159
BLAKE2b-256 checksum
How to use checksums
12cbbf368c9eb29a54334b34152636568b0edfd1ab5b990e7813116f3a71f60f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl

Download URL citry_core-1.7.1-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Size 6.5 MB
Tags CPython 3.10 Linux glibc 2.17+ IBM System/390x abi3
SHA-256 checksum
How to use checksums
afa0f5d9f3045b0bb67651d07ba8501003afd189c1554d289d2c0bfc4ba0310e
BLAKE2b-256 checksum
How to use checksums
a4eb1daa3e16312e6c49a7f2545c5219cc51effccb4e972436a9eca5093fed09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl

Download URL citry_core-1.7.1-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 6.6 MB
Tags CPython 3.10 Linux glibc 2.17+ PowerPC 64-le abi3
SHA-256 checksum
How to use checksums
35674a59ed7cc8bb27ed6dadc1558ef81414d8bdd18e19775aa6185d1da047e1
BLAKE2b-256 checksum
How to use checksums
44db8016ad5d7fe74814fe556733f461302afccba71996c24ecc3327c418f127
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL citry_core-1.7.1-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 5.8 MB
Tags CPython 3.10 Linux glibc 2.17+ ARMv7l abi3
SHA-256 checksum
How to use checksums
0f5c1e927e6f354049800fd36e4122ee7278fded666166fff67461bb6cdc5a85
BLAKE2b-256 checksum
How to use checksums
4191429b9e63f3138ed36025bde844c3c5000af6880fe0dbb14b79dcb5f5b8cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL citry_core-1.7.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 5.9 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
16f92507fa7c052f6539b9a0e6b297b0be85702eef4e21962ecce9f4cfc417be
BLAKE2b-256 checksum
How to use checksums
3ab46e0ffcb3d94b757c496501e395fcfdeee455c96fe54c33b9c3c38aa3a3bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl

Download URL citry_core-1.7.1-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Size 6.1 MB
Tags CPython 3.10 Linux glibc 2.5+ x86-32 abi3
SHA-256 checksum
How to use checksums
74d3825fbcf78d876b47b7fd5841b264aeb4c0eb8f4fb0b49b9cfdf81f5e2656
BLAKE2b-256 checksum
How to use checksums
f7b9ad2920950d88c9c1ef1ec3ce091018fbf3be4068f7d41dd8052cd756ebd1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp310-abi3-macosx_11_0_arm64.whl

Download URL citry_core-1.7.1-cp310-abi3-macosx_11_0_arm64.whl
Size 5.7 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f9cac6fa00b18f1bcdb6f0a4e466707bbe41b12d86f531467ea9302930183bd9
BLAKE2b-256 checksum
How to use checksums
4a8508feabca1d69c06c572c0a997d6cf6b9c35954c73f7068350f21a1005e68
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / citry_core-1.7.1-cp310-abi3-macosx_10_12_x86_64.whl

Download URL citry_core-1.7.1-cp310-abi3-macosx_10_12_x86_64.whl
Size 5.9 MB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
1fa1f1b2deefebeea9c5611b7fb556d54239c327058ec0635d5c273c13d01373
BLAKE2b-256 checksum
How to use checksums
c0760ebee4d3f890b3e3580c86b7f6dd0f129832e629b43ace04505a1d61e8b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.7.1 This release

36 release files

1.7.0

36 release files

1.6.1

36 release files

1.6.0

36 release files

1.5.1

36 release files

1.5.0

92 release files

1.4.0

92 release files

1.3.0

91 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