Skip to main content

mcising

mcising

High-performance Ising model Monte Carlo simulation with a Rust core.

Documentation · PyPI · Changelog

CI Slow physics suite Docs Coverage PyPI Python versions Downloads License DOI


mcising is a Python library for Monte Carlo simulation of Ising spin systems. It supports 5 lattice geometries, J1-J2-J3 frustrated magnetism with external fields, 3 Monte Carlo algorithms, 3 execution modes (including parallel tempering), and adaptive thermalization. The performance-critical core is written in Rust via PyO3.

Why mcising

Who it is for. Researchers in computational and statistical physics who need classical Ising Monte Carlo they can trust and cite: studies of frustrated magnetism (competing J1-J2-J3 couplings on square, triangular, honeycomb and cubic lattices), critical phenomena and finite-size scaling, and machine-learning-for-physics work that needs large, labelled, reproducible sets of spin configurations.

The gap it fills. Textbook Ising codes are easy to write and hard to get right: the sign of a coupling, the neighbour table of a non-square lattice, the error bar on a specific heat. mcising packages the parts that go wrong as tested, pip-installable infrastructure — a Rust core checked against exact enumeration of small systems and against exact results (Onsager's solution, the critical temperatures of four lattices) on large ones; blocking and jackknife errors on every observable, with integrated autocorrelation times and adaptive thermalization; three execution modes including parallel tempering; and HDF5 output that records the configuration, seed, version and commit needed to reproduce a run. Antiferromagnetic and competing couplings, the case most reduced examples get wrong, go through the same tests as the ferromagnet.

Research context. mcising was developed alongside and used in a study of phase determination in the frustrated J1-J2 Ising model with deep learning (Çivitcioğlu, Römer & Honecker, Phys. Rev. E 111, 024131 (2025), arXiv:2403.09786) and its follow-up on minimal training sets (arXiv:2504.19795). The frustration tutorial reproduces the stripe phase of that model, and the examples reproduce Onsager's exact solution and a Binder-cumulant determination of Tc:

Phase diagram of the J1-J2 Ising model on the square lattice: ferromagnetic and stripe order parameters over the (J2, T) plane, with the specific-heat peak line

How mcising compares with peapods, ALPS and the Julia spin-model packages, feature by feature, is on the related work page.

Performance

On one core of an Apple M4 (10 cores: 4 performance + 6 efficiency), mcising performs 351M Metropolis spin updates per second on a 32×32 square lattice at Tc — 140.4× faster than pure Python and 15.0× faster than a NumPy checkerboard implementation of the same update, and 2.4× faster than peapods on a matched workload (energy recorded every sweep on both sides).

mcising 0.29.0 (commit 2e3548a), Python 3.12.11, measured 2026-09-01; medians of repeated runs. Regenerate with uv run --group benchmark python benchmarks/run_all.py --write-docs.

Implementation Lattice Timed sweeps Spin updates/s mcising is
Pure Python 32×32 200 2M 140.4×
NumPy (checkerboard) 32×32 1,000 23M 15.0×
mcising (Rust) 32×32 10,000 351M —
NumPy (checkerboard) 128×128 200 69M 4.7×
mcising (Rust) 128×128 1,000 324M —

Single-spin-flip Metropolis on the square lattice at Tc, one thread, Apple M4 (10 cores: 4 performance + 6 efficiency). Pure Python is a plain loop with precomputed neighbour and Boltzmann tables; the NumPy implementation updates the two checkerboard sublattices as whole arrays. Spin updates/s counts attempted flips; timed sweeps exclude 100 warm-up sweeps.

Matched physics against peapods 0.2.0 (Rust/PyO3): the same Hamiltonian (H = −J Σ s_i s_j, J = 1, energies per site, bond counted once), the same Metropolis sweep (a sequential scan with one attempt per site), the same temperature (Tc), 5,000 thermalization sweeps, then 100,000 timed sweeps with the energy recorded every sweep on both sides, one thread, 3 seeds per side, Apple M4 (10 cores: 4 performance + 6 efficiency). peapods reports +Σ J s_i s_j / N, so its sign is flipped before comparison. A row is published only when the two mean energies agree within 0.5 %.

Lattice E/site mcising E/site peapods Δ Sweeps/s mcising Sweeps/s peapods mcising is
Square 32×32 -1.4325 ± 0.0018 -1.4346 ± 0.0007 0.15 % 249,160 104,786 2.4×
Triangular 32×32 -2.0305 ± 0.0012 -2.0320 ± 0.0014 0.07 % 203,737 86,013 2.4×
Cubic 16×16×16 -1.0346 ± 0.0010 -1.0347 ± 0.0002 0.01 % 34,196 15,677 2.2×

Wolff and Swendsen-Wang are not compared: peapods interleaves cluster updates with Metropolis sweeps rather than running cluster-only sweeps, so no peapods workload matches an mcising cluster sweep.

Every number above is written by benchmarks/run_all.py from the committed benchmarks/results.json, and the test suite fails if the two drift apart. Regenerate with uv run --group benchmark python benchmarks/run_all.py --write-docs (a few minutes), or re-render the committed results with --from-json benchmarks/results.json --write-docs. The performance page adds the per-lattice, cluster-algorithm, scaling and parallel-execution tables.

The two libraries differ in scope more than in speed: mcising has named J2/J3 shells on five lattices including the non-Bravais honeycomb, an external field, quoted statistical errors and provenance-carrying HDF5 output, while peapods covers disordered couplings, spin-glass replica moves and hypercubic lattices in any dimension — see related work.

Features

  • 5 lattice geometries -- square, triangular, honeycomb (2-sublattice), cubic (3D), chain (1D)
  • 3 MC algorithms -- Metropolis, Wolff cluster, Swendsen-Wang cluster
  • 3 execution modes -- sequential cool-down, independent parallel (Rayon), parallel tempering with replica exchange
  • J1-J2-J3 frustrated magnetism -- nearest, next-nearest, and third-nearest-neighbor couplings
  • External magnetic field -- h coupling, compatible with all lattices
  • 15 Metropolis strategies -- auto-selected lookup tables optimized per coupling combination
  • Adaptive thermalization -- MSER equilibration detection + Sokal autocorrelation estimation
  • Correlation functions -- spin-spin correlation and correlation length
  • HDF5 output with crash-safe incremental checkpointing
  • Rich CLI with progress bars, benchmarking, and structured output
  • Fully reproducible -- deterministic RNG (Xoshiro256**), same seed = same results

Installation

pip install mcising

# with plotting (matplotlib) and/or DataFrame export (pandas):
pip install 'mcising[plot]'
pip install 'mcising[plot,dataframe]'

For development (requires Rust toolchain):

git clone https://github.com/bcivitcioglu/mcising.git
cd mcising
uv sync
uv run maturin develop

Quick Start

Python API

from mcising import Simulation, SimulationConfig, LatticeConfig, LatticeType

config = SimulationConfig(
    lattice=LatticeConfig(size=32, j1=1.0),
    temperatures=(3.0, 2.269, 1.5),
    n_sweeps=1000,
    seed=42,
)

sim = Simulation(config)
results = sim.run()

# Access results per temperature
for T in results.temperatures:
    print(f"T={T:.3f}: <E>={results.energy[T].mean():.4f}, "
          f"<|M|>={abs(results.magnetization[T]).mean():.4f}")

Multiple Lattice Types

from mcising import LatticeType

# Triangular lattice with J1-J2 frustration
config = SimulationConfig(
    lattice=LatticeConfig(
        lattice_type=LatticeType.TRIANGULAR,
        size=32,
        j1=1.0,
        j2=0.5,
    ),
    temperatures=(4.0, 3.641, 2.0),
    n_sweeps=1000,
)

# Also available: HONEYCOMB, CUBIC, CHAIN

Parallel Execution

from mcising import ExecutionMode

# Independent: each temperature runs in parallel (uses all CPU cores)
config = SimulationConfig(
    lattice=LatticeConfig(size=32),
    temperatures=(3.0, 2.5, 2.269, 2.0, 1.5),
    n_sweeps=1000,
    mode=ExecutionMode.INDEPENDENT,  # one temperature per core
)

# Parallel Tempering: parallel + replica swap for better sampling
config = SimulationConfig(
    lattice=LatticeConfig(size=32),
    temperatures=(3.0, 2.5, 2.269, 2.0, 1.5),
    n_sweeps=1000,
    mode=ExecutionMode.PARALLEL_TEMPERING,
)
results = Simulation(config).run()
results.pt_diagnostics.swap_acceptance  # did the ladder mix? (+ round_trips)

Adaptive Mode

For large lattices near the critical temperature, enable adaptive measurement to automatically determine thermalization length and measurement spacing:

from mcising import AdaptiveConfig

config = SimulationConfig(
    lattice=LatticeConfig(size=64),
    temperatures=(3.0, 2.269, 1.5),
    adaptive=AdaptiveConfig(enabled=True, min_independent_samples=200),
    seed=42,
)

results = Simulation(config).run()

# Inspect diagnostics
for T in results.temperatures:
    diag = results.adaptive_diagnostics[T]
    print(f"T={T:.3f}: tau_int={diag.tau_int:.1f}, "
          f"interval={diag.measurement_interval}")

CLI

# Basic run
mcising run -L 32 --seed 42 -o results.h5

# Triangular lattice with parallel tempering
mcising run -L 32 --lattice triangular --mode parallel_tempering

# Independent parallel execution (uses all CPU cores)
mcising run -L 32 --mode independent -T 3.0 -T 2.269 -T 1.5

# Adaptive mode
mcising run -L 64 --adaptive --min-samples 200 --seed 42

# With checkpointing (crash-safe)
mcising run -L 32 --checkpoint sim.h5

# Resume interrupted run
mcising run -L 32 --checkpoint sim.h5 --resume

# Benchmark performance across all lattices and algorithms
mcising benchmark

# Show info
mcising info

Saving Results

from mcising import save_hdf5, load_hdf5, save_json_summary

# HDF5 (full data)
save_hdf5(results, "results.h5")
loaded = load_hdf5("results.h5")

# JSON summary (statistics only)
save_json_summary(results, "summary.json")

Examples

Three committed scripts reproduce known physics end to end and write the figures used in the documentation; each runs in well under a minute on a laptop and is executed by the test suite on every pull request:

python examples/onsager_reproduction.py    # <E>/N and <|m|> vs Onsager's and Yang's exact curves
python examples/tc_binder_crossing.py      # Tc from Binder-cumulant crossings of three lattice sizes
python examples/stripe_phase_diagram.py    # J1-J2 phase diagram: ferromagnet vs stripe order

Every script takes --out DIR and --quick; the committed output is in docs/assets/figures/.

Architecture

mcising/
├── rust/src/              # Rust core (compiled to mcising._core)
│   ├── algorithm/         # MC algorithms (Metropolis, Wolff, Swendsen-Wang)
│   ├── autocorrelation.rs # MSER + Sokal windowing
│   ├── lattice/           # Lattice geometries (square, triangular, honeycomb, cubic, chain)
│   ├── observables.rs     # Energy, magnetization, correlation
│   ├── parallel.rs        # Rayon-parallelized execution (independent + parallel tempering)
│   └── simulation.rs      # PyO3 boundary (IsingSimulation)
├── python/mcising/        # Python package
│   ├── simulation.py      # High-level Simulation class
│   ├── config.py          # Frozen dataclass configs
│   ├── io.py              # HDF5/JSON I/O
│   ├── plotting.py        # Matplotlib visualization
│   └── cli.py             # Typer CLI
├── tests/                 # 401 tests (141 Rust + 260 Python)
└── benchmarks/            # Reproducible performance comparisons

How to cite

If mcising contributes to published work, please cite it. The repository's CITATION.cff carries the current version and is what GitHub's "Cite this repository" button renders. Every release is archived on Zenodo: the concept DOI 10.5281/zenodo.22650285 always resolves to the latest version, and each version has its own DOI (1.0.0: 10.5281/zenodo.22650286). Cite the version you used.

A paper describing mcising was submitted to the Journal of Open Source Software in September 2026; its source and bibliography live under paper/.

@software{mcising,
  author  = {{\c{C}}ivitcio{\u{g}}lu, Burak},
  title   = {mcising: high-performance {Ising} model {Monte Carlo} simulation with a {Rust} core},
  version = {1.0.0},
  doi     = {10.5281/zenodo.22650286},
  url     = {https://github.com/bcivitcioglu/mcising},
  license = {MIT},
  note    = {Replace version and doi with those of the release you used},
}

If the J1-J2 functionality supported your research, consider also citing the study it was developed for: Çivitcioğlu, Römer & Honecker, Phase determination with and without deep learning, Phys. Rev. E 111, 024131 (2025).

License

This project is licensed under the MIT License.

Metadata

Release files for mcising 1.1.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 mcising 1.1.0
File Size Uploaded Provenance Actions
mcising-1.1.0.tar.gz 1.2 MB With provenance Details for mcising-1.1.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for mcising 1.1.0
File Actions
mcising-1.1.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for mcising-1.1.0-cp313-cp313-win_amd64.whl
mcising-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details for mcising-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
mcising-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details for mcising-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
mcising-1.1.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for mcising-1.1.0-cp313-cp313-macosx_11_0_arm64.whl
mcising-1.1.0-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details for mcising-1.1.0-cp313-cp313-macosx_10_12_x86_64.whl
mcising-1.1.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for mcising-1.1.0-cp312-cp312-win_amd64.whl
mcising-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details for mcising-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
mcising-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details for mcising-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
mcising-1.1.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for mcising-1.1.0-cp312-cp312-macosx_11_0_arm64.whl
mcising-1.1.0-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details for mcising-1.1.0-cp312-cp312-macosx_10_12_x86_64.whl
mcising-1.1.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for mcising-1.1.0-cp311-cp311-win_amd64.whl
mcising-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details for mcising-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
mcising-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details for mcising-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
mcising-1.1.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for mcising-1.1.0-cp311-cp311-macosx_11_0_arm64.whl
mcising-1.1.0-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details for mcising-1.1.0-cp311-cp311-macosx_10_12_x86_64.whl
mcising-1.1.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for mcising-1.1.0-cp310-cp310-win_amd64.whl
mcising-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details for mcising-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
mcising-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details for mcising-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
mcising-1.1.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for mcising-1.1.0-cp310-cp310-macosx_11_0_arm64.whl
mcising-1.1.0-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details for mcising-1.1.0-cp310-cp310-macosx_10_12_x86_64.whl

Total release size: 11.7 MB

Release files / mcising-1.1.0.tar.gz

Download URL mcising-1.1.0.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
a04442e447044d20aac2a89810e9601137d1ba3cbe92833e73d415a2331b5f63
BLAKE2b-256 checksum
How to use checksums
89694b1add88f89041681d465404614a64a1ce251c054cd35d489ede01d6d872
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / mcising-1.1.0-cp313-cp313-win_amd64.whl

Download URL mcising-1.1.0-cp313-cp313-win_amd64.whl
Size 453.0 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
73a545fceb7ee187d8c72e94198186b8d131e879b0a9818725461bb2fbaea88c
BLAKE2b-256 checksum
How to use checksums
bc6829e5ba46f92f4a6a135887337f88005523e41c3577396be76241f6dab317
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / mcising-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mcising-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 576.1 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
450907d59a5137b788f54bfecdc22210ad33f83ec695b34149e5043a441a0b60
BLAKE2b-256 checksum
How to use checksums
2986f3ecd4dcd2c0a2f3be52cc381e78fbf834c4c61af21db7a4141c35b37cdf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / mcising-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL mcising-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 541.7 kB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
9d5715187002d4b2870d643f7658ad4090832451cf6c031c6320c71f38b027e5
BLAKE2b-256 checksum
How to use checksums
950f3566fc5eb6b6853e31d24eb9787fefff39d7dc09dcbc22ea553931ba908b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / mcising-1.1.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL mcising-1.1.0-cp313-cp313-macosx_11_0_arm64.whl
Size 514.4 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d6eb8e311b5031c074adf2c78644638e4eaa3b50ee1ef6a868be995116ca6422
BLAKE2b-256 checksum
How to use checksums
cf928d05e668a76585d4d1af8e76c0a61c5dd471704d89df53ec76618c92fc9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / mcising-1.1.0-cp313-cp313-macosx_10_12_x86_64.whl

Download URL mcising-1.1.0-cp313-cp313-macosx_10_12_x86_64.whl
Size 538.0 kB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
f3acc735488d9cdefd12ddd3cd1bd34dcd7a8287780c80a1990df3f946262020
BLAKE2b-256 checksum
How to use checksums
c2992040a85e3bba870c9258904b6e0900eb20e6345a38d10512198c1e2172dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / mcising-1.1.0-cp312-cp312-win_amd64.whl

Download URL mcising-1.1.0-cp312-cp312-win_amd64.whl
Size 452.9 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
da8bcc4b0de7f8984093447b80784050e30f3ed674d626fe4ac18f3ba863b71b
BLAKE2b-256 checksum
How to use checksums
fe69d5f3ce89bdd61a00af02bd27ef29ec07da230ec1e7c21e7211ce307abf26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / mcising-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mcising-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 576.6 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
8f04e7e29fa2ff1a580a02475412e135cee31def2c32fbdae942cc48603f6397
BLAKE2b-256 checksum
How to use checksums
6f69b52fda33552e9db98898ddaf8b9e486575a6f5f64f327534c7df6dcd75ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / mcising-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL mcising-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 542.1 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
1f015581447b759682932ab5f230293c2ad32b9c3d2622c97d5ac7d8df6added
BLAKE2b-256 checksum
How to use checksums
c37ffc24c34170dd3026c38e6a534e811e01464671ee2b1160d72385532fc4ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / mcising-1.1.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL mcising-1.1.0-cp312-cp312-macosx_11_0_arm64.whl
Size 515.0 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
21cbe40a8991ec788f643cc1817d3829130d7837e90e3f5099843edec4099aee
BLAKE2b-256 checksum
How to use checksums
937291cc67d9e553f9537d99c1a0efb287fe78b8bbe851f34715b93629fde39b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / mcising-1.1.0-cp312-cp312-macosx_10_12_x86_64.whl

Download URL mcising-1.1.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 538.3 kB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
25b6d1d7fc7275b0e71209426a407ea623eafa5373c10b7ee3cf906909a709a1
BLAKE2b-256 checksum
How to use checksums
97c6d21bd5bf3e477077325eb583ca0fea81f24a1b995d79b1ae77fd56a73b35
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / mcising-1.1.0-cp311-cp311-win_amd64.whl

Download URL mcising-1.1.0-cp311-cp311-win_amd64.whl
Size 451.7 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
49df4ad646ae231a300f781036ca9e9457d3826bc2bfe23199523329e2d839a8
BLAKE2b-256 checksum
How to use checksums
a3e3b28bf2258337202c58e9e0092861af076023e3e1714dda22a9e15f4108af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / mcising-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mcising-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 577.6 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
780081a54cd3d5c7675e0e1ed5f5e6894f1fc69e27f98ed274f908aced8707bc
BLAKE2b-256 checksum
How to use checksums
b5314e16be093e65d0a21ffe71664ad2ab64fe3720756c2a2f445239be4d8226
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / mcising-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL mcising-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 544.2 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
38d1dc3578931580aa6a2020eb28aa38958db042f79415716f6f24aff2b46601
BLAKE2b-256 checksum
How to use checksums
030834c815ab09489b74f4928e0427988d40dd8aa027f5d474554ee3b1fdfa8e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / mcising-1.1.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL mcising-1.1.0-cp311-cp311-macosx_11_0_arm64.whl
Size 516.4 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ed08da249b1eb786e28d78318c3358caa7909d466a0286a2f96e1ebcb500b4ee
BLAKE2b-256 checksum
How to use checksums
85da87367629a8928f2060bc72b8c493041a799c1340cca39c57dc7922901d07
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / mcising-1.1.0-cp311-cp311-macosx_10_12_x86_64.whl

Download URL mcising-1.1.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 539.1 kB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
e1cd3ea3191b0394b5d1d6f863e713a9126922c3a80bf540a3ee3cb74fbda8f2
BLAKE2b-256 checksum
How to use checksums
db650f3e7fbad4475c23cced5c35cf3b80837c9dd4c6a247831fb498aa90afa1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / mcising-1.1.0-cp310-cp310-win_amd64.whl

Download URL mcising-1.1.0-cp310-cp310-win_amd64.whl
Size 451.8 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
b2dbec62d547df8eb24870c0c632399644aa433f18035b09daab8a29e9b88d6d
BLAKE2b-256 checksum
How to use checksums
54affbad452e53d9392f34f16edb046a06b9128a37380eaa3e68345b07d7f3c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / mcising-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mcising-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 577.6 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
648d870fad5b08dfb53596071a55f91ad22a56574b1811f0b5d452d91b0acb4d
BLAKE2b-256 checksum
How to use checksums
d8883f0994bf8f5c3cd9c16bca64106c6eb79a2289a6f5d5e94deef07a8a2ae5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / mcising-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL mcising-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 543.9 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
8a6197a9a471d2beba9518abf9547d090453cefb005db82ffeafb394f62c946b
BLAKE2b-256 checksum
How to use checksums
4221b9b45d8a148b26bd5929fbb8cde257dd00737a08ad5ad34c1490fbd645a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / mcising-1.1.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL mcising-1.1.0-cp310-cp310-macosx_11_0_arm64.whl
Size 516.2 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3b16e66e2872e57858fdae9948459b0cc3ab27e3f17d2ffce224045b9fbbb7b3
BLAKE2b-256 checksum
How to use checksums
614a89f77d814ea948c0fd8f542a77160138eed1f371a25ae0f784f652272089
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Release files / mcising-1.1.0-cp310-cp310-macosx_10_12_x86_64.whl

Download URL mcising-1.1.0-cp310-cp310-macosx_10_12_x86_64.whl
Size 539.1 kB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
79859789dc99ec6ba3a31612105a6936b7b57c5591b69c9ac8b9ce6d7bdcb1d2
BLAKE2b-256 checksum
How to use checksums
ed305b4a462d652d787f8e504b0d8871a8b05d20a7286c8e78cbe6b52a7a398d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

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

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

Transparency log

Security for mcising 1.1.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 21 files in this release have been uploaded with provenance metadata.

Select from 21 files

Attestation for mcising-1.1.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 Sep 11, 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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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