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.8.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.8.0
File Size Uploaded Provenance
citry_core-1.8.0.tar.gz 3.0 MB With provenance Details

Built distributions (wheels)

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

Total release size: 308.9 MB

Release files / citry_core-1.8.0.tar.gz

Download URL citry_core-1.8.0.tar.gz
Size 3.0 MB
Tags Source
SHA-256 checksum
How to use checksums
5eefdf9609ed95ea4613ceae6a0e5547f3af265256163a48341bdea089f6f3c4
BLAKE2b-256 checksum
How to use checksums
ab3ee5f5d650cc98e0aeb465bcef76cfe83ea4e6adbfe19d8922b7c776f6e4d4
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Size 9.1 MB
Tags Linux musl 1.2+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
bc1a8401451bca39438528a2cba29406cb67b70bd6d9adf9cdfe83acf26efdbb
BLAKE2b-256 checksum
How to use checksums
96e91e035ffc53544ffed6806237bbc447c1880447a3dd6044de173bc9196139
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl
Size 8.9 MB
Tags Linux musl 1.2+ x86-32 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
757ac25fd98b6fd303b195d2f95c745f71f549df673cc4ace34b425c103c999a
BLAKE2b-256 checksum
How to use checksums
b6caa27137f016c3437f353e58e0ce8fc94eed0f764cffd2c175a321802b0fac
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl
Size 8.6 MB
Tags Linux musl 1.2+ ARMv7l PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
bbd929b6fc416faf377049f2b19c50805f111551f52c13dd9db49167a01b27b5
BLAKE2b-256 checksum
How to use checksums
844436e6b75f38e60b9c545fabda1636131b8a0212c537b74abf83713b002735
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Size 8.6 MB
Tags Linux musl 1.2+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
fce1a51c01ab65b254b7fd9d2736cf6fb1780d7ecf692317e2a942a6f76e356a
BLAKE2b-256 checksum
How to use checksums
23683b0b08cadaf3f0d25722a6975cee28e83bcfaf79d690e8150de9f03de81f
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 8.8 MB
Tags Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
c5c63c868a233d4a07fcb7dce95d77368bc7670815eb385efc4c6f3fe498f119
BLAKE2b-256 checksum
How to use checksums
8bc329df4af28ef3444add5c670ff5caff68484b642536601ef3bfc1a04c6e94
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Size 9.6 MB
Tags Linux glibc 2.17+ IBM System/390x PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
12ce8b35b19a0ea5c3f32d875e7d75bb42ff25c0ea1172e21a681736d2d23f48
BLAKE2b-256 checksum
How to use checksums
2dcfb8f42b50564dfc8fec6a221ba8015c151636c6b280dbe91e4cb928affb6d
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 9.5 MB
Tags Linux glibc 2.17+ PowerPC 64-le PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
28d25a1c8d71c4cc668e9aa9be5109b45c9c7cbbd74f6ed4f3d3d93484befd30
BLAKE2b-256 checksum
How to use checksums
813fe950163f9f28585af4b9f60c04221bdf7964fbc405983cda20699bac7bc7
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 8.3 MB
Tags Linux glibc 2.17+ ARMv7l PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
fcb3bea826230c7ab78b77b77cacd1d8c549f3d91d0fff97fe910a7be10a5584
BLAKE2b-256 checksum
How to use checksums
114e797946b29d8a627f0753bc4478a544f14de075d01eb44ddcba0f40593e21
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 8.5 MB
Tags Linux glibc 2.17+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
061d13bf5792c29cf999b06b562c90ef4f7b7beb7a224deb78d1b6e5dc538078
BLAKE2b-256 checksum
How to use checksums
cb8a0e498ba5d0284cf9b745348d770009cba1261810342aca379f30bed01c8d
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Size 8.8 MB
Tags Linux glibc 2.5+ x86-32 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
a3cd36c90038ad41f09e750e6e3d0cea1d2e82404efcb76047cdb685b9209cb8
BLAKE2b-256 checksum
How to use checksums
e4cd7031dbd9be5c95d02ac38873e22fb983576a7a1c8acaf9db27f2ebd0a251
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 9.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
29817d4ccd7333f88be69bcb48e1ba3c0a8bb83ebe0741ef314377157579169d
BLAKE2b-256 checksum
How to use checksums
0ed2660dddfa9def8c7889db75a4a44bbe04c02596ac419fbf5969ba7e6ecfc9
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp314-cp314t-musllinux_1_2_i686.whl
Size 8.9 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
987b1f1a50c51b41de5ab780e38a9e680e12f54e78427ad5755a20b03cad1825
BLAKE2b-256 checksum
How to use checksums
f8f5542ce0da347363a178f9698bb45d06fbb07c6f6c6fafcdea8924073973d5
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp314-cp314t-musllinux_1_2_armv7l.whl
Size 8.6 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARMv7l
SHA-256 checksum
How to use checksums
e6166ab41ff20c98f5393ea8428ce05d66f6ad628482261b1c95bd9bb8a8e47d
BLAKE2b-256 checksum
How to use checksums
450285337496a969d185f7e6e78574a9ee30a258b12eae8d1d5b5294378bf86a
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Size 8.6 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
f93e48924efff9a5504b2d98b377a08a6f7e8d0c9e90b271aba2c53267a58d27
BLAKE2b-256 checksum
How to use checksums
3775af70bfa6d8cbef658c31816c42d9eec60ee9ccecd4f1e6a46769320b4807
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 8.8 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
952726dee077c3ef39ce28eace798d08a29a4c370b464b984d5243a4840a47d4
BLAKE2b-256 checksum
How to use checksums
d6377b982ab87c01620b68a07b4a30c50e624242621d5307f1c7e0af87c91cf4
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Size 9.6 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ IBM System/390x
SHA-256 checksum
How to use checksums
a2d0af18152fbca22b5edaa3f6d90ef2e1c59e4f75bed841bf1ca3d570e5eb47
BLAKE2b-256 checksum
How to use checksums
ad16bdd0369be9d417a95592b4296f88382e68136d972d4196a5c56692e84ae0
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 9.5 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ PowerPC 64-le
SHA-256 checksum
How to use checksums
cda8d82d1548efb131c830a402e25ae67ab3bdae49f49a078c808804d034683a
BLAKE2b-256 checksum
How to use checksums
ba9bbb09e15b6ae9b6412aa10e103e81f30499372040c6ad0767de40138557fd
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 8.3 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARMv7l
SHA-256 checksum
How to use checksums
45634c9b85bc5de264ded4f111cff5519beccd5ce8740b1f6605748dc5729336
BLAKE2b-256 checksum
How to use checksums
73198dca314493ce1ab963dc05fbdcbb0780274eca634d2a17560c92cf6a26a1
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 8.5 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
87c54a4d3d5161fb11d869a96210c44dad8c994a4065665e06567ae8070b2f8b
BLAKE2b-256 checksum
How to use checksums
970114fbdf250dc16d879fce3d40165ddf49eb69b33f0619c98a898f39830d66
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl
Size 8.8 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
c1705ead3bf6b7f0056368559e2de93a6966e009c3ba832b423bf2a7f8702313
BLAKE2b-256 checksum
How to use checksums
ab3fdd176c9e69eb071861404657661ba62b408a75deffc223991f1499f81956
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl
Size 6.2 MB
Tags CPython 3.14 PyEmscripten 2026.0+ WebAssembly
SHA-256 checksum
How to use checksums
7c95e72651e0d4bf9affd6cab9f8ba0d67a5475fa8b05feebfe992d57e50e731
BLAKE2b-256 checksum
How to use checksums
d577dfd52987e206f6bf1263770a62e245e46a0f1c15110d2197977b27f6e073
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp310-abi3-win_amd64.whl
Size 8.7 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
f54a955a5e7961a66e58ec32e7ffbdf028ecc0ee7c4c38c4a476a12112bc8708
BLAKE2b-256 checksum
How to use checksums
846244c6b5b5d81bd1f3e622ce76366827b3f9d68523f2f0837a82e8f6c421a4
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp310-abi3-win32.whl
Size 8.2 MB
Tags CPython 3.10 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
f7f4836479abecdb34ac306afe4c0c2f7ccaf01b3ee9ea09053e0d8f486d1144
BLAKE2b-256 checksum
How to use checksums
12700e4f22591b02ac3ef0b31449fed2457d6a50dde66999fab21be86e3a6662
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp310-abi3-musllinux_1_2_x86_64.whl
Size 9.1 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
1c2fb77d57e5714e3b82beda534b5b01225daff416d2fec77261834c9d45d2f1
BLAKE2b-256 checksum
How to use checksums
57ec7ffac6dd374f2287af87d948a86a75c7578f3bb037bf87cc81aca690fee7
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp310-abi3-musllinux_1_2_i686.whl
Size 8.9 MB
Tags CPython 3.10 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
3818f5155a005f992a42d8d332d15b33a1417909609f1d5a9e36308a88b31bdb
BLAKE2b-256 checksum
How to use checksums
9d948839bfa993d3b88a1e1fa57377c118ada5bc8f7da7acfb15a5c1964fd548
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp310-abi3-musllinux_1_2_armv7l.whl
Size 8.6 MB
Tags CPython 3.10 Linux musl 1.2+ ARMv7l abi3
SHA-256 checksum
How to use checksums
fcc7a6c521455a49f3be3f36faef8113053d108c62393436e490cf9ac453ca19
BLAKE2b-256 checksum
How to use checksums
cce97ec61c645dc283ab94a439269b9076ee3ce6677208341a6ed4516d9d99d2
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp310-abi3-musllinux_1_2_aarch64.whl
Size 8.6 MB
Tags CPython 3.10 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
759f1c407fd9df180d50343409e3a21b15edabb181a4ea4da15ef8b0c677cf60
BLAKE2b-256 checksum
How to use checksums
b26f6d7c33cf11ef82f99bde8dc03096138790f1c920110738bcc63ecd5052ba
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 8.8 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
aeba35e60e5aaae2aaaf976fc9a8e10b2078a01fc2cf5856886444846d79c079
BLAKE2b-256 checksum
How to use checksums
cb5e1280475addf556fb6938b039f1fa42eafad4d4ecd8ad92d0b5e768147800
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Size 9.6 MB
Tags CPython 3.10 Linux glibc 2.17+ IBM System/390x abi3
SHA-256 checksum
How to use checksums
5507680df4b9aee33901c90c53afaa69a1932d418a1e2ead02897f0674990824
BLAKE2b-256 checksum
How to use checksums
be37610bae329a4d80a8b7ed6512cec58c5f70d56653841433389ec1b96b48bf
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 9.5 MB
Tags CPython 3.10 Linux glibc 2.17+ PowerPC 64-le abi3
SHA-256 checksum
How to use checksums
a72fca1e3ca1214d3de8b6e94c3f55dd71d1d3aa5acc96c4261f08c8bfeeebf8
BLAKE2b-256 checksum
How to use checksums
a847135b3f1edd559d27475f75afb4efb5f981013f62517a9962eed9d02c24a7
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 8.3 MB
Tags CPython 3.10 Linux glibc 2.17+ ARMv7l abi3
SHA-256 checksum
How to use checksums
9c50e9db1cc15d4aa43450f80b08fcdb335b9ee6e39716fb4d40355e3a619746
BLAKE2b-256 checksum
How to use checksums
29b46f6e11dc48ce3de6bf083de49a48a9d2ff3c3614bb8e7f2f2d09c7cab0e4
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 8.5 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
4c3e683eab052fb5d67648f42d9fbc461b697390a43a727e5c72cbe4545f350d
BLAKE2b-256 checksum
How to use checksums
4e54d710ed0c04ab42f068a7e03c45bf98588393158ce2cb3da295684dab6294
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Size 8.8 MB
Tags CPython 3.10 Linux glibc 2.5+ x86-32 abi3
SHA-256 checksum
How to use checksums
4cce993380fc21203821185b03dd93dc5af713e47332bcf2b4524949586dc70e
BLAKE2b-256 checksum
How to use checksums
e09ea92c94127fb332c664d5f98208f83adc8fc14e636ce2df02fb2f7d95afb3
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp310-abi3-macosx_11_0_arm64.whl
Size 8.1 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f19cbd73a3098495b2ebc0ab2da32efa45f9f2ae052b7035601a14078363b4ba
BLAKE2b-256 checksum
How to use checksums
24bb6c0879883a24e5edb327d8486604d9d12d9a2c18a8176a884a4f6b471714
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 Oct 19, 2026.

Transparency log

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

Download URL citry_core-1.8.0-cp310-abi3-macosx_10_12_x86_64.whl
Size 8.4 MB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
cc4defc83ec08cfe6ffde109f7a12675f6d5fd5d220569e6d7679e2a0aac6f9f
BLAKE2b-256 checksum
How to use checksums
dc0e1466085fe6a283d9c640b16518f241f697f065f10df1503c1048c8a7a282
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 Oct 19, 2026.

Transparency log

Security for citry-core 1.8.0

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.

Full provenance

All 36 files in this release have been uploaded with provenance metadata.

Select from 36 files

Attestation for citry_core-1.8.0.tar.gz

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 Oct 19, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

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