Skip to main content

H2MM_C

Build and Test Documentation Status

Project Desciption

H2MM_C is a python extension module that implements the H2MM algorithm originally developed by Pirchi, Tsukanov et. al. J. Phys. Chem B. 2016, 120, 13065-12075 in a highly efficent and multithreaded manner, along with functions for posterior analysis with the Viterbi algorithm.

H2MM_C was designed from the ground up to handle multiparameter models, described in Harris, P.D., Narducci, A., Gebhardt, C. et al. Multi-parameter photon-by-photon hidden Markov modeling. Nat Commun 13, 1000 (2022)., which also introduced this package.

The API is intended to be user friendly, while still allowing for great flexibility. Suggestions are welcome for ways to improve the code and interface.

Full Documentation

Full dodumentation can be found at h2mmpythonlib.readthedocs.io

See Also

This package is offers the basic function to perform H2MM, which means that it does not restrict the use of H2MM to any particular modality. However this means that much of the analysis specific to smFRET applications is left up to the user.

For those

Core Features

  • H2MM model optimization: finding the ideal model given a set of data.
    • limit functions to bound the values that a model can take
  • Viterbi analysis: finds the most likely state path through a set of data given a H2MM model
    • Reporting of model reliability statistics BIC and ICL
  • Simulation functions: Monte Carlo type simulations based on a hidden Markov model
    • Useful for verifying results

Installation

The easiest way to install H2MM_C is via pip:

$ pip install H2MM-C

It should be noted that the setup files require a recent version of numpy, and at least Python 3.7. This is not because the code actually requires features introduced in these verstions, but rather because in Linux, with the numpy version change, the size of certain numpy data-types changed, making compiles with recent versions of numpy incompatible with earler versions. These recent numpy versions do not support Python 3.6. Therefore, the intrepid programmer can download the code, edit the setup files, and compile with earlier versions of numpy and/or Python, and the code should still work.

Alternative Installation Methods

If for some reason installing from PyPi doesn't work, you can try installing directly from github:

$ pip install git+https://github.com/harripd/H2MMpythonlib

Or, if you download the repository, and have the files stored locally, from the top directory of the project (where the setup.py file is):

$ python setup.py install

or if you only want to have it accessible from the current directory, use:

$ python setup.py build_ext --inplace

*Note on some systems the commands are pip3 and python3 instead of pip and python respectively.

Compatibility

We are trying to provide the broadest degree of compatibility as possible, but there are limitations, and assistance is welcome to expand compatibility as much as possible. Currently we are using github actions and cibuildwheel to generate wheels that are uploaded to PyPi, as well as the sdist archive (.tar.gz file), however we are having trouble building certain wheels.

Working wheels:

  • Windows wheels
  • manylinux wheels
  • MacOS X wheels

Currently we do not have wheels for:

  • musllinux

For systems we do not have wheels for, it may still be possible to compile from the sdist archive (.tar.gz file). cibuildwheel uses the most recent version of numpy. This means that these wheels will generally not work if you have a version of numpy before 1.20.0, and therefore this is given as a minimum version requirement. However, we have been able to compile working versions with lesser versions of numpy. Therefore, if you wish to keep your version of numpy, we suggest downloading the github repository, editing the setup.py file to support your version of numpy, and compiling with the following commands (run from the base directory where you have your local copy).

$ python setup.py bdist_wheel sdist
$ pip install *path to wheel file*

Tutorial Code

For a full tutorial on H2MM_C, please see the zenodo repository: DOI

Below is a small sample of tutorial code.

	# H2MM_C accepts numpy arrays, so we mush import numpy
	import numpy as np
	import H2MM_C
	# note: it can be more convenient to use from H2MM_C import * so that it is unnecessary to type H2MM_C. repeatedly

	###Data must be defined, so here is some data *made purely for demonstration, and not meant to be realistic*

	# lets define sum fake bursts IMPORTANT: this is ENTIRELY FOR DEMONSTRATION, the fake data below is not based on any model
	# burst 1
	burst_stream1 = np.array([  0,  1,  0,  1,  0,  2,  0,  1,  2,  0,  1,  2]) 
	burst_times1 =  np.array([100,110,112,117,123,124,128,131,139,148,168,182]) # note that burst_stream1 is of the same length as burst_times1
	
	# burst 2
	burst_stream2 = np.array([  2,  1,  0,  0,  2,  1,  0,  1,  0,  0])
	burst_times2  = np.array([202,231,340,370,372,381,390,405,410,430]) # note that burst_stream2 is of the same length as burst_times2, but different from burst_stream1 and burst_stream1
	
	# burst N
	burst_streamN = np.array([  0,  2,  1,  2,  0,  2,  1,  0,  1,  2,  1,  0,  1,  0,  0])
	burst_timesN  = np.array([500,502,511,515,518,522,531,540,544,548,561,570,581,590,593]) # again burst_streamN is the same length as burst_timeN


	###The burst arrays must now be put into two lists, one for the photon streams and one for the arrival times


	# Now the bursts must be put into lists (real data should have hundreds to thousands of bursts)
	# Also, normally, you will be importing the data from a file, so the previous definition of burst_streamN and burst_timesN
	# will more likely be done with a file read, or by using your burst-analysis software to split your data into bursts
	streams = [burst_stream1, burst_stream2, burst_streamN] # each element is a numpy array of indexes identifying the stream of each photon
	times = [burst_times1, burst_times2, burst_timesN] # each element is a numpy array of arrival times, must be in in order


	###The above does not invoke H2MM_C (except the import statements), they are purely for demonstrating how to format the data that H2MM_C accepts.
	###The rest is actually using H2MM_C, first, an initial model must be defined, (an object of the 'H2MM_C.h2mm_model' class) and then initial model and data can be given to the  'H2MM_C.EM_H2MM_C' for optimization.


	# first define the initial arrays for the initial guess
	prior = np.array([0.3, 0.7]) # 1D array, the size is the number of states, here we have 2, the array will sum to 1
	trans = np.array([[0.99, 0.01],[0.01,0.99]]) # 2D square array, each dimenstion the number of states
	obs = np.array([[0.1, 0.4, 0.5],[0.3, 0.2, 0.5]]) # 2D array, number of rows is the number of states, the number of columns is the number of detectors
	
	# Now make the initial model
	initial_model = H2MM_C.h2mm_model(prior,trans,obs) 
	
	# Run the main algorithm
	optimized_model = H2MM_C.EM_H2MM_C(initial_model,streams,times)
	
	# Printing out the main results
	print(optimized_model.prior, optimized_model.trans, optimized_model.obs)
	# Print out the number of iterations it took to converge
	print(optimized_model.niter)


	###And viterbi analysis


	# doing the fitting
	fitting = H2MM_C.viterbi_sort(optimized_model,streams,times)
	
	print(fitting[0]) # print the ICL
	# the state path is in index 1
	print(fitting[1])

Classes

  1. h2mm_model: the core python extension type of the package: this contains the H2MM model, which has the core fields:

    • nstate: the number of states in the model
    • ndet: the number of photon streams in the model
    • trans: the transition probability matrix
    • obs: the emmision probability matrix, shape nstate x ndet
    • prior: the prior probability, shape nstate
    • k: the number of free parameters in the model
    • loglik: the loglikelihood of the model
    • nphot: the number of photons in the dataset that the model is optimized against
    • bic: the Baysian Information Criterion of the model
    • converged: True if the model reached convergence criterion, False if the optimization stopped due to reaching the maximum number of iterations or if an error occured in the next iteration.
  2. h2mm_limits: class for bounding the values a model can take, min/max values can be specified for all 3 core arrays (trans, obs, and prior) of an h2mm_model, either as single floats, or full arrays, values are specified as keyword arguments, not specifiying a value for a particular field will mean that field will be unbounded

    • min_trans: the minimum values for the trans array (ie the slowest possible transition rate(s) allowed), values on the diagonal will be ignored
    • max_trans: the maximum values for the trans array (ie the fastest possible transition rate(s) allowed), values on the diagonal will be ignored
    • min_obs: the minimum values for the obs array
    • max_obs: the maximum values for the obs array
    • min_prior: the minimum value for the prior array
    • max_prior: the maximum value for the prior array

Functions

  1. EM_H2MM_C: the core function of the package, used to perform model optimizations.

    Arguments:

    • Initial model : an h2mm_model object that will be optimized.
    • Streams: a set of burst photon indeces. Must be given as a list, tuple or 1-D object numpy.ndarray of 1D numpy.ndarrays of photon indeces, must be of integer type, and positive. The indeces will be converted to unsigned long int when given to C-code
    • Times: a set of burst photon times (macrotimes), Must be given as a list, tuple or 1-D object numpy.ndarray of 1D numpy.ndarrays. The macrotimes will be converted to unsigned long long int when given to C-code. Therefore while floating point arrays are accepted, they are strongly discouraged. Must be same length as streams

    Returns:

    • Optimized model: the h2mm_model optimized for the given input data.
  2. H2MM_arr: calculate the loglik of a bunch of h2mm_model objects at once, but with no optimization. The first agruments can be an h2mm_model, of a list, tuple, or numpy array of h2mm_model objects. The second and third arguments are the same as in EM_H2MM_C

    Arguments:

    • Models : a list, tuple or numpy.ndarray of h2mm_model objects whose loglikelihood will be calculated agains the given data.
    • Streams: a set of burst photon indeces. Must be given as a list, tuple or 1-D object numpy.ndarray of 1D numpy.ndarrays of photon indeces, must be of integer type, and positive. The indeces will be converted to unsigned long int when given to C-code
    • Times: a set of burst photon times (macrotimes), Must be given as a list, tuple or 1-D object numpy.ndarray of 1D numpy.ndarrays. The macrotimes will be converted to unsigned long long int when given to C-code. Therefore while floating point arrays are accepted, they are strongly discouraged. Must be same length as streams

    Returns:

    • Calculated Models: a set of h2mm_model objects organized in the same way as Models
  3. viterbi_path: takes the same inputs as EM_H2MM_C, but the 'h2mm_model' should be optimized through 'EM_H2MM_C' first, returns a tuple the: Arguments:

    • Model : an h2mm_model object that will has been optimized against the given data.
    • Streams: a set of burst photon indeces. Must be given as a list, tuple or 1-D object numpy.ndarray of 1D numpy.ndarrays of photon indeces, must be of integer type, and positive. The indeces will be converted to unsigned long int when given to C-code
    • Times: a set of burst photon times (macrotimes), Must be given as a list, tuple or 1-D object numpy.ndarray of 1D numpy.ndarrays. The macrotimes will be converted to unsigned long long int when given to C-code. Therefore while floating point arrays are accepted, they are strongly discouraged. Must be same length as streams

    Returns:

    • path: the most likely state path
    • scale: the posterior probability of each photon
    • ll: the loglikelihood of the path for each burst
    • icl: the Integrated Complete Likelihood (ICL) of the state path given the model and data, provides an extremum based criterion for selecting the ideal number of states
  4. viterbi_sort: the viterbi algorithm but with additional parameters included: Arguments:

    • Model : an h2mm_model object that will has been optimized against the given data.
    • Streams: a set of burst photon indeces. Must be given as a list, tuple or 1-D object numpy.ndarray of 1D numpy.ndarrays of photon indeces, must be of integer type, and positive. The indeces will be converted to unsigned long int when given to C-code
    • Times: a set of burst photon times (macrotimes), Must be given as a list, tuple or 1-D object numpy.ndarray of 1D numpy.ndarrays. The macrotimes will be converted to unsigned long long int when given to C-code. Therefore while floating point arrays are accepted, they are strongly discouraged. Must be same length as streams

    Returns:

    • icl: the Integrated Complete Likelihood (ICL) of the state path given the model and data, provides an extremum based criterion for selecting the ideal number of states
    • path: the most likely state path
    • scale: the posterior probability of each photon
    • ll: the loglikelihood of the path for each burst
    • burst_type: a binary classification of which states are in each burst
    • dwell_mid: returns the lengths of dwells in each state, for dwells with full residence time in the burst
    • dwell_beg: same as dwell_mid, except for dwells that begin each burst
    • dwell_end: same as dwell_beg, but for ending dwells
    • ph_counts: gives counts of photons per stream per dwell
    • ph_mid: same as ph_counts, but further sorted as in dwell_mid
    • ph_beg: same as ph_counts, but futher sorted as in dwell_beg
    • ph_end: same as ph_counts, but futher sorted as in dwell_end
    • ph_burst: same as ph_counts, but futher soreted as in dwell_burst
  5. sim_statepath: from an model, generate a random state path of equally spaced time points

    Arguments:

    • Model: a h2mm_model object to use as the defined parameters of the simulation
    • Length: the number of time steps to simulate, defines the number of elements in the ouput array

    Returns:

    • Path: an array of the states of the system at each time point, based on Monte-Carlo simulation
  6. sim_sparsestatepath: from a model and a set of sparse times, generate a random state path

    Arguments:

    • Model: a h2mm_model object to use as the defined parameters of the simulation
    • Times: a 1D numpy.ndarray object of times for a simulated burst

    Returns:

    • Path: the states of the simulated photons based on the input times
  7. sim_phtraj_from_state: randomly select photons given a set of states and a model Arguments:

    • Model: a h2mm_model object to use as the defined parameters of the simulation.. Note: the model transition rates are ignored, only the emission probability matrix is considered
    • states: a 1D numpy.ndarray of positive integers, specifying the state of each photon. Note: this state path over-rides any transition probability matrix used in the model

    Returns:

    • Stream: the indeces (photon indeces) of the simulated photons
  8. sim_phtraj_from_times: from a model and a set of sparse times, generate a random photon trajectory

    Arguments:

    • Model: a h2mm_model object to use as the defined parameters of the simulation
    • Times: a 1D numpy.ndarray object of times for a simulated burst

    Returns:

    • Path:
    • Stream: a 1D numpy.ndarray of the simulated photon indeces (streams)

Acknowledgements

Significant advice and help in understanding C code was provided by William Harris, who was also responsible for porting the code to Windows

This work falls under the MIT open source lisence

Metadata

Release files for H2MM-C 2.3.1

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

Source distribution (sdist)

Source distribution for H2MM-C 2.3.1
File Size Uploaded
h2mm_c-2.3.1.tar.gz 3.6 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for H2MM-C 2.3.1
File
h2mm_c-2.3.1-cp314-cp314t-win_arm64.whl CPython 3.14 CPython 3.14 free-threading Windows ARM64 Details
h2mm_c-2.3.1-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
h2mm_c-2.3.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
h2mm_c-2.3.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
h2mm_c-2.3.1-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
h2mm_c-2.3.1-cp314-cp314t-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.15+ x86-64 Details
h2mm_c-2.3.1-cp314-cp314-win_arm64.whl CPython 3.14 CPython 3.14 Windows ARM64 Details
h2mm_c-2.3.1-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
h2mm_c-2.3.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
h2mm_c-2.3.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
h2mm_c-2.3.1-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
h2mm_c-2.3.1-cp314-cp314-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.15+ x86-64 Details
h2mm_c-2.3.1-cp313-cp313-win_arm64.whl CPython 3.13 CPython 3.13 Windows ARM64 Details
h2mm_c-2.3.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
h2mm_c-2.3.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
h2mm_c-2.3.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
h2mm_c-2.3.1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
h2mm_c-2.3.1-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
h2mm_c-2.3.1-cp312-cp312-win_arm64.whl CPython 3.12 CPython 3.12 Windows ARM64 Details
h2mm_c-2.3.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
h2mm_c-2.3.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
h2mm_c-2.3.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
h2mm_c-2.3.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
h2mm_c-2.3.1-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
h2mm_c-2.3.1-cp311-cp311-win_arm64.whl CPython 3.11 CPython 3.11 Windows ARM64 Details
h2mm_c-2.3.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
h2mm_c-2.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
h2mm_c-2.3.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
h2mm_c-2.3.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
h2mm_c-2.3.1-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
h2mm_c-2.3.1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
h2mm_c-2.3.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
h2mm_c-2.3.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
h2mm_c-2.3.1-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
h2mm_c-2.3.1-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details
h2mm_c-2.3.1-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
h2mm_c-2.3.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
h2mm_c-2.3.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
h2mm_c-2.3.1-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
h2mm_c-2.3.1-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details

Total release size: 83.5 MB

Release files / h2mm_c-2.3.1.tar.gz

Download URL h2mm_c-2.3.1.tar.gz
Size 3.6 MB
Tags Source
SHA-256 checksum
How to use checksums
0f5063c0658c9a3516a400d65fcfadc5e9ec7e1dc18006f69b8d657338ed4262
BLAKE2b-256 checksum
How to use checksums
4824ac05c09630ef57fa1150c2c017e9b7ff54e38f2f00a6856e4c3fde586a1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp314-cp314t-win_arm64.whl

Download URL h2mm_c-2.3.1-cp314-cp314t-win_arm64.whl
Size 1.0 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows ARM64
SHA-256 checksum
How to use checksums
1795de9a626c287103ddba769730fddbdb3db0dc9aa61bf0a5c5c904657ca79f
BLAKE2b-256 checksum
How to use checksums
d6412a5ead0f333ae8677f5d8ff9255f824dd513df4c598252cd483ff2efaa8e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp314-cp314t-win_amd64.whl

Download URL h2mm_c-2.3.1-cp314-cp314t-win_amd64.whl
Size 1.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
ef2f3ef618c3926eabc292c5b6f018b958ffec0680ba674334e9c6c3d9f3a0c8
BLAKE2b-256 checksum
How to use checksums
0ddf3e936f2b75f8d18f95091cfbd0c3fca2b0a1b6c776f0023d2ccc1689d4c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL h2mm_c-2.3.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 3.7 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c304e91b0a2b633defafcd8cd14a1459d4c67c8c5048228e646b984bffe8288b
BLAKE2b-256 checksum
How to use checksums
ea1cdc9d1f86907f34249784507276b86f4b7a49cd99e18526c81791e4d8e693
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL h2mm_c-2.3.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 3.7 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
4db25a0f5716ccbfbfa3a18403ecf56cd95d644e30de541ddba3c20cf71271c3
BLAKE2b-256 checksum
How to use checksums
b8ed76006b88cdda128178cb6bd1a1aaacb5097536fb253fad4ee77caf2450b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp314-cp314t-macosx_11_0_arm64.whl

Download URL h2mm_c-2.3.1-cp314-cp314t-macosx_11_0_arm64.whl
Size 1.1 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6cbb05c3c0740dc074a2efec63d0e31ec1a0231884e25095f2ba990018afb569
BLAKE2b-256 checksum
How to use checksums
c45a7b5b02993c8eeb7c9c0037d72d38503ebc3264e9cd28d6cac09709704901
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp314-cp314t-macosx_10_15_x86_64.whl

Download URL h2mm_c-2.3.1-cp314-cp314t-macosx_10_15_x86_64.whl
Size 1.2 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
47f491d612f720935780b8ca820f2fb3c2614547c996c6b1718666ce38f8e6bc
BLAKE2b-256 checksum
How to use checksums
a7b9d5682e65f2bbeb9623f545d2de0905fd222af34e57afe2e560ce22309f96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp314-cp314-win_arm64.whl

Download URL h2mm_c-2.3.1-cp314-cp314-win_arm64.whl
Size 1.0 MB
Tags CPython 3.14 Windows ARM64
SHA-256 checksum
How to use checksums
0955f094e54206b2c5feaa3fba7b4d6544af107e6a48d945a6dc8a4ded9f5cd4
BLAKE2b-256 checksum
How to use checksums
0c95c1df370761ed8d22e1437488538a54793a4d3ec842e56fa7be11d73a789c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp314-cp314-win_amd64.whl

Download URL h2mm_c-2.3.1-cp314-cp314-win_amd64.whl
Size 1.1 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
cf77327956762b1d7df2329597bd7141eeda9cae88d168298440951a8c9e7dc3
BLAKE2b-256 checksum
How to use checksums
4039883c5fac36d4bca8db4d8e12fac03a18f97add24288e065754fa6bbe2d02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL h2mm_c-2.3.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 3.7 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
dfe5e88b0c06dfae9392d1f290ae278a9663c0a34647b68d5819de487c01391b
BLAKE2b-256 checksum
How to use checksums
a64ce27b660211f121ea5a1914969e4e1babf5b4227141ed3a6e6f8ac9582f55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL h2mm_c-2.3.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 3.6 MB
Tags CPython 3.14 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
c60cda043c0263f3715486b9f76ac44740fb6d7bc8a33ac9185f488c35a3a076
BLAKE2b-256 checksum
How to use checksums
7dd5cafbf15157b87f5d23f2ce338332d9ffe4bf38d8e1a4d7ed74fa01ceaaa9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp314-cp314-macosx_11_0_arm64.whl

Download URL h2mm_c-2.3.1-cp314-cp314-macosx_11_0_arm64.whl
Size 1.1 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9fd86d213f722cfa1e30171ce101c3ca861acb29429ddd35a4933ae2ab99f1f6
BLAKE2b-256 checksum
How to use checksums
fe6617523967f9b0ac3dc1d5ef1cf37260dcbe3535d41cb9f13165883b75fa17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp314-cp314-macosx_10_15_x86_64.whl

Download URL h2mm_c-2.3.1-cp314-cp314-macosx_10_15_x86_64.whl
Size 1.2 MB
Tags CPython 3.14 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
beb1fd5722c3dc6e5d1da9e1428ba8a356d58ae3232ade5812f1bc59d60670fc
BLAKE2b-256 checksum
How to use checksums
7ee4990f779d92af50be4be0de2cdb37d6d199bd357571792fd21a1fc1940c2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp313-cp313-win_arm64.whl

Download URL h2mm_c-2.3.1-cp313-cp313-win_arm64.whl
Size 1.0 MB
Tags CPython 3.13 Windows ARM64
SHA-256 checksum
How to use checksums
8f9a2b640ee43a1e62b0e261246c543e338822e9b708ffecb6e459ad1e3d61cd
BLAKE2b-256 checksum
How to use checksums
efb64bef0b608a1d1186f5fa2b7f19d51d841ceb9887402f5763229c90602fd2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp313-cp313-win_amd64.whl

Download URL h2mm_c-2.3.1-cp313-cp313-win_amd64.whl
Size 1.1 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
72570b8b0b711af8d47fef29ef6b1349225151132c027b9c2d43fa222ae3070a
BLAKE2b-256 checksum
How to use checksums
047f227a5dc3c90b23d3f5885b62dce7b9d059b973be9a23d74879249964937e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL h2mm_c-2.3.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 3.7 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e35955ae705aa438af579bcf7369cdc538a44e333112846040ef3f62a8271e7d
BLAKE2b-256 checksum
How to use checksums
b036a9599ca6c4c1ae6b6a9ef7ae5bd09636ea11c0a6b71d96416a1242950a03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL h2mm_c-2.3.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 3.6 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e5d0983591c41f0e8dd4a08f7ff8a177191aa6fae45578835ddecc98234f50b8
BLAKE2b-256 checksum
How to use checksums
b24bc732d881c5e26885ab0ad7e5f3df013971be1f32bef97805978962934d92
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp313-cp313-macosx_11_0_arm64.whl

Download URL h2mm_c-2.3.1-cp313-cp313-macosx_11_0_arm64.whl
Size 1.1 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3e46a7c56483ecd45e65fd2de45ea9004ea30474075fe18e8edbf8e7592be1ca
BLAKE2b-256 checksum
How to use checksums
139f55d3f8cbb68b1bba101488dad13d3b479bdd6627c93ef6152ee306d84dd3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp313-cp313-macosx_10_13_x86_64.whl

Download URL h2mm_c-2.3.1-cp313-cp313-macosx_10_13_x86_64.whl
Size 1.2 MB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
ed58e29a3b0a998830c0c67741b87829b54e8866d5bdd6c5ba8de5c21d20e68a
BLAKE2b-256 checksum
How to use checksums
63b15ea80b892d019ae48087eaab49066b90c4c78f0ba2201bfc67f81c587c33
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp312-cp312-win_arm64.whl

Download URL h2mm_c-2.3.1-cp312-cp312-win_arm64.whl
Size 1.0 MB
Tags CPython 3.12 Windows ARM64
SHA-256 checksum
How to use checksums
6915d499dc9d170d5b35b1e8a9bb6ed553065a5dc0450da00f177e02f449057e
BLAKE2b-256 checksum
How to use checksums
ab68a5e5f088453e173bc4f0553881f7b461672e79ed6cfc571539cc78cf6d3a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp312-cp312-win_amd64.whl

Download URL h2mm_c-2.3.1-cp312-cp312-win_amd64.whl
Size 1.1 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
74678b747b0acf106973626fa1087cee42b3ea35ee108d33c60d1543afbdc4f7
BLAKE2b-256 checksum
How to use checksums
5988394ea2b8e1aab4c7aadd4306fc1dad3e391b1f75937cabaa93b472fb265c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL h2mm_c-2.3.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 3.7 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
89e46ec40d1adb7e1373d94c23e0f42fd1f457093e29a5a3e0a32566dc723ab0
BLAKE2b-256 checksum
How to use checksums
60ffcd0c645bd0e91dfa8e37680e61d2474d128fc577b300e40b976a11a39d25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL h2mm_c-2.3.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 3.6 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
8d3139c40d5ed76e2b7b8e23d9e078bb957ab5fdc63e4086905e3cb24981a3b5
BLAKE2b-256 checksum
How to use checksums
98ef1b3ce676e0cf63fa4168f7ee6215e12358856ad22bdac4b22c0af3a8a879
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp312-cp312-macosx_11_0_arm64.whl

Download URL h2mm_c-2.3.1-cp312-cp312-macosx_11_0_arm64.whl
Size 1.1 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
bc85d68df3e72d4015229fc7ce0be758b53db630e6e4095ad7359f8b177a6e25
BLAKE2b-256 checksum
How to use checksums
eb8b25261628c6bee99bc687679daf4239f6e5239bd046a0ba868f3ab59d8c02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp312-cp312-macosx_10_13_x86_64.whl

Download URL h2mm_c-2.3.1-cp312-cp312-macosx_10_13_x86_64.whl
Size 1.2 MB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
340db60d11612b9d45ffe448b49a92c4a6c18b72fa68ba6b759609a93e64a851
BLAKE2b-256 checksum
How to use checksums
75f898ece5d15c28f2a31944ce51d57502a2bd0a5e7b4addcc9ed788e740efb4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp311-cp311-win_arm64.whl

Download URL h2mm_c-2.3.1-cp311-cp311-win_arm64.whl
Size 1.0 MB
Tags CPython 3.11 Windows ARM64
SHA-256 checksum
How to use checksums
9cfa95450ca4f666e5f828cfd76d92c34f919b8ee1320e13f2112728d6fb0c62
BLAKE2b-256 checksum
How to use checksums
a058dc230822e45734d4930295728330e2f6770ca92ac33720897cd88a0e23a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp311-cp311-win_amd64.whl

Download URL h2mm_c-2.3.1-cp311-cp311-win_amd64.whl
Size 1.1 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
6fa0990fb63a87f238803f41f15aefc10a9fcf67684607684547cf98385e684e
BLAKE2b-256 checksum
How to use checksums
6807243067899e96b576d4a11cf69b2d445097c24ea2ba1e194e69f794e8174d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL h2mm_c-2.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 3.8 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
297921a713711efbb7f0bd39791d5f7961224727738154f3c4e7368999827b52
BLAKE2b-256 checksum
How to use checksums
6858bbad5228d69e52c975cc732183edca373748b2419075a97068212207164b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL h2mm_c-2.3.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 3.7 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
ec199a56bdb0248a4d56523797116cf8ad7a8caeb0ad2fd54557b7309b7965af
BLAKE2b-256 checksum
How to use checksums
b6624bcf14dde930d70b5b26e448e5ba8b0c7ac6a325f1a652732bbaf46c82b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp311-cp311-macosx_11_0_arm64.whl

Download URL h2mm_c-2.3.1-cp311-cp311-macosx_11_0_arm64.whl
Size 1.1 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2e580dca928cb0fbf21d5acf8109035e1a9b7c0c9564623e80bf8d2803d3da8c
BLAKE2b-256 checksum
How to use checksums
b9910c6f89d8a95a7904647c6667b9dd70b8d2231e5d172ee74af4033193e641
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp311-cp311-macosx_10_9_x86_64.whl

Download URL h2mm_c-2.3.1-cp311-cp311-macosx_10_9_x86_64.whl
Size 1.2 MB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
3d9b6b8bbd398240abdfc859cef70ef906b20d1b9d2990e19fff8a70fce3cd03
BLAKE2b-256 checksum
How to use checksums
89752b51454d94debadc2bb5ec15e93db916a02053ad1ebbdbb1978d38d5442a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp310-cp310-win_amd64.whl

Download URL h2mm_c-2.3.1-cp310-cp310-win_amd64.whl
Size 1.1 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
acad02ddec107f09f2042be6e567fbd0420b89c44be6c0672fd3e6e4f480c91f
BLAKE2b-256 checksum
How to use checksums
756ddb696589a85ff24d2eceea01f687d88f47ba23accd72d812950cf60c0b77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL h2mm_c-2.3.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 3.6 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
bf0438958e54a2aac8e3b967281fa09c94ba145d39b020f1326523a89ae5965a
BLAKE2b-256 checksum
How to use checksums
204b28e6daef655a95031133ea30fd055c3bd6ed5815dfe665cd703408ebbb96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL h2mm_c-2.3.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 3.5 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
baf39960f0bb72b7f79bb002e1299edb1fb6eec74d1012da9ad3bb5f74248c0d
BLAKE2b-256 checksum
How to use checksums
dec5dbe75e4dc2741da24d586ff9e9cd2ba7fdcd36474a94edde9339348aa9b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp310-cp310-macosx_11_0_arm64.whl

Download URL h2mm_c-2.3.1-cp310-cp310-macosx_11_0_arm64.whl
Size 1.1 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7fd50dfbb78c1ee1d74dba0df8a661fbf98917e3c25f07660df1a779b095ad61
BLAKE2b-256 checksum
How to use checksums
712e3324594ab047fa36eb402ddee5d777eb8a1ee0c95441d5bfb2fe24295725
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp310-cp310-macosx_10_9_x86_64.whl

Download URL h2mm_c-2.3.1-cp310-cp310-macosx_10_9_x86_64.whl
Size 1.2 MB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
796179cd09a26f3bba793fda97e0822aba45541682dd66e8ae3f02fab9aaea7b
BLAKE2b-256 checksum
How to use checksums
1cd561c7fe03d71842210d420e3802ec4609c2c057dd0241eb7e101cad3f9d94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp39-cp39-win_amd64.whl

Download URL h2mm_c-2.3.1-cp39-cp39-win_amd64.whl
Size 1.1 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
6ef0212388ce1dfd3b8bd9c4a2ae1f0b34b54f186f3796b511e16e72fa3a461e
BLAKE2b-256 checksum
How to use checksums
0bf2e3325de0657b84211ea4519848b7d5e9d9bbcf43133e80b3b2ebc0841c96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL h2mm_c-2.3.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 3.6 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
09b04161ebbd6781d9fc9fb17da697b2c203ac6a5a461255354073682bf16f5e
BLAKE2b-256 checksum
How to use checksums
e21d072519486d7f0c5c1040af1fe0bf59f08ca5ac4fb5b20d3c7e09ce188e17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL h2mm_c-2.3.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 3.5 MB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
681fa72319f5b05a1b4cf50c941ae4d5f6efaf4344dc69b188c22545d33955d7
BLAKE2b-256 checksum
How to use checksums
ed614c866e4b078ab1042ef6172591539810c7817b412b2b62320a020a8ba72e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp39-cp39-macosx_11_0_arm64.whl

Download URL h2mm_c-2.3.1-cp39-cp39-macosx_11_0_arm64.whl
Size 1.1 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f417da4dffa9779ebdf2e86c5224ced5bcee5dcd9ae605f27343f659cc4b524c
BLAKE2b-256 checksum
How to use checksums
91237af0a97a92ece6a8298e81243e8758590cc2cf97cacd8f128bf603127b6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / h2mm_c-2.3.1-cp39-cp39-macosx_10_9_x86_64.whl

Download URL h2mm_c-2.3.1-cp39-cp39-macosx_10_9_x86_64.whl
Size 1.2 MB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
944b60a800837e209d1d991e23cde9a9fe8b2feb12c8c339d7dcbe0a3586ba77
BLAKE2b-256 checksum
How to use checksums
e0a1df132eb1fb525ba755ccfd26b1cb58b91fbc5a89f1217c7639349735e6a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release history Release notifications | RSS feed

This release

2.3.1 This release

41 release files

2.3.0

41 release files

2.2.1

41 release files

2.1.2

46 release files

2.1.1

46 release files

2.0.6

46 release files

2.0.5

45 release files

1.0.5

18 release files

1.0.4

19 release files

1.0.2

16 release files

1.0.1

16 release files

0.9.1

20 release files

0.8.3

21 release files

0.8.2

19 release files

0.8.1

24 release files

0.8

24 release files

0.0.9

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