Skip to main content

C level implementation of H2MM algorithm by Pirchi. 2016

Project description

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

License and Copyright

This work falls under the MIT open source lisence

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

h2mm_c-2.2.1.tar.gz (3.6 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

h2mm_c-2.2.1-cp314-cp314t-win_arm64.whl (919.5 kB view details)

Uploaded CPython 3.14tWindows ARM64

h2mm_c-2.2.1-cp314-cp314t-win_amd64.whl (982.3 kB view details)

Uploaded CPython 3.14tWindows x86-64

h2mm_c-2.2.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

h2mm_c-2.2.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

h2mm_c-2.2.1-cp314-cp314t-macosx_11_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

h2mm_c-2.2.1-cp314-cp314t-macosx_10_15_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

h2mm_c-2.2.1-cp314-cp314-win_arm64.whl (898.1 kB view details)

Uploaded CPython 3.14Windows ARM64

h2mm_c-2.2.1-cp314-cp314-win_amd64.whl (954.4 kB view details)

Uploaded CPython 3.14Windows x86-64

h2mm_c-2.2.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

h2mm_c-2.2.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

h2mm_c-2.2.1-cp314-cp314-macosx_11_0_arm64.whl (984.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

h2mm_c-2.2.1-cp314-cp314-macosx_10_15_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

h2mm_c-2.2.1-cp313-cp313-win_arm64.whl (881.0 kB view details)

Uploaded CPython 3.13Windows ARM64

h2mm_c-2.2.1-cp313-cp313-win_amd64.whl (939.8 kB view details)

Uploaded CPython 3.13Windows x86-64

h2mm_c-2.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

h2mm_c-2.2.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

h2mm_c-2.2.1-cp313-cp313-macosx_11_0_arm64.whl (965.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

h2mm_c-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

h2mm_c-2.2.1-cp312-cp312-win_arm64.whl (881.2 kB view details)

Uploaded CPython 3.12Windows ARM64

h2mm_c-2.2.1-cp312-cp312-win_amd64.whl (938.8 kB view details)

Uploaded CPython 3.12Windows x86-64

h2mm_c-2.2.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

h2mm_c-2.2.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

h2mm_c-2.2.1-cp312-cp312-macosx_11_0_arm64.whl (967.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

h2mm_c-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

h2mm_c-2.2.1-cp311-cp311-win_arm64.whl (891.1 kB view details)

Uploaded CPython 3.11Windows ARM64

h2mm_c-2.2.1-cp311-cp311-win_amd64.whl (945.9 kB view details)

Uploaded CPython 3.11Windows x86-64

h2mm_c-2.2.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

h2mm_c-2.2.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

h2mm_c-2.2.1-cp311-cp311-macosx_11_0_arm64.whl (977.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

h2mm_c-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

h2mm_c-2.2.1-cp310-cp310-win_amd64.whl (945.5 kB view details)

Uploaded CPython 3.10Windows x86-64

h2mm_c-2.2.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

h2mm_c-2.2.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (3.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

h2mm_c-2.2.1-cp310-cp310-macosx_11_0_arm64.whl (981.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

h2mm_c-2.2.1-cp310-cp310-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

h2mm_c-2.2.1-cp39-cp39-win_amd64.whl (946.3 kB view details)

Uploaded CPython 3.9Windows x86-64

h2mm_c-2.2.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

h2mm_c-2.2.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (3.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

h2mm_c-2.2.1-cp39-cp39-macosx_11_0_arm64.whl (982.3 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

h2mm_c-2.2.1-cp39-cp39-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

Details for the file h2mm_c-2.2.1.tar.gz.

File metadata

  • Download URL: h2mm_c-2.2.1.tar.gz
  • Upload date:
  • Size: 3.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for h2mm_c-2.2.1.tar.gz
Algorithm Hash digest
SHA256 684b82864f100d446239445d3b6e99e30e813f83d3be075fc92b97b12affc0a5
MD5 dba18eb8ac07590c2811fa988f846e5b
BLAKE2b-256 d2c87e529b4fc46539ba896d5069c1cfbda3b8eddb503787f7b8c3d5de53169b

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp314-cp314t-win_arm64.whl.

File metadata

  • Download URL: h2mm_c-2.2.1-cp314-cp314t-win_arm64.whl
  • Upload date:
  • Size: 919.5 kB
  • Tags: CPython 3.14t, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for h2mm_c-2.2.1-cp314-cp314t-win_arm64.whl
Algorithm Hash digest
SHA256 2512b3088b5a77473a8b942616f7ae0e3bce8895379a45687cc02914c21ce1c5
MD5 8dfb89b457dd7ef7b7ece0dc8eeb7fa7
BLAKE2b-256 cdc4f6a1bf210c4173adfd4b5bcf1c262330fc8cc3fa65cbc1593443e7639193

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: h2mm_c-2.2.1-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 982.3 kB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for h2mm_c-2.2.1-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 eadf0eff3769491b684a3caf466d66470158964c525fb5e4b77d9837479f9d31
MD5 f3613b6c2babb157e3f4893a4feff1f9
BLAKE2b-256 93f0e683db149dec2fea554ad6c0e877d2cbf542be9a1d4920e1880926def6d9

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1c04e22e2536ac949898a5f2e38baa6cf5b26f4a7d523f583f6a64dd936bbc66
MD5 78eb101c7d3cf026d3229d6373f6846a
BLAKE2b-256 ee2ec3706ab55c6d6b5c0a1c85740624b3179cf7bee16ed4f117c0681a01304d

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 70bb72e5a18dd758b3000eb835fee9d8850343b9527e1f1b128516571269fd06
MD5 b9120ad3d96f31d5dbdf73b7a6afa537
BLAKE2b-256 2cc104c96f9f2ef4f9b5e4464061de0b6c3989c76e6cc58f59be38a019d310d6

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 49517591680db37840a063dd680c26142653b7fa283b50cfc2ec545ee1182224
MD5 acc4a0d2876ae408e8ce0a713873db3d
BLAKE2b-256 f5eec28d46af25f0b67b00f59d2b0448739518b153a43a608b08b516e0dc2ccf

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp314-cp314t-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 4a796d27d638465b7b280d55ac5e4532e2f14865a565fc32cff39b2b2a1193a6
MD5 dd65dca8be42b0e17806599e88a74f13
BLAKE2b-256 6c8be78c1ccd8fbef06501722c88c17861a6869dc44277dfa6c51f7d2cd61713

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp314-cp314-win_arm64.whl.

File metadata

  • Download URL: h2mm_c-2.2.1-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 898.1 kB
  • Tags: CPython 3.14, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for h2mm_c-2.2.1-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 eb17b255820e92121a1778ea85995bc2092057b0af76dfdb612b414785346ee0
MD5 09b4fc935d5e8d01e389c5c253af1d4a
BLAKE2b-256 6ea9b5d80a342dba0bc10271a4031167858bdf33e96cb6f33fc71810fdab5e70

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: h2mm_c-2.2.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 954.4 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for h2mm_c-2.2.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 7ff0aad138a86d28f5e242e586ec503f6ad9aa62d2d3050163f6302dc6b23b7c
MD5 ccbf0ea491a0550b6d699d1dcd6829ca
BLAKE2b-256 ad148ed509bdaeeaa01993d9df37f29a58621e794ef38315d7c53917c73bfdeb

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1d8d7b88480694b59e5664fd4940d2ac6634c25e21d7cdb5c75e120805af358c
MD5 a11a2cd225b2031e1d6350948cee945f
BLAKE2b-256 0f5a14a74753ece680a37b0f33fdf455c9831acc1ca6aa5b1de548758661a63c

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 360a0ccb4a1304c2e53e17a1dcd41332a93c19911e52058b293759406cf12c92
MD5 cd7d9abb5ae5085947acf7ab403107cb
BLAKE2b-256 29a18fb0c664058b918d117eb0d670687417e25aaecbb3539965a397185f5c3e

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5c9467b0241c814f33613a81fa0c37387bfb97e329115a3d8c78fc148b77e058
MD5 6713daf984ffdfb5d8778b4339583a59
BLAKE2b-256 ea1e1c25c9296a3af1629fe96107c36e745e29d446bb8a574ef6da8304a85f2a

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 5e0812646a37adac3510cfda6e9a1312d4b6fa883ba4b1b89955f281bf85919f
MD5 87ed3de844afd9ca58e22ed9d567be9b
BLAKE2b-256 dc352d08991db939fd6f115d26926e9773cd687ad6428668c2c79e4eb434320f

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: h2mm_c-2.2.1-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 881.0 kB
  • Tags: CPython 3.13, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for h2mm_c-2.2.1-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 d56d01f164bfd52d86764b0de6f082c4658964620e6b4fefe287536775680875
MD5 ffb9deb5f527e5a8c37d7d5d5cd2c6cd
BLAKE2b-256 5a926078fa3b23f73479cfbea94eaa523a1d43e92f97789ba2de8652f66763c9

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: h2mm_c-2.2.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 939.8 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for h2mm_c-2.2.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c466067fc69266281007b29296f30ff68ad19d20429fca0d1ba51fdb9c2a3c10
MD5 d9025c8e50659a524363207bdfa320a7
BLAKE2b-256 50f7087edf216ab6942f9d8639f1ca052fa793d324d0d6131da50d01a58708f3

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ac635212072449848c57721d9b928361bfc86b1c6bddab00e9252d64545686fa
MD5 e0e17ae368772e9d315dacc8090772aa
BLAKE2b-256 c16f80c7ef091fa0a48b9e52927c52cae0ba36f559960f36fb54f12860263a64

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2f01cd2c59f5b4a8691e23a235f5b0d02be08e90d9721b4e1be91d233284d776
MD5 e961369ee4eb60163d31c99c68c99a11
BLAKE2b-256 f5fbbc101dac2260486ca6b217ce3c362d19c81a4f67961801056581d932314f

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fe6dde009668f5c07b5dc729f5a893d22052747b10d366789fc3154320072574
MD5 0003e4bb5a5aacb6380780e5d3cd4bcf
BLAKE2b-256 ba2ce0cef1e9ee6c699649cb92e5e79615f1b64867d9753dc56230f222922654

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 24991800ae16ca6406f3f5474d4323f992f4b410b9a7d03c7d947b3ef0707d12
MD5 119ba1806ec69b42460bf74c7293cb55
BLAKE2b-256 c67495ba8572a43640112639ddedec4de873e5726d29c6a0d7db260b69dfc8bf

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: h2mm_c-2.2.1-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 881.2 kB
  • Tags: CPython 3.12, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for h2mm_c-2.2.1-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 02675bb4efadc9602100d278dffb760c915a78b9d1addb98d8d6d07000c382cf
MD5 d1edd402aab702a94b59e179d9b16921
BLAKE2b-256 dc2bd1338f465cb7b5f39425758be0e41d4bac65a7f0ce3da2583565e9d07b2b

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: h2mm_c-2.2.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 938.8 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for h2mm_c-2.2.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 6ccf741bdd9a6500c47bf9651d5a2680a5465d110e9b960b8b0306595bbc2e05
MD5 279839daf1ed209d0cf4b9071ac89f17
BLAKE2b-256 d27f2186ea64afc97f8713b0dc2163e89324b2e6b47fa4bec1a0e7c51bd5dafc

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 80ee95598719383ae127b06c6f60172b7ec28c689071ec8c55011fd993645603
MD5 0d0771167b0f9842a186290d4309d78b
BLAKE2b-256 19a14e5f8b21e2484dd60378d40b7f42a574f4994233e81bbf3bd48a40da5f6d

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b5f5ff61a3e9af534c6f809fd066f1fa376cd06f06f415ae1806647355b61702
MD5 4548937bc2006467cebaa3f9fd04f3a4
BLAKE2b-256 1e1a58dbbf15619fb22fe02c9e8697946613abb6557e7b758f3c5cad48e44e3b

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8110c01e6a43d42ace75a6090628d57ade300e5ac0aa700b6b04ae480f61a5ba
MD5 b03e3a12835eef78a8c08ed88673438b
BLAKE2b-256 df733946b726b479246d911cb573b8ce35b84924ef86211ce8b9a0252831b117

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 1cc88adf62b57fa6f8f439172aaf0331bb1dff7ff2d4526100c6d6bff1316cf0
MD5 7557c0512d5cd4911bf51e96cb025986
BLAKE2b-256 a293f9e9d9299b7c8d4ee22652b903e3cab6749b94e3ef703e3c21bc05476125

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp311-cp311-win_arm64.whl.

File metadata

  • Download URL: h2mm_c-2.2.1-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 891.1 kB
  • Tags: CPython 3.11, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for h2mm_c-2.2.1-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 c42381e88eae89394366d3082d77a37be35a32778edbb22d2cbd64d55ea1a2b2
MD5 48ccd001d88456b9291d7052f9468ecb
BLAKE2b-256 9dec1ff376af05ba0a10cffa38ddc51ed51074fa7336b77df2ab9339f815f735

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: h2mm_c-2.2.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 945.9 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for h2mm_c-2.2.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d5d44e038dc7ed0a7cad19a714219cc8804a9aa809856f4e670db568aecf08eb
MD5 7de9b4ed1537e1e63f8537f9a7217463
BLAKE2b-256 2c2937124da9ce0af68284925b38f47bcf820d5ec860202dc0ea7cfff9353081

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8cf28e61fe5bff0a187ffb715ecb99d3000a1b45a15756b576eb053d98634f9e
MD5 c9b6ef26136013c61c48e63c82bbcc6c
BLAKE2b-256 65b60e8ebd74191516d7e707da76caf0136750e913e2b595e80a850e8b379a7b

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 652aaf2b51732301ac6be00ec38fdc402ec2851015fda4d5c84477989ebe3c9c
MD5 5e7c2e0500ef639441faab201938ff21
BLAKE2b-256 b364a58e3678d7aff54101212d0f11a672d18b390af091a55bac24cb2cf7b904

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6af7bd8ae2416f8bfad5998eac8cc9ceeb1f8feed8fb4c53442c34f496d914b1
MD5 8dae5e30d64f9fb30667f929d2b61b3f
BLAKE2b-256 db1599ed696962d2c0b79b920cd428a40d73f5246bc2f39f3617d136a01c5dfc

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9cbf3e7969e49c0fbaf4dba04a8e959535014a60784c3d3166cc1fe0f9ce10de
MD5 25fd3ad4d1447a9ae0e071e99f6be3ea
BLAKE2b-256 b0e60c5abfa80415a081b6fe2a40ceaa9105848be315214c7e17de4a18ebf3f2

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: h2mm_c-2.2.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 945.5 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for h2mm_c-2.2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 cf66bef1da41958a626a5493fa4f199c230b56672fe07ef01cd9e2839ee5969a
MD5 6ac1b5ce62ad7d4f5e8cd98fc2d36b56
BLAKE2b-256 4342a257b929464310ecf1e182dca8a1560befd33f4ce1bfd35f1bd25e672e9e

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 177364ebef73b36005ebdaf54408093cfe3c46de79975fcdd6a4eefa05b5ce2c
MD5 179fb6fd9f2988063997943a21f0ff1c
BLAKE2b-256 ba4b57a41660c89a5a244aa31aed410ec20f641467d6348bbb74650c686d1e18

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2aec0e32fa6a62171a6e768c4e73003d49c5e3afc5d11cb2bdeb646e85deb79e
MD5 0dfadf79f6fb60c5ee26d5b875725127
BLAKE2b-256 15ea66190d8f413afda8e36524baa1e94bb4c356a78967d07b8531fb18121098

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 48ab20a72c41fe526805227632bf691c12a58d0413b14f69458022703adc861a
MD5 e9f7fcccbbe33826c56f0a0daeb554e3
BLAKE2b-256 65619a90fef44a2968b8408ae9119d9e21a1da88cbd2358bea95034cfb73ef0a

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ecce23756fc7bb7e486059ea99baba78b0705bda5a5cc84833405299b5bc870e
MD5 4c591b755526918e5e159b3746b5ce30
BLAKE2b-256 fc5b0f5929cbd82a9ec3f91c8b1c3dd084e905bdbeb28927690e014ef25c50eb

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: h2mm_c-2.2.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 946.3 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for h2mm_c-2.2.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 7f76d00793f81089282d0163a0e9944348c8fc307a4ca8e526b4762881aa0722
MD5 486ed6c4c2675eeb947d97d63b1e8b28
BLAKE2b-256 ec13afc05fed02bb4587539c77ef3b95c8943f5309d61816ea15d8df659014b8

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7979b4d88d71f65960300278b6a574aae95b41d90ab3f4fedc7ac71b6f5e43b7
MD5 7a61e8e33f3dea4d19afa17bb7d13353
BLAKE2b-256 0b6c7b4e327a72226676df3b9ac606bc9ab4b830e46e4d406872b652b4808359

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 90744b8632624dfcef9d07fada1f7df20c24625157ef6c7f38ec78e0051214d9
MD5 60953b59b4c2501907ae83360ec1ef11
BLAKE2b-256 ef41d8e41bdff3239acff9d0fd801ef6ea4955984ec7f7c0f5a210e72e28d628

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2024783aeb4704fc7bf480d908ec9adf8394aaac43bfce0d57e9d2cc15ae6a11
MD5 30b8ca556f14d7357d7e9cf1cb8c139c
BLAKE2b-256 3688b1aa83048daf247bb7954d4641feea0ff7d32e707afd98579ccb40dd7ab1

See more details on using hashes here.

File details

Details for the file h2mm_c-2.2.1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.2.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 06ce9b4f93bc5a53ca3aa4f2d9abf46a54023c3ed9780d9e8298849b2dd24584
MD5 94408a474103f37c7c4fdff1e4178038
BLAKE2b-256 da63d8c3d41af8b1214f8e3f75e681b1c4642f03ef2f6ca6feb401044b448599

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page