Skip to main content

jmstate logo

jmstate

Flexible multi-state joint models.
Joint modeling of longitudinal and time-to-event data with PyTorch.

Documentation · PyPI

PyPI version Supported Python versions: 3.11–3.14 Lint status Coverage Documentation status License

jmstate is a Python package for nonlinear multi-state joint modeling of longitudinal and time-to-event data. Built on PyTorch, it enables flexible specification of regression and link functions — including neural networks — while still offering built-in parametric baseline hazards and utilities for inference and prediction.

The package implements the methodology from:

A General Framework for Joint Multi-State Models Félix Laplante & Christophe Ambroise (2025) — arXiv:2510.07128


Installation

python -m pip install jmstate

Requirements: Python 3.11 or later, PyTorch, scikit-learn, NumPy, Matplotlib, rich, tqdm.

Data integrity

The committed PAQUID and PBC2 datasets are the canonical reproduction inputs. Verify both before running an analysis:

cd data
sha256sum --check SHA256SUMS

The PAQUID file is the canonical reproduction input in this repository. Its original license and reuse terms were not supplied with the dataset, so its inclusion does not grant redistribution or reuse rights.

The PBC2 file is a CSV conversion of the pbc2 dataset distributed with the joineRML R package. It is licensed separately under the GNU GPL version 3. The repository's BSD license does not apply to data/pbc2.csv.

Device, precision and compiled buckets

Trajectory bucket construction runs in a compiled C++ extension (built automatically at install with a pure-Python fallback otherwise).

The model parameters own the canonical dtype and device. Data tensors are aligned to them automatically, so GPU/XPU and low precision just work:

model.to("xpu", torch.bfloat16)  # or .cuda(), .float(), .double(), ...
model.fit(data)  # data follows the model, no manual casts needed

bfloat16/float16 parameters are supported with mixed precision: times, quadrature and critical kernels transparently run in float32 or higher. Call .to(...) before creating the optimizer, as usual in PyTorch.

Citation

If you use jmstate, please cite A General Framework for Joint Multi-State Models by F'elix Laplante and Christophe Ambroise (2025).


Documentation

Full API reference and tutorials: jmstate documentation


The Model

jmstate fits a joint model that links a longitudinal biomarker process to multi-state event history through shared individual random effects.

Longitudinal sub-model

Individual observations follow

$$y_{ij} = h(t_{ij}, \psi_i) + \epsilon_{ij}, \qquad \epsilon_{ij} \sim \mathcal{N}(0, R)$$

where $h$ is a user-defined regression function (e.g. bi-exponential, logistic) and individual parameters are defined via

$$\psi_i = f(\gamma, X_i, b_i), \qquad b_i \sim \mathcal{N}(0, Q)$$

with $\gamma$ fixed population-level effects, $X_i$ covariates, and $b_i$ individual random effects.

Multi-state sub-model

Let $G = (V, E)$ be a directed graph, where $V$ denotes the set of states and $E \subseteq V \times V$ the set of admissible transitions. The graph encodes all possible paths of the multi-state process, allowing for competing, recurrent, or absorbing transitions. The hazard for a transition $k \to k'$ at time $t$ given entry time $t_0$ satisfies

$$\lambda^{k \to k'}(t_0, t) = \lambda_0^{k \to k'}(t_0, t) \exp\left( \alpha^{k \to k'} g^{k \to k'}(t, \psi_i) + \beta^{k \to k'} X_i \right),$$

where $\lambda_0^{k \to k'}$ are parametric baseline hazards, $g^{k \to k'}$ are link functions acting as a bridge between the longitudinal and the semi-Markov multi-state processes, and $\alpha^{k \to k'}$, $\beta^{k \to k'}$ are transition-specific coefficients.

The model supports arbitrary state graphs (recurrent, absorbing, monotone, etc.) under a semi-Markov assumption.

Estimation

Parameters are estimated by maximising the observed-data log-likelihood using the Fisher identity

$$\nabla_\theta \log \mathcal{L}(\theta; x) = \mathbb{E}{b \sim p(\cdot \mid x, \theta)}\left[ \nabla\theta \log \mathcal{L}(\theta; x, b) \right],$$

where $\mathcal{L}(\theta; x, b)$ is the complete likelihood of the data given the parameters and random effects.

This gradient is approximated via a Metropolis-Within-Gibbs MCMC sampler over the random effects, combined with a stochastic gradient ascent step. Convergence is monitored via an $R^2$-based stationarity test.


Quick Start

Step 1 — Define the model design

import torch
from jmstate.types import ModelDesign


# Individual parameters
def indiv_effects_fn(
    fixed: torch.Tensor, x: torch.Tensor, b: torch.Tensor
) -> torch.Tensor:
    return fixed * torch.exp(b)  # (..., n, q)


# PK function: bi-exponential biomarker
def pk_fn(t: torch.Tensor, indiv_params: torch.Tensor, D: float = 1.0):
    A, k, ka = indiv_params.chunk(3, dim=-1)
    conc = A * (torch.exp(-k * t) - torch.exp(-ka * t))
    return conc.unsqueeze(-1)


# PK integral function: bi-exponential cumulative link
def pk_integral_fn(t: torch.Tensor, indiv_params: torch.Tensor):
    A, k, ka = indiv_params.chunk(3, dim=-1)
    integral = A * (1 - torch.exp(-k * t)) / k - (1 - torch.exp(-ka * t)) / ka
    return integral.unsqueeze(-1)


# Define the model design
design = ModelDesign(
    indiv_effects_fn,
    regression_fn=pk_fn,
    link_fns={
        (1, 1): pk_integral_fn,
        (1, 2): pk_integral_fn,
    },
)

Step 2 — Set initial parameters

from jmstate.functions.base_hazards import Exponential
from jmstate.types import ModelParameters, PrecisionParameters

# Define simple initial parameters
params = ModelParameters(
    torch.ones(3),
    PrecisionParameters.from_covariance(torch.eye(3), "diag"),
    PrecisionParameters.from_covariance(torch.eye(1), "spherical"),
    {(1, 1): Exponential(1.0), (1, 2): Exponential(1.0)},
    {(1, 1): torch.zeros(1), (1, 2): torch.zeros(1)},
    {(1, 1): torch.zeros(1), (1, 2): torch.zeros(1)},
)

Step 3 — Prepare data

from jmstate.types import ModelData

data = ModelData(
    x,  # (n, p) covariate matrix
    t,  # (m,) or (n, m) measurement times; NaN-pad if variable
    y,  # (n, m, d) longitudinal observations; NaN-pad if variable
    trajectories,  # list[list[tuple[float, Any]]]
    c,  # (n, 1) right-censoring times
)

Each trajectory is a chronologically ordered list of (time, state) tuples representing the individual's event history.

Step 4 — Fit the model

import matplotlib.pyplot as plt
from jmstate import MultiStateJointModel

optimizer = torch.optim.Adam(params.parameters(), lr=0.1)
model = MultiStateJointModel(design, params, optimizer)

metrics = model.fit(data)

Step 5 — Print and plot the results

from jmstate.utils import plot_mcmc_diagnostics, plot_params_history

# Compute and print summary statistics (nullity Wald statistics, p-values, AIC, BIC, etc.)
model.compute_summary().summary()

# Plot parameter history (stochastic optimization)...
plot_params_history(model)
plt.show()

# ...and MCMC sampler diagnostics
plot_mcmc_diagnostics(model)
plt.show()

Metadata

Release files for jmstate 0.18.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 jmstate 0.18.0
File Size Uploaded
jmstate-0.18.0.tar.gz 1.1 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for jmstate 0.18.0
File
jmstate-0.18.0-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
jmstate-0.18.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
jmstate-0.18.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64, Linux glibc 2.24+ ARM64 Details
jmstate-0.18.0-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
jmstate-0.18.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
jmstate-0.18.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
jmstate-0.18.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64, Linux glibc 2.24+ ARM64 Details
jmstate-0.18.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
jmstate-0.18.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
jmstate-0.18.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
jmstate-0.18.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64, Linux glibc 2.24+ ARM64 Details
jmstate-0.18.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
jmstate-0.18.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
jmstate-0.18.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
jmstate-0.18.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64, Linux glibc 2.24+ ARM64 Details
jmstate-0.18.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
jmstate-0.18.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
jmstate-0.18.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
jmstate-0.18.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64, Linux glibc 2.24+ ARM64 Details
jmstate-0.18.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
jmstate-0.18.0-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details

Total release size: 5.1 MB

Release files / jmstate-0.18.0.tar.gz

Download URL jmstate-0.18.0.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
a2759aa2bde07519b91f3b4a4fcd771282e8232c2288120584a32136d364ab6a
BLAKE2b-256 checksum
How to use checksums
8d5bf5d91dd0025760b893cd50049cba4fc64ed0ef9e12833812b830dbe471e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jmstate-0.18.0-cp314-cp314t-win_amd64.whl

Download URL jmstate-0.18.0-cp314-cp314t-win_amd64.whl
Size 335.6 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
3775b8cad849d6827f430071eafbdbd7eeb464f5d619d9b8e1c47b2a15a29499
BLAKE2b-256 checksum
How to use checksums
b749967fcf32ceeb1874c6e50483ff5e9ffdccfb54fbcb66064d02ff278361b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jmstate-0.18.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL jmstate-0.18.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 156.3 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
49c276d038e3282b25566020873feae6c67f27b17903620659444bf0f3570c9b
BLAKE2b-256 checksum
How to use checksums
1dac7df5295b8d96775552630ebb4cd8945f9a37717e6cfd0cd4feeaff0d3410
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jmstate-0.18.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

Download URL jmstate-0.18.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Size 150.8 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
aa2ed3cf1fd2b21937a7b61091290a5bcb7cdd180f1ca8730783b8dafb470da6
BLAKE2b-256 checksum
How to use checksums
14637aa00bcc7b46ee2cfb50bdb9f6f9a5adef9e8439a31e5c0d512ca198a4c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jmstate-0.18.0-cp314-cp314t-macosx_11_0_arm64.whl

Download URL jmstate-0.18.0-cp314-cp314t-macosx_11_0_arm64.whl
Size 148.6 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
23a9222addb8df1a8b5c33d5164ef8ba0a2f45ceb09f6cf2ed047849f57520e6
BLAKE2b-256 checksum
How to use checksums
d1db79906f0c0c87b2959c43f08a7cf1ae4d0df3c5872988e71503fa1fcdab97
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jmstate-0.18.0-cp314-cp314-win_amd64.whl

Download URL jmstate-0.18.0-cp314-cp314-win_amd64.whl
Size 331.1 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
fa8aeb387c30a00b7c0f7b91f5149abaf0fc868f47f65301fa1e27522234745f
BLAKE2b-256 checksum
How to use checksums
ba7aa024bc6bc883401d33d88c8c34705a76132bec6531ffcb08ec5ebee56152
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jmstate-0.18.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL jmstate-0.18.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 154.6 kB
Tags CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
bc95701a08667e974ed269695986ec97ba8cb4ecc549b26829136f07b605b293
BLAKE2b-256 checksum
How to use checksums
a68b219e29ef18758bcd5027dd706d6fd5dfcc6733e5942b973944f8cc4f8673
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jmstate-0.18.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

Download URL jmstate-0.18.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Size 148.7 kB
Tags CPython 3.14 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
413fdbab1ee19518958022796a35706615905ea56b0f60ddcd546dc21fe8131c
BLAKE2b-256 checksum
How to use checksums
5048b222310ea9435894721579681bb090378ac5d34518b53fa52b9a90c0bc41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jmstate-0.18.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL jmstate-0.18.0-cp314-cp314-macosx_11_0_arm64.whl
Size 146.3 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
da54648959664288f2ebbac639feb2dd65143e983ec448e0cac1ca4b5803555c
BLAKE2b-256 checksum
How to use checksums
537f68c520d231d18c1e33746c52ab61072b502644e6ea6e36d36e72557c3936
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jmstate-0.18.0-cp313-cp313-win_amd64.whl

Download URL jmstate-0.18.0-cp313-cp313-win_amd64.whl
Size 322.6 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
c67e576edd24bfe0dcc0484735c6e5975b4942420984db8ac203d33653df0933
BLAKE2b-256 checksum
How to use checksums
5753dd71763533c9fb547f75a07b578d3a9c884e8e9c2324f924fe5d104b19e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jmstate-0.18.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL jmstate-0.18.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 154.5 kB
Tags CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
588e3f1e20d0a57c77d1aa6899c2f5e961ce8f731463c98145a44fe61e275ebb
BLAKE2b-256 checksum
How to use checksums
a0ad8e866c3cc18da22cdd50aa25252cb78ac02940ee3db876c90214d871757e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jmstate-0.18.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

Download URL jmstate-0.18.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Size 148.7 kB
Tags CPython 3.13 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
b6a0979e853623d9a823d45f97ba16d480d7f30e7f4a165be9f4b459007bf286
BLAKE2b-256 checksum
How to use checksums
520a42895d42672036083b1ba4cf0fb17e72cbea4e6cd79ff85f2536fa74daf3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jmstate-0.18.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL jmstate-0.18.0-cp313-cp313-macosx_11_0_arm64.whl
Size 146.2 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
63dcec941cc17269bcfd0633b3ac8edc93ed1d2ca55929e78f3da6575ccce8ee
BLAKE2b-256 checksum
How to use checksums
e62d77d4090ec241aaaec7c29addfcaa94912ce7dcacbcb098fc59a6021a5271
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jmstate-0.18.0-cp312-cp312-win_amd64.whl

Download URL jmstate-0.18.0-cp312-cp312-win_amd64.whl
Size 322.6 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
c619be663680b8dae255e6bbb80ac701509d9542b9d8f775120b978071c0152d
BLAKE2b-256 checksum
How to use checksums
7c616cd84143dd8fa198c8a5e77fb15b0893d1695bc3e917600c5e5047153abb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jmstate-0.18.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL jmstate-0.18.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 153.8 kB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ab7874ae60d1f8e6e505735018a00044f38a4e5bd2fdbc2671eb230c07c60b15
BLAKE2b-256 checksum
How to use checksums
7e2fdb08475415152bb2935ef3befcb736cad1c7817fba6af927b71e5f480458
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jmstate-0.18.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

Download URL jmstate-0.18.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Size 148.2 kB
Tags CPython 3.12 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a1db90392bac396a8817c847a865e42c41f04618a866d74c1a906b6a0f5cba29
BLAKE2b-256 checksum
How to use checksums
4a0980e8e88992b534f54577c417403b8a13e08e461e73827c5ce78b0a030867
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jmstate-0.18.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL jmstate-0.18.0-cp312-cp312-macosx_11_0_arm64.whl
Size 145.7 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7c832e1c0c0a5dc7e0714aa71f9ef963d41ec247ee352fca978165622573e156
BLAKE2b-256 checksum
How to use checksums
de1d61f94269313a4d10d1d5e94439e48f7f351547f655ad9841bb49848b2402
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jmstate-0.18.0-cp311-cp311-win_amd64.whl

Download URL jmstate-0.18.0-cp311-cp311-win_amd64.whl
Size 321.1 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
77caac37c13bf0ef0215ba0921d3e3d1aa0386af04289acdc842a2dcdc32d112
BLAKE2b-256 checksum
How to use checksums
789958295650d14dd5f3623aa2b5878600de44495905b4287239b6e441f64a21
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jmstate-0.18.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL jmstate-0.18.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 154.1 kB
Tags CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2e5176c6b21a824ed7348ef7c32407d5bc9d09f747ed2f0a4377c1cd06862356
BLAKE2b-256 checksum
How to use checksums
7d39d510b57c06c646bbf06a0aea755c2617add7a69630b35c0013fed28db245
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jmstate-0.18.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

Download URL jmstate-0.18.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Size 148.5 kB
Tags CPython 3.11 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a724f8c6d2f1f608f8646bdb5e428bd3ebaa67bdfcbe18e112ae6ac8b53a30c3
BLAKE2b-256 checksum
How to use checksums
58aa6f83b7f71d6cd04e27484845bf1d943dda15fbe6f283621d70a7815c1f3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jmstate-0.18.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL jmstate-0.18.0-cp311-cp311-macosx_11_0_arm64.whl
Size 146.0 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
86ba7f59c15c6ed42cfbeb2afda06cc7d2515ae7df4ef471bc0ac91177cdc2b0
BLAKE2b-256 checksum
How to use checksums
607bf382403836b5fd45f0e0b8c3f3c299dfcf2eb4ee58833bc5dc1913e9b293
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / jmstate-0.18.0-cp311-cp311-macosx_10_9_x86_64.whl

Download URL jmstate-0.18.0-cp311-cp311-macosx_10_9_x86_64.whl
Size 151.8 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
63bb7f50aca0c70aa976fc3803ee913773233545bb0b31070fb2c266107afb87
BLAKE2b-256 checksum
How to use checksums
3208354348f25180e2140089b28d043b8178f2d38ecc955464f4fc31c99db043
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.18.0 This release

22 release files

0.17.4

2 release files

0.17.2

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.6.2

2 release files

0.6.0

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 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