Skip to main content

coxdev

A high-performance C++ for computing Cox proportional hazards model deviance, gradients, and Hessian information matrices. Built with Eigen for ease of use in R and Python, this library provides efficient survival analysis computations with support for different tie-breaking methods.

Features

  • High Performance: C++ implementation with Eigen linear algebra library
  • Comprehensive Support: Handles both Efron and Breslow tie-breaking methods
  • Left-Truncated Data: Support for left-truncated survival data
  • Efficient Computations: Optimized algorithms for deviance, gradient, and Hessian calculations
  • Memory Efficient: Uses linear operators for large-scale computations
  • Sampling the Score: Draws of the score from the fitted model (multinomial, Bernoulli or Fisher noncentral hypergeometric draws of the failures at each event time) or from its score residuals (a wild bootstrap), reproducible from a seed on every platform
  • Cross-Platform: Works on Linux, macOS, and Windows

Installation

Prerequisites

This package requires the Eigen C++ library headers. The Eigen library is included as a git submodule.

  1. Initialize Eigen submodule: The Eigen library is included as a git submodule. Make sure it's initialized:
    git submodule update --init --recursive
    

Standard Installation

pip install .

With Custom Eigen Path

If you have Eigen installed elsewhere, you can specify its location:

env EIGEN_LIBRARY_PATH=/path/to/eigen pip install .

Development Installation

pip install .[dev]
pip install -e . --no-build-isolation

Quick Start

import numpy as np
from coxdev import CoxDeviance

# Generate sample survival data
n_samples = 1000
event_times = np.random.exponential(1.0, n_samples)
status = np.random.binomial(1, 0.7, n_samples)  # 70% events, 30% censored
linear_predictor = np.random.normal(0, 1, n_samples)

# Create CoxDeviance object
coxdev = CoxDeviance(event=event_times, status=status, tie_breaking='efron')

# Compute deviance and related quantities
result = coxdev(linear_predictor)

print(f"Deviance: {result.deviance:.4f}")
print(f"Saturated log-likelihood: {result.loglik_sat:.4f}")
print(f"Gradient norm: {np.linalg.norm(result.gradient):.4f}")

Advanced Usage

Left-Truncated Data

# With start times (left-truncated data)
start_times = np.random.exponential(0.5, n_samples)
coxdev = CoxDeviance(
    event=event_times, 
    status=status, 
    start=start_times,
    tie_breaking='efron'
)

Computing Information Matrix

# Get information matrix as a linear operator
info_matrix = coxdev.information(linear_predictor)

# Matrix-vector multiplication
v = np.random.normal(0, 1, n_samples)
result_vector = info_matrix @ v

# For small problems, you can compute the full matrix
X = np.random.normal(0, 1, (n_samples, 10))
beta = np.random.normal(0, 1, 10)
eta = X @ beta

# Information matrix for coefficients: X^T @ I @ X
I = info_matrix @ X
information_matrix = X.T @ I

Sampling the Score

sample_score draws the score at a linear predictor. Each draw has one entry per observation, on the scale of the score -gradient / 2, so for a design X the vector X.T @ draw is a draw of the score of the coefficients. Ties, start times and strata are handled as for the deviance.

X = np.random.normal(0, 1, (n_samples, 3))
eta = X @ np.array([0.5, -0.5, 0.25])
coxdev = CoxDeviance(event=event_times, status=status, tie_breaking='efron')

# 2000 draws of the score of the coefficients
draws = X.T @ coxdev.sample_score(eta, method='multinomial', n_draws=2000, seed=1)

# their covariance is about the (Breslow) information: the ratios are near 1
I = coxdev.information(eta)
information_matrix = X.T @ (I @ X)
print(np.diag(np.cov(draws)) / np.diag(information_matrix))

The methods are:

method Draw Score of the draw Covariance
'multinomial' the d failures at each event time drawn with replacement from the risk set, with probabilities proportional to sample_weight * exp(eta) under Breslow's (1974) likelihood, of which this is the sampling model the Breslow information
'bernoulli' each subject at risk fails independently with probability min(1, d * p), a Cox-model analogue of the weird bootstrap (Andersen et al., 1993; Burr, 1994) Breslow's, with the number of failures drawn less than the information when ties are heavy
'fisher' the set of d failures at each event time drawn from Fisher's noncentral hypergeometric distribution (Harkness, 1965; Fog, 2008): independent Bernoullis given d failures, P(A) proportional to the product of exp(eta_j) over the set A under the exact discrete partial likelihood (Cox, 1972; Kalbfleisch and Prentice, 2002), of which this is the sampling model, centered at its exact mean the information of the exact likelihood
'wild' the score residuals of the observations times independent standard normals (Lin, Wei and Ying, 1993; Kline and Santos, 2012) of the likelihood set by tie_breaking (Breslow, 1974; Efron, 1977) the sandwich, the sum of the outer products of the score residuals (Lin and Wei, 1989)

Each model-based draw is the score of failures drawn from the model: at each event time, the sum over the failures of x_j minus their expected sum. For 'multinomial' and 'fisher' the draw is from the model whose likelihood gives the score, so every draw has mean exactly zero. For 'bernoulli' this holds only while d * p < 1 for every subject at risk: the cap min(1, d * p) biases it when ties are heavy. The methods differ only at tied event times: with one failure at each event time all three draw the same failure distribution. The model-based methods (all but 'wild') need equal positive weights and do not depend on tie_breaking. 'wild' does not rely on the model: its covariance is the sandwich, which is right even when the proportional hazards model is not.

'fisher' samples and centers with the elementary symmetric polynomials of the risk weights, computed on the log scale by the recursion of Gail, Lubin and Rubinstein (1981), the one used for the exact partial likelihood by R's survival package and SAS PROC PHREG. Each event time with d tied failures among m at risk costs O(m d) once, and O(m) per draw.

wild_score gives the wild draw for given multipliers: with multipliers G, X.T @ coxdev.wild_score(eta, G) is the sum over observations of G[i] times the score residual of observation i. With G all one it is the score.

References

  • Andersen, P. K., Borgan, Ø., Gill, R. D. and Keiding, N. (1993). Statistical Models Based on Counting Processes. Springer, New York.
  • Breslow, N. E. (1974). Covariance analysis of censored survival data. Biometrics, 30(1), 89–99.
  • Burr, D. (1994). A comparison of certain bootstrap confidence intervals in the Cox model. Journal of the American Statistical Association, 89(428), 1290–1302.
  • Cox, D. R. (1972). Regression models and life-tables (with discussion). Journal of the Royal Statistical Society, Series B, 34(2), 187–220.
  • Efron, B. (1977). The efficiency of Cox's likelihood function for censored data. Journal of the American Statistical Association, 72(359), 557–565.
  • Fog, A. (2008). Sampling methods for Wallenius' and Fisher's noncentral hypergeometric distributions. Communications in Statistics: Simulation and Computation, 37(2), 241–257.
  • Gail, M. H., Lubin, J. H. and Rubinstein, L. V. (1981). Likelihood calculations for matched case-control studies and survival studies with tied death times. Biometrika, 68(3), 703–707.
  • Harkness, W. L. (1965). Properties of the extended hypergeometric distribution. The Annals of Mathematical Statistics, 36(3), 938–945.
  • Kalbfleisch, J. D. and Prentice, R. L. (2002). The Statistical Analysis of Failure Time Data, 2nd edition. Wiley, Hoboken, NJ.
  • Kline, P. and Santos, A. (2012). A score based approach to wild bootstrap inference. Journal of Econometric Methods, 1(1), 23–41.
  • Lin, D. Y. and Wei, L. J. (1989). The robust inference for the Cox proportional hazards model. Journal of the American Statistical Association, 84(408), 1074–1078.
  • Lin, D. Y., Wei, L. J. and Ying, Z. (1993). Checking the Cox model with cumulative sums of martingale-based residuals. Biometrika, 80(3), 557–572.

The random numbers come from the C++ code, from the bits of std::mt19937_64, so the same seed gives the same draws on every platform. With seed=None, a fresh seed is drawn.

Different Tie-Breaking Methods

# Efron's method (default)
coxdev_efron = CoxDeviance(event=event_times, status=status, tie_breaking='efron')

# Breslow's method
coxdev_breslow = CoxDeviance(event=event_times, status=status, tie_breaking='breslow')

API Reference

CoxDeviance

The main class for computing Cox model quantities.

Parameters

  • event: Event times (failure times) for each observation
  • status: Event indicators (1 for event occurred, 0 for censored)
  • start: Start times for left-truncated data (optional)
  • tie_breaking: Method for handling tied event times ('efron' or 'breslow')

Methods

  • __call__(linear_predictor, sample_weight=None): Compute deviance and related quantities
  • information(linear_predictor, sample_weight=None): Get information matrix as linear operator
  • sample_score(linear_predictor, sample_weight=None, method='multinomial', n_draws=None, seed=None): Draws of the score, one entry per observation: a vector if n_draws is None, else an (n, n_draws) array. See Sampling the Score
  • wild_score(linear_predictor, multipliers, sample_weight=None): The wild draw of the score for given multipliers

CoxDevianceResult

Result object containing computation results.

Attributes

  • linear_predictor: The linear predictor values used
  • sample_weight: Sample weights used
  • loglik_sat: Saturated log-likelihood value
  • deviance: Computed deviance value
  • gradient: Gradient of deviance with respect to linear predictor
  • diag_hessian: Diagonal of Hessian matrix

Performance

The library is optimized for performance:

  • C++ Implementation: Core computations in C++ with Eigen
  • Memory Efficient: Reuses buffers and uses linear operators
  • Vectorized Operations: Leverages Eigen's optimized linear algebra
  • Minimal Python Overhead: Heavy computations done in C++

Building from Source

Prerequisites

  • C++ compiler with C++17 support
  • Eigen library headers
  • For Python library: Python >= 3.9 + pybind11

Testing

Most of the tests compare coxdev with R's survival and glmnet packages, through rpy2. If rpy2, R or those packages are missing, those tests are skipped and the run still passes, so check the summary for skipped tests.

Running the full test suite in a fresh environment

  1. Install R (4.x), and in it survival and glmnet 5.0 or later (the tests use glmnet::coxnet.deviance and glmnet:::coxgrad with cox.ties):

    Rscript -e 'install.packages(c("survival", "glmnet"), repos = "https://cloud.r-project.org")'
    Rscript -e 'packageVersion("glmnet")'   # 5.0 or later
    
  2. Clone the repository with its Eigen submodule, and make a new virtual environment:

    git clone --recurse-submodules https://github.com/jonathan-taylor/coxdev.git
    cd coxdev
    python -m venv .venv
    source .venv/bin/activate          # on Windows: .venv\Scripts\activate
    python -m pip install --upgrade pip
    

    (In an existing clone without the submodule, run git submodule update --init --recursive.)

  3. Build and install coxdev (this needs a C++17 compiler), with the test dependencies and rpy2:

    pip install ".[test]" rpy2
    
  4. Check that rpy2 finds R and the two packages:

    python -c "from rpy2.robjects.packages import importr; importr('survival'); importr('glmnet'); print('R is ready')"
    
    • If rpy2 first prints Error importing in API mode ... Trying to import in ABI mode, its compiled interface was built for another version of R. ABI mode works; export RPY2_CFFI_MODE=ABI skips the attempt and the message.
    • If rpy2 cannot find R, set R_HOME: export R_HOME=$(R RHOME).
  5. From the top of the repository, run the tests, reporting any skipped:

    python -m pytest tests -rs
    

    It takes a couple of minutes, and should end with every test passed and none skipped.

For a quick check, --test-size N runs a random sample of N of the (many) parametrized cases in each of the large comparison files:

python -m pytest tests -rs --test-size 50

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for new functionality
  5. Ensure all tests pass
  6. Submit a pull request

License

This project is licensed under the BSD-3-Clause License - see the LICENSE file for details.

Citation

If you use this library in your research, please cite:

@software{coxdev2024,
  title={coxdev: High-performance Cox proportional hazards deviance computation},
  author={Taylor, Jonathan and Hastie, Trevor and Narasimhan, Balasubramanian},
  year={2024},
  url={https://github.com/jonathan-taylor/coxdev}
}

Acknowledgments

  • Built with Eigen for efficient linear algebra
  • Uses pybind11 for Python bindings
  • Inspired by the R glmnet package for survival analysis

Metadata

Release files for coxdev 0.2.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 coxdev 0.2.0
File Size Uploaded
coxdev-0.2.0.tar.gz 3.6 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for coxdev 0.2.0
File
coxdev-0.2.0-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
coxdev-0.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details
coxdev-0.2.0-cp314-cp314t-manylinux_2_27_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.27+ x86-64 Details
coxdev-0.2.0-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
coxdev-0.2.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
coxdev-0.2.0-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details
coxdev-0.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
coxdev-0.2.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
coxdev-0.2.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
coxdev-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
coxdev-0.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
coxdev-0.2.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
coxdev-0.2.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
coxdev-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
coxdev-0.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
coxdev-0.2.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
coxdev-0.2.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
coxdev-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
coxdev-0.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
coxdev-0.2.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
coxdev-0.2.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
coxdev-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
coxdev-0.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
coxdev-0.2.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
coxdev-0.2.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
coxdev-0.2.0-cp39-cp39-musllinux_1_2_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ x86-64 Details
coxdev-0.2.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
coxdev-0.2.0-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details

Total release size: 16.9 MB

Release files / coxdev-0.2.0.tar.gz

Download URL coxdev-0.2.0.tar.gz
Size 3.6 MB
Tags Source
SHA-256 checksum
How to use checksums
3af1e2885d7ded2d7533b7686c8cde234e30c8f9a6bf4a32efef30276ed3f4ba
BLAKE2b-256 checksum
How to use checksums
f2e3b00ffca696498ec34ae9c1316b1d5072c8eaeff02b2de2f969d4635094b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp314-cp314t-win_amd64.whl

Download URL coxdev-0.2.0-cp314-cp314t-win_amd64.whl
Size 245.7 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
31fcee668ecbc518d4fdd244fd3731351fee4d6bbd27d266be25ed6b58d8200e
BLAKE2b-256 checksum
How to use checksums
59109aea0b35974a3c2a619e446146b3757ee88103618bf2c355c62f5fb77c30
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL coxdev-0.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 1.3 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
5cf4a3148a07df41083d6c1d7091393c1b34b3d5dec36d69be9081937e0ea51e
BLAKE2b-256 checksum
How to use checksums
6288fc5d9bd52ebf9fd940be79b4f8347a3ad9efd1fe4f1b53f25d0eab914bc6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL coxdev-0.2.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 218.7 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2f858a83b8afe1ced524894ffb9693b519f600bd724dcfa5372c5f7c6c742544
BLAKE2b-256 checksum
How to use checksums
56605fe758f9c2a032e22df8dc6f32ce23ffba34451190082cce16d0626226f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp314-cp314t-macosx_11_0_arm64.whl

Download URL coxdev-0.2.0-cp314-cp314t-macosx_11_0_arm64.whl
Size 198.8 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
27cf5eb415bf8165a7812bc0a75c7628a2161acbc37ef3dfa0fefdb5b8dfcc88
BLAKE2b-256 checksum
How to use checksums
8c19f581fc60675d47123684dd52a0f2cef8242b35245dbd196b637f45d9840e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp314-cp314-win_amd64.whl

Download URL coxdev-0.2.0-cp314-cp314-win_amd64.whl
Size 245.0 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
7827d708d18aa82ec2c5c7fb3f6aa7a23831b14cdca103a09ac6946bec04ca30
BLAKE2b-256 checksum
How to use checksums
51a9b1f92d13efb741ca16f25800d90ffeaeba1ba79996649921f37b7277f2f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL coxdev-0.2.0-cp314-cp314-musllinux_1_2_x86_64.whl
Size 1.3 MB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
2a167a17b279b552fad095680cd0a239343fa13daef8c23e6c9c11d4eab4531d
BLAKE2b-256 checksum
How to use checksums
e9b1db93e154e3ff2aff2ce0c3f1ae01975d2d64cf8ac3da1b3a2da633065b83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL coxdev-0.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 216.8 kB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4bd5523a13e3fc32dbafc015f6b5021de68d6dfd70dc637dd482d1b85bac9c41
BLAKE2b-256 checksum
How to use checksums
0c0dd7f0f7c010e887e2b2f7fb904a25f472b253b37554f7429294cafa26a5ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL coxdev-0.2.0-cp314-cp314-macosx_11_0_arm64.whl
Size 190.0 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1188987e4659181b44d3437be096484d8511e13aa95f98fb006d25816f4685d7
BLAKE2b-256 checksum
How to use checksums
48292a9694b62f1a5b756eb2f273ecc561dd623571e6c6a1632d7ed72aa91cc4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp313-cp313-win_amd64.whl

Download URL coxdev-0.2.0-cp313-cp313-win_amd64.whl
Size 240.0 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
805c26d56f5f864711af08f15663fc394bc36a6c1f2357d63b0790d7f8731dbe
BLAKE2b-256 checksum
How to use checksums
c149cc555ca30e09f11cbaa86cfdd18116d3dc67e973b1b36d101088a1e8d14c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL coxdev-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
Size 1.3 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
13fe0fa3a4299c2e881d063da0ae192f422f16906ade17dafaeb61906583153b
BLAKE2b-256 checksum
How to use checksums
88bc12d30c33f6fa44f78595d0f36ebe51ec31513054bbadd1dc8ea1f4eb8e45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL coxdev-0.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 216.6 kB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
40999a69eda8a5cfffdefd2c6acb5fe29b6d39d5fb2a92b915d961c58858d2a2
BLAKE2b-256 checksum
How to use checksums
8c898e3b435fde5273da4ab02e08f2a86e6fc71d9e64079a2e1717349d92fe15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL coxdev-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
Size 188.8 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
cbcc5ad07641f0010a0a2f143bdbfa1ab0b21a9166ed229ca4fa259e1a88eb0f
BLAKE2b-256 checksum
How to use checksums
695e8b08d28e8b23f2b76c3bcf0820bfeaec10ec9db95804ab8df90f8d2baaa9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp312-cp312-win_amd64.whl

Download URL coxdev-0.2.0-cp312-cp312-win_amd64.whl
Size 240.0 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
edf0297c9421838f6a48f2b1a04c8f838000bc96f8cd8782413a927008e57ff7
BLAKE2b-256 checksum
How to use checksums
78b6c3c8551b9d0df4b7ce18c75bf069fb2dc68efcc3ce1311b872ddd1abb131
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL coxdev-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
Size 1.3 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
510ead024cf4fed857b7ad8eb6f758ee88367238814c375f916eede4a36b60b0
BLAKE2b-256 checksum
How to use checksums
b9e08b2ae1b287239c0b82987fb4141e3d85a2f2d0b86c11ad4da72ad8ca5d75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL coxdev-0.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 216.8 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
df238e132309cb461868baa6ff6797b4b0b11427a355b01eb07ee4affb68f23f
BLAKE2b-256 checksum
How to use checksums
9398ee75448ba54fbea0fb3a9cb6d96d9b1be5ae2679ae3cf2622be0ece386f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL coxdev-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
Size 188.7 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
334777944f60fa5ca129796b3cb7929ea02fffd82a6114b425850a613da70b3d
BLAKE2b-256 checksum
How to use checksums
bffc81c5ccad5de55de52a48297bae73b09ed6e811d1ee0b3e753cc1805455e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp311-cp311-win_amd64.whl

Download URL coxdev-0.2.0-cp311-cp311-win_amd64.whl
Size 236.9 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
af4ce0bd78e80303b03e9f6cb25587c129052e3327ce98245e7ad0033cbe8209
BLAKE2b-256 checksum
How to use checksums
772e6ed348074c759139b1489930c437f5ffa98e6aff35b9c0df39da2475ce58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL coxdev-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
Size 1.3 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
4c6ac2409c5ce66701cc0597e9ba0afeae35927372ab37469bdb17f874df08d1
BLAKE2b-256 checksum
How to use checksums
a339360eb5376a4ed6d23291be72cc4209db15e62dec4f337bd1d859db36420e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL coxdev-0.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 214.9 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b63b2b59aa265bee9b5d22f052384abc84979620d4e1015aae3b7620b2ea5063
BLAKE2b-256 checksum
How to use checksums
173b4b5a1bcc3a9e2d8172dea5d585e757282c8e5c6d8d0fc8553ce1a0c34d70
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL coxdev-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
Size 187.3 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1d15a7154ad6578bb828290cb3854ff81a37c88ad035c2c5d00af9abfbbfa61c
BLAKE2b-256 checksum
How to use checksums
8ba60a548e9280b6864e0e2e1b9707fd18f29504e13627ca60aa71d9927a1497
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp310-cp310-win_amd64.whl

Download URL coxdev-0.2.0-cp310-cp310-win_amd64.whl
Size 236.1 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
b7c65070571dd312a75597d9a928a05bfecab0f231022257b4aa591a34b5a171
BLAKE2b-256 checksum
How to use checksums
5b42b33c173377160cfe680b63ac78de9b9b80858d72c0bb316611c319356fa9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL coxdev-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl
Size 1.3 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
9143987acf9b42262ecf658cd608543bfd8d1e2cd39f36edada914d8113e2d35
BLAKE2b-256 checksum
How to use checksums
d6e0edc135046f360a651951b2b4298e3d5d6eb51c63685f27d3e6dd48bed493
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL coxdev-0.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 214.0 kB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4f68d52a8a1f8e335fa675c29af59e24d87e33e586177059d18795a3b4f061fc
BLAKE2b-256 checksum
How to use checksums
7c1fdc70c25cc622b56a4a1415edb7d733ae5aef2f10c96a4cf1c6a613593eed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL coxdev-0.2.0-cp310-cp310-macosx_11_0_arm64.whl
Size 186.1 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
da9e832050bc2457d9ccaa008230ba869085043e84eefb95f3b7df96ddf8f859
BLAKE2b-256 checksum
How to use checksums
764bfe0b62900210669e14a97810b062f1c80429b587bacdd00b59c71bbdd4d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp39-cp39-win_amd64.whl

Download URL coxdev-0.2.0-cp39-cp39-win_amd64.whl
Size 236.9 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
a4ae9185306769ebb712f3ab8bb40e242baddd9e8d144147820cb16f5b9ff0bf
BLAKE2b-256 checksum
How to use checksums
da8fba2298586fd687ecf226d383e8df60521f67d04d789207b02e740a8757b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL coxdev-0.2.0-cp39-cp39-musllinux_1_2_x86_64.whl
Size 1.3 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
0311229045add4cdd3e600fba4a71d72d3c824f79dd2f7279e8b30b75c0adf9a
BLAKE2b-256 checksum
How to use checksums
6838ea2e7d29b09e42d6194862a7d691b0c4b241ede3a2d820e59ccb3aceafce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL coxdev-0.2.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 214.3 kB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2079d7326a44dd6d6b4ca351021fe894f1f6447bfd642d335dd2a31ffc44a214
BLAKE2b-256 checksum
How to use checksums
91c1604b20d14fdb950ae695829c98f161c917e2e8a0705f8f37472abccef336
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / coxdev-0.2.0-cp39-cp39-macosx_11_0_arm64.whl

Download URL coxdev-0.2.0-cp39-cp39-macosx_11_0_arm64.whl
Size 186.2 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
fb97be7af8b0e9a2bd1e2d91babaa12bb6c2c1486c335ec8a914dcc866bfc67d
BLAKE2b-256 checksum
How to use checksums
2bce7617b0cb2c20ad178ce2d38bfdf79deb666c9f790ec839bab89fbf01e514
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release history Release notifications | RSS feed

0.3.0

29 release files

This release

0.2.0 This release

29 release files

0.1.8

29 release files

0.1.6

29 release files

0.1.5

29 release files

0.1.4

26 release files

0.1.3

26 release files

0.1.2

2 release files

0.1.1

1 release file

0.1.0

1 release file

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