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

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

Source distribution (sdist)

Source distribution for citry-core 1.7.0
File Size Uploaded
citry_core-1.7.0.tar.gz 2.2 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for citry-core 1.7.0
File
citry_core-1.7.0-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.0-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.0-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.0-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.0-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.0-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.0-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.0-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.0-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.0-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.0-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.0-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.0-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.0-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.0-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.0-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.0-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.0-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.0-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.0-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.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl CPython 3.14 CPython 3.14 PyEmscripten 2026.0+ WebAssembly Details
citry_core-1.7.0-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
citry_core-1.7.0-cp310-abi3-win32.whl CPython 3.10 abi3 Windows x86-32 Details
citry_core-1.7.0-cp310-abi3-musllinux_1_2_x86_64.whl CPython 3.10 abi3 Linux musl 1.2+ x86-64 Details
citry_core-1.7.0-cp310-abi3-musllinux_1_2_i686.whl CPython 3.10 abi3 Linux musl 1.2+ x86-32 Details
citry_core-1.7.0-cp310-abi3-musllinux_1_2_armv7l.whl CPython 3.10 abi3 Linux musl 1.2+ ARMv7l Details
citry_core-1.7.0-cp310-abi3-musllinux_1_2_aarch64.whl CPython 3.10 abi3 Linux musl 1.2+ ARM64 Details
citry_core-1.7.0-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.0-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.0-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.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl CPython 3.10 abi3 Linux glibc 2.17+ ARMv7l Details
citry_core-1.7.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details
citry_core-1.7.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl CPython 3.10 abi3 Linux glibc 2.5+ x86-32 Details
citry_core-1.7.0-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details
citry_core-1.7.0-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details

Total release size: 214.8 MB

Release files / citry_core-1.7.0.tar.gz

Download URL citry_core-1.7.0.tar.gz
Size 2.2 MB
Tags Source
SHA-256 checksum
How to use checksums
88507294d7257f29d8925219172bee99546333a7765aa8b4f1790dabcfc250d8
BLAKE2b-256 checksum
How to use checksums
a0ed78e989702640f485eab68e2782979bf4ed2aa6dfad1b3d5d2ab3dd319115
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
38f10d7576fce251369ccb48ead63fd58b4c380c3c532e9ed4ff4ccae116ee66
BLAKE2b-256 checksum
How to use checksums
4049414dfcfcb0222b42600633d54f44453b3f7336594433a32466118eea3430
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
347e7c6bc9fb475f956111af660abda0b845718ef8d8279fba5432194f98c9f2
BLAKE2b-256 checksum
How to use checksums
0bcb65d5c293163d4a69b51b36d0bd50175f0efc92a2fb66bf08dfe279d0f662
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl
Size 6.0 MB
Tags Linux musl 1.2+ ARMv7l PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
0a6a71bf7ee75b896d08b1d94f621fe93e6b3d230375d4affbe66a0ca64599ab
BLAKE2b-256 checksum
How to use checksums
a24391444210b111e30a1fd9032094d42a752421df1f714b319081a738a89376
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
251b921d55901d3e40fddef5a448d35b06628b5277b672c38743619ba5634eaf
BLAKE2b-256 checksum
How to use checksums
5bec4a11711acfbdd067879e249f484ff152a01830bd1ae2f7621cff43964585
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
140444edad9ad1066d5be32a0566629fa59f75a356441dacf97008dfe610d42c
BLAKE2b-256 checksum
How to use checksums
08f4ab464ce05b2dda58f31a96b4ce072998ebfbd2a74396ea63f87cd7ce9e97
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
5cca168b8bc16125c1dd8db2fa019b24304625e8ac9322199d0b0c203c9ee281
BLAKE2b-256 checksum
How to use checksums
1b31b35759a3830cd98075e319021c81684b156f5607a0adf7ee60c96dee36a1
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
14ee54ad4335d9bfc76aa6cf73b9632ec19f18ab012c8de5d436a0cb8d3db128
BLAKE2b-256 checksum
How to use checksums
488a3a07eaa6a5c48bb880d8d6fd89dec1cf55218f29157dea287a2e82d9cd99
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
0f2ef52fdfcb1df538f171b5f83f185fc1699b232885908f844777b144bb282b
BLAKE2b-256 checksum
How to use checksums
909935a56b2a200b73beeb79c2a57baf7850425dca037592d083473f3c58bc0a
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
d41d7eb28e1f00f0d07960f5dc6ce3bb13421c0ff1278359ed10f106912a9891
BLAKE2b-256 checksum
How to use checksums
2f53506c7df35f1049a8790dcd0bbd70662752b6a2c60dc1f48c1d09e9cddc46
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
ec6ecc34c9de66897fcc455aa81fd9ce9971f45373f9759df4830ee8c3aeef31
BLAKE2b-256 checksum
How to use checksums
07de630a63aeb53df1a1a75ed03dea059b8e72296456442b5d5891ed31741c64
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
ddc02c23d6d5d25b2be6469cff115febad9cec20bd3b855311dc03e654ec9602
BLAKE2b-256 checksum
How to use checksums
b253614dc2944df7dc33d391d04d0eefad25d524c6fbc92a4093c3adbc4b7f9f
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
6c211e8cbba4d7038882c76aaa925a6875497e9bbad5114740c325b8afb66f27
BLAKE2b-256 checksum
How to use checksums
34d786fa29e338b492e66ba4d20cfb3cfcdb254fe808e7e55f7b766d02b3e4b8
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
9b908c584ea50e2c3f43f2dae45ffbedb4b6814256f0aa687b4d042e15f77c41
BLAKE2b-256 checksum
How to use checksums
ab434126fa9e8c5fb8dbbf48712a927b5230f187041f1dc1fb1f963466b9757d
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
f199e28a79ec0113e576d871840cee8bf4558aa611bca59bfb93b05905d9898f
BLAKE2b-256 checksum
How to use checksums
7075d3d5807b7dd12faea4b779fcd2954e049e604ff0f31c7e60a85e72dd2f3d
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
48d62d73a82d0e81c48844697b9e93e8aae8d19a996ab1ea5b08109a62534b39
BLAKE2b-256 checksum
How to use checksums
ea0932a8b459edc0f0f08ac5f31852c8b727163764587c119b5b50ba9951949a
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
1b0a37091cb23ae4cf815b910f835e497e6880d14edd0e04db3fd2294e07f585
BLAKE2b-256 checksum
How to use checksums
c2f6b43d869fe03ed7c93fffa756db028bcdd6a6b3316116c66382b4d795b856
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
1640eca8e3f1438a52f40108286472ea78641eb3ed2c5fff59f6cdb6a3473698
BLAKE2b-256 checksum
How to use checksums
adf28a52fb67db6c8a52ab43bd4181ecc50198aab6d0202cbacc037888299834
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
7098b55c4634f18aaaeacc29911b0979bc5ba956708780477b946919c49e1584
BLAKE2b-256 checksum
How to use checksums
a6d98fd9ecbd621ea22a8e69ec1985df8451f9d0e196204bbbec0e9af7cdbde4
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
5109bc94585bea4903c89699dd0b325dc344ae4da148087007bed47e3bc699f6
BLAKE2b-256 checksum
How to use checksums
905614456af73c58649a03e74c945f05940c8c7be92b83a60ef22df63e467d99
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
51ffdc179ecade6b0fdb9f15627d9acbf0364a43005b39a6d9088b6293b050c1
BLAKE2b-256 checksum
How to use checksums
75c4e8a190342b2758744ba6754dd5f53c97fbe458b0cc3a26fb3302e792e6c5
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
869a4bae2f50a699b180acea527fab5117a011ede0fca65a433db6de1e2a40c1
BLAKE2b-256 checksum
How to use checksums
8f0887a71be2f3a2a19d497aec837781566fc6fd1f74b753bd181c250d1e8c46
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-cp310-abi3-win_amd64.whl
Size 6.0 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
5bcb975eb84f26e29513925c1524f5f6bf2f7a4df371e1467f5880d0e04c69bf
BLAKE2b-256 checksum
How to use checksums
0d2051ce719e0bc0fe884ad75c6ac3bd59d840c507fe8bb8850219d1db7b0cc7
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-cp310-abi3-win32.whl
Size 5.7 MB
Tags CPython 3.10 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
33e42e4ea735698917fd0da64c315d20269034c466503d9a44f1d96092c746a4
BLAKE2b-256 checksum
How to use checksums
4eb5fb3450c3351de4cb1b3a6f413a8e709b24043db424a54969ca76507f45d2
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
90842b37b7950829d35ebce3645c376e0355b242d3fa77c62cff83a9c2d64901
BLAKE2b-256 checksum
How to use checksums
ad61df0f81c8552ce512b0cb73624c5db78c1163931b3e2f36b65ef9772d45ac
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
c5cc86ec95e9aef3ad3df78fdd49a97759eb9a6b4d19e42ad1c1566126df51d6
BLAKE2b-256 checksum
How to use checksums
8faecb54c2d3ea599450fbe54efc397249023ad8067428f5d805a76c5b42add2
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
82c627d1d55b557663edaab11a6c25d8b5f545886a54e2d4e0c630925c4ec439
BLAKE2b-256 checksum
How to use checksums
1db74820c6ac45751bd73154d24ca8356a1d83e84c95a8c6e63a5f8452d67d9c
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
8b316c4ca451b9478415fcaf4f24ad9a29ef40cd250aa9b40e215d19aae1af34
BLAKE2b-256 checksum
How to use checksums
e7ebdb9c04b80c36dafbd9b6fb814788fe010c6a2debd3304c48ad9dddf3130d
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
e579bd0fdb15de67e4b5918909e7e7291d45afd12e6cb4d29791ff1290430d53
BLAKE2b-256 checksum
How to use checksums
d69296577e75ab9a32443eccda972e6656316d656730d518fbc1337f193610ed
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
9c87844d62e9162f2665dfe0c4655e43df92b254be235840ef104835bd587890
BLAKE2b-256 checksum
How to use checksums
e43b7bf73388f2b8630e111415955413821bb9570e7b0080827a61a2f5d000c8
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
f3fe8e261094807f93dce0740fe3648d30a485d3a1f9bcc943966cd81acdfd77
BLAKE2b-256 checksum
How to use checksums
c78d99af75f0c4d34d7ef76d8c7e2bb64f31c61d1fee7a25dcac39bc385cf0d3
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
b44c02c7cdbe1857ab5eb9c93eeedb89d4a8a37d1ae8c46140d57bff19031fe5
BLAKE2b-256 checksum
How to use checksums
2234e284ed350d8eb434dda5456e4f7be445016963de6145254dff40b25bf2a2
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
cf9390cf430c715a75b41ba3647072dda09a0d0b8c80310d5fcb6915700ed84e
BLAKE2b-256 checksum
How to use checksums
f8c57c17913e0266a707a19344798abb87151504c33835eb98c5d7e1d4ad4673
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
05e162d214f8f3b664756e44eef623748ae01cbbec7ab47b909e1f572b6bd389
BLAKE2b-256 checksum
How to use checksums
da2f0cfccad0843b1f323321a12bab5cb0b89bc331037415cb59122c077d9677
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
c65644fb9c867fe0886eaa84c4736c957e9766bfc97e08d856b58618a75f5f80
BLAKE2b-256 checksum
How to use checksums
f1f81dd6abbe50d9c40c4f4a11d44b20436327d18af34009a6623c6e216c4e0e
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 10, 2026.

Transparency log

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

Download URL citry_core-1.7.0-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
2989f4c1e3afd0b08f33ad71278f9ebb83e0f71e228c52cdd5dcf52edfe2b450
BLAKE2b-256 checksum
How to use checksums
3a001823a48641edab008c4ab1347eaef4bd44f2aeaa2c37643f924ee5fa026d
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 10, 2026.

Transparency log

Release history Release notifications | RSS feed

1.7.1

36 release files

This release

1.7.0 This release

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