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.1.2.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.1.2-cp314-cp314t-win_arm64.whl (900.6 kB view details)

Uploaded CPython 3.14tWindows ARM64

h2mm_c-2.1.2-cp314-cp314t-win_amd64.whl (995.2 kB view details)

Uploaded CPython 3.14tWindows x86-64

h2mm_c-2.1.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.3 MB view details)

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

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

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

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

Uploaded CPython 3.14tmacOS 11.0+ ARM64

h2mm_c-2.1.2-cp314-cp314t-macosx_10_13_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.14tmacOS 10.13+ x86-64

h2mm_c-2.1.2-cp314-cp314-win_arm64.whl (879.6 kB view details)

Uploaded CPython 3.14Windows ARM64

h2mm_c-2.1.2-cp314-cp314-win_amd64.whl (933.5 kB view details)

Uploaded CPython 3.14Windows x86-64

h2mm_c-2.1.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.3 MB view details)

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

h2mm_c-2.1.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (3.2 MB view details)

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

h2mm_c-2.1.2-cp314-cp314-macosx_11_0_arm64.whl (990.4 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

h2mm_c-2.1.2-cp314-cp314-macosx_10_13_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.14macOS 10.13+ x86-64

h2mm_c-2.1.2-cp313-cp313-win_arm64.whl (862.0 kB view details)

Uploaded CPython 3.13Windows ARM64

h2mm_c-2.1.2-cp313-cp313-win_amd64.whl (919.4 kB view details)

Uploaded CPython 3.13Windows x86-64

h2mm_c-2.1.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.3 MB view details)

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

h2mm_c-2.1.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (3.2 MB view details)

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

h2mm_c-2.1.2-cp313-cp313-macosx_11_0_arm64.whl (972.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

h2mm_c-2.1.2-cp313-cp313-macosx_10_13_x86_64.whl (997.1 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

h2mm_c-2.1.2-cp312-cp312-win_arm64.whl (862.3 kB view details)

Uploaded CPython 3.12Windows ARM64

h2mm_c-2.1.2-cp312-cp312-win_amd64.whl (918.4 kB view details)

Uploaded CPython 3.12Windows x86-64

h2mm_c-2.1.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.3 MB view details)

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

h2mm_c-2.1.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (3.2 MB view details)

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

h2mm_c-2.1.2-cp312-cp312-macosx_11_0_arm64.whl (972.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

h2mm_c-2.1.2-cp312-cp312-macosx_10_13_x86_64.whl (998.0 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

h2mm_c-2.1.2-cp311-cp311-win_arm64.whl (874.4 kB view details)

Uploaded CPython 3.11Windows ARM64

h2mm_c-2.1.2-cp311-cp311-win_amd64.whl (937.0 kB view details)

Uploaded CPython 3.11Windows x86-64

h2mm_c-2.1.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.4 MB view details)

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

h2mm_c-2.1.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (3.3 MB view details)

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

h2mm_c-2.1.2-cp311-cp311-macosx_11_0_arm64.whl (979.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.9+ x86-64

h2mm_c-2.1.2-cp310-cp310-win_amd64.whl (935.4 kB view details)

Uploaded CPython 3.10Windows x86-64

h2mm_c-2.1.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.2 MB view details)

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

h2mm_c-2.1.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (3.1 MB view details)

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

h2mm_c-2.1.2-cp310-cp310-macosx_11_0_arm64.whl (981.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.10macOS 10.9+ x86-64

h2mm_c-2.1.2-cp39-cp39-win_amd64.whl (936.5 kB view details)

Uploaded CPython 3.9Windows x86-64

h2mm_c-2.1.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.2 MB view details)

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

h2mm_c-2.1.2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (3.1 MB view details)

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

h2mm_c-2.1.2-cp39-cp39-macosx_11_0_arm64.whl (982.0 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

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

Uploaded CPython 3.9macOS 10.9+ x86-64

h2mm_c-2.1.2-cp38-cp38-win_amd64.whl (943.4 kB view details)

Uploaded CPython 3.8Windows x86-64

h2mm_c-2.1.2-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.4 MB view details)

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

h2mm_c-2.1.2-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (3.3 MB view details)

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

h2mm_c-2.1.2-cp38-cp38-macosx_11_0_arm64.whl (989.5 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

h2mm_c-2.1.2-cp38-cp38-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for h2mm_c-2.1.2.tar.gz
Algorithm Hash digest
SHA256 a7c9352e96232d9cb99808171b0640a72d041508e2bd8e0d47723a997e6319e2
MD5 70d386de433f313b8d8f3f5295982d46
BLAKE2b-256 0822825e9caca37bc8aa4b3b03759d5cddeec4251c63f1a4e835f59a90082fb1

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for h2mm_c-2.1.2-cp314-cp314t-win_arm64.whl
Algorithm Hash digest
SHA256 a49dbb06a2869d8ba7333e251807078db7d3c18f116bd8544bab29a0548bf660
MD5 932a771afabd087793e80b4f3ba3375c
BLAKE2b-256 de496bc5acb08d893b515dc9959041aeae565697cf94685f67ef432130a9b1db

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for h2mm_c-2.1.2-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 3e48acfe07ba8b622dcb4317732f7efb4ac6b855e1670083186ac6cc2aad3a95
MD5 8abc75e54b4cf79f932ed040bdb62c18
BLAKE2b-256 dec15dd5d997ef5d4c4448413fb55392abab8ebbdc7d35763028fe398c939771

See more details on using hashes here.

File details

Details for the file h2mm_c-2.1.2-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.1.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3abae577f45233620d8ed732ccb520c8a9fb0c30a5d580e5ebd2842e55723355
MD5 be382f03b307a099608dbaa41170ec23
BLAKE2b-256 b1896caa4e5b5a155799ac7ab3beb92ef780bea6d15e54858f86c41d937240f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 27c34691a1e64b8303748ce9c599384eb5445d487f8f628769ae32621418a833
MD5 43e76cad6a7c36ec6894c0105692cb94
BLAKE2b-256 094fcb170404ca324fc1c5d2d43def9494b7885fdc25f12ae53d74ba5336097f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 69e585a3daeff309d563d3fba9c159c7ebe894c8be69de069f11d1c94fb5d906
MD5 7be10b3b6a8db51e4adc2a6a21370fde
BLAKE2b-256 abee58e23ccdc9e031f73876f4d49e132a78be17a9267db7110292aafa91d16a

See more details on using hashes here.

File details

Details for the file h2mm_c-2.1.2-cp314-cp314t-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp314-cp314t-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 47402e27f94a8ff463b6d24ed4d47df2fd32567c85ed859ea9045e807a40c19f
MD5 836bfcb8365f8cf32a44dd429c592ae6
BLAKE2b-256 d16f5a3a6ab523da0cfc0ad320d99f2f53d35f8e93c9709ddab8db8790324dee

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for h2mm_c-2.1.2-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 74939c7d69eef11b5e9cab4fdb8a0df9b4274637d21442673ede69ba58f767d8
MD5 d2a9688c2dad55d709fc3d7486646fc9
BLAKE2b-256 9a97117ace4b952ad1cbae8b827aa24ce1071a3888cca93f1432c2a796e371bf

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for h2mm_c-2.1.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 0541935713479dae7d3baabe8cac1a6e3a6427b9bed55966d2a4f1085f86a337
MD5 f443cd234b302e3e1f2ee46254859fe1
BLAKE2b-256 45694e4f8fa95da29305ef88a65032d93c5cd6e1cc46aa458f07e083a6506f8e

See more details on using hashes here.

File details

Details for the file h2mm_c-2.1.2-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.1.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7a34b23155618bf32bd0b306b6c50c5a72259756af9587c2fbc25ab92546e9b6
MD5 c149fab53a9ab793f1759af3c254c186
BLAKE2b-256 133cf20e9e8facee02d9a4ce22ce7e88ee112d6197833c2996ebadc3bdcd31ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 85c779d0c5ce5ff3f94bf9f4c16b07bfadd6efd862411892c0b508f3df6665a6
MD5 f5246bf22b52b5636c9b80600578a1bc
BLAKE2b-256 eec79ebc491bf2a05981e1f8d3460b9a001977757ce7fbe796c88cd8118235f2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d4fa006bdd658dfb4f1194e6940fa7c1752ece50f27c81b420fdedef41f12ac7
MD5 50d6e3823ab4de667148c7de66f34180
BLAKE2b-256 552c9920add963ffc5495600c25eb6bde6d70601fc4cb28d8cceda8fb7ac9de9

See more details on using hashes here.

File details

Details for the file h2mm_c-2.1.2-cp314-cp314-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp314-cp314-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 cbc26a38657fe733fc89c9cfe7c67c4d0045309c236df1de5f5f2f644645846a
MD5 be6bbee93ac1e053686285d2382f714c
BLAKE2b-256 b4d40a46e70dada88e6e579b3e9428b85c34e024e4cd369b6571e4a8c95b8223

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for h2mm_c-2.1.2-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 4cc4e127d72426eeb77a1c7b19f08778336434d2be4a79aa1ea2e394554beec7
MD5 c1c13953a3215f2665488baff5005ddc
BLAKE2b-256 fc8732a696624dba248edbea94b5012a091151a5f9d7ce507f633d2386e62841

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for h2mm_c-2.1.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 066905037bf44cd444c55fb97af00fb4ecfd7286b6631df78c6e79a9e9fa7ce1
MD5 a643694349e70915755477a56d75f07d
BLAKE2b-256 6aa2dbf6cc6302b311526df32d6d937d98a039eb25b168f4fe252ccd1a1c50fa

See more details on using hashes here.

File details

Details for the file h2mm_c-2.1.2-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.1.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 750d3403ab4780aa2348a8ef468254914b945a169c9c3a49b8efc20dc0254ed4
MD5 9494056b4898c5adb123c8bee740a084
BLAKE2b-256 c62572bd1fd33b57c6db547b204cb9f112609555ecc36e4ac1e1ef5649a1997b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 df10706f711f837a0744ce6f6b9a1211f170e9fa49cc51c8f3cad1e0939d306c
MD5 50cff75249153153185f9517389869b7
BLAKE2b-256 9e997e925cdb5ca0e8685e0f02e3ef6860d7e3910da0c9c4f4358cd42729135a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 26d7fe34fb8caf1cd789113070c45ce8ab67fd8750fe52ae3565f6d36f56e5d2
MD5 191fab47ee09bf57a11f375a05662456
BLAKE2b-256 f90942a31013cdb3e2d83e64b3d2d0e6dc018b0c706df37dcd3cedeb9bfb1085

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 5d4e8308702e10ec3e8584c6a60b57e46faf68669defe4c15e9875fa0b633912
MD5 96cc269a58d672a22de679878cd86374
BLAKE2b-256 91357ef220551088f5ea2958df2925141d17686f3dec7154e7610ad6156453f7

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for h2mm_c-2.1.2-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 deb891675ebbe1a1aa1bdbc3cdddd2cdc879789e16b333375056f5c926d16e5a
MD5 bf376c2f896105f062c2d6e2323c6468
BLAKE2b-256 8aeb94657e73d88a8aa8b980cf247a11de1d656c29a098db9fae9126bbb1f10e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for h2mm_c-2.1.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4d81f4c356575056cc0ef67ce62e0914250cc4a223f11c1c2cf0a78f286c360f
MD5 6a8e2d227cb38d7e8f2dbbb027b44983
BLAKE2b-256 503398578b5cb02abbbf381b30f35debf397f69cf0b65da4bb2e1135d2f1da56

See more details on using hashes here.

File details

Details for the file h2mm_c-2.1.2-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.1.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 da5aa0ce588e5e2bf152205dab0385e256be6f550e579b874860766abb27a957
MD5 d08c94905bed1d1825874f68a557b208
BLAKE2b-256 6727729bfb84c5662e7a55d5832ec7202793da3062594ae0627c88224b16f0c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6bd94759d58d4d1c022d05dfabbf863e916c19a6530d474ecf42520b8692a6a9
MD5 782f5d49f37e4ad6048f98c88318c9cf
BLAKE2b-256 efe1b1e48a1a71bd1af9cf71842c3d2d9cd501818aad108bab59c36c83838852

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b8a613c6fd8ca73cecaea0a8762d42a0afcde48be3c44da66f65d3108430a3a3
MD5 8488ea5dcd2daaf360d179dedfc77f2e
BLAKE2b-256 64d73264e79fdcf0bf29e83a0602c4c5d77f8a83ee8938168cfb9bd1ff3406b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 e73c4c0f94e3466b411c111e68a90d6883ba1911bc0ea3b9318230801ab12abe
MD5 0dc9fa64f2a8d8da09066555e19eb933
BLAKE2b-256 235d219cf4544e8ad4c0fad2f12f8f1bd81273314d7d90e5c81970c706b92bc6

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for h2mm_c-2.1.2-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 3981255fbef6a9bb52e8ef6f708e20951151d0d24a981af6d4d4f697100718a2
MD5 bba7673fb3a44aee2050ee63f7c2edfe
BLAKE2b-256 a105fd7fecda5a082112da44678217319065103e09087697d117bac145bf056c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for h2mm_c-2.1.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 670017d9724b845a1fe13cc02e0b4e41a9499745b0d0fcd7b9e0772cf0040717
MD5 05968860e49b5bb6e883944ec4e2b84e
BLAKE2b-256 ec1023349c1dd7e00a2caaf8e6ef67a72e6b4b39948d23fbc771fc8dcccd06f5

See more details on using hashes here.

File details

Details for the file h2mm_c-2.1.2-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.1.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 640a8aff7c5a72347393df3ad0317d25615dbfc0b64db26bb6d69c7dd29cb18f
MD5 95ef19516751ed5c3fca3087679fb521
BLAKE2b-256 c67583756e054bc581d42da3f56b8547f3116e57053f1e1ceb48370c0d843889

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 142f5f6d54e8931deb3c88ea82d2056fa286c5a4025035fd249d7ce448df8e31
MD5 fb8512acfce2a6f517839449c79a6792
BLAKE2b-256 c32ccd266a9fd64057d9e92138cbdce0c69e4470451827e9456169ab58bda9e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fa66a330ac936840ba1708b8f654056aef73fa5cb171079c960485a9fe840d07
MD5 adfe15bf5b6c03bfcfdcc38e3a052013
BLAKE2b-256 6254206cafccbdfc85958a347c635eeda249ccf55b6a05e6e8f55890b9820343

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5cf95e262f5ef6962e19d61f1c587ede0876439b067ba8606adbf0f1c7ad282b
MD5 8ae83ccf1106b811ff4db4856160382e
BLAKE2b-256 92ab20a27ca5fd16947a1722f303f5bf511962e87a7213ad685f0ace397fbd8f

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for h2mm_c-2.1.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4c6e7d2be6f8aa387ce5fe9fff661571b836f4c9cb52898d5db21fe0e2a2bc70
MD5 2d15f94980ac2c2f851cc7530327da3f
BLAKE2b-256 462d88e55f6ba1277fe29062933546d118b82158ca3900af82baaa002c213019

See more details on using hashes here.

File details

Details for the file h2mm_c-2.1.2-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.1.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 42b2c55324fea90a406321a581b31b8dd31d0b3da2cf63e7698c58b99f5ca5ce
MD5 47d539513511418f0e672acd68eeeaa4
BLAKE2b-256 5fec1ab4ff178dda9047cd4f37567a80964e83650cbbe81e1394045d42e6c098

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7e76ca341f1a2bce04fabd171e3e04852c7805c1c2aa8394294ceb54ebda0fa4
MD5 0b7e167d1e9aa5799812f287fd93eb75
BLAKE2b-256 40fea696b28442f02ebf292d5921fe015290e37b1d83d0312eb912308d590865

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ef1410414e28cb02c03494de2faca744e3b29f9219940050041a65a56fb40096
MD5 06e3652e314f43f9f627850becdc6397
BLAKE2b-256 bd22984ad7d5d475282c2a16960bd40cbdb0ff7ef4d71f7952501c57f3c4b441

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 333e61e0e3180d0dd779c1c85f1f18ffb15b04b9dcad575113a960aa6f8bb4d5
MD5 2173c5d651e9e57d6ab9d71368ffa48c
BLAKE2b-256 aa7113c039b59c87878058bba8b2637c1429ab2bafd6b9c21047e815e613248a

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for h2mm_c-2.1.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 0b571f733abc7f17140aa690178106fc0f30285d94d5ab1440048a9d6c9670bc
MD5 42034adcaf8f26cfdb1b3c8b78f15545
BLAKE2b-256 f520e41eee7b4f39ecf692b5d7565df7d304130926efc9f09f40b0d35958d828

See more details on using hashes here.

File details

Details for the file h2mm_c-2.1.2-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.1.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f35d26e8f0df76f499b412d2f2442ec6336bb9bf322e8270d1053e35ffaf2c13
MD5 083eae00d9220712272837ba9c106ec4
BLAKE2b-256 62708884dd637823e4cb64fba9b858c2fa6ffd50fafe6e8eac4c1b8db70f1901

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 af38744f8a36e9508465281079c32d08f93b2db79b6b5fd19c25168dabaeaaed
MD5 ed384f51de775a80bc32af771084e525
BLAKE2b-256 a2575683b0e7ee2833a0620081de87d3b5872807c65f362d781ff55478c323ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b38bab503621601a331b60f88ceedaf5f7fc943f9a73246b0e239ee07252cb7f
MD5 75c7db4e9df811763c9ac07516f06d5a
BLAKE2b-256 4097db0b486c290e9edd2a5b9822d05137b77af70dcbd7980244c03a38a9bcc7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ea3570058245512692d3229a7b384bdf30afafcbdb9392c6ff83d0686fedd4d9
MD5 196f9b76f746342f67a36db8505b5b58
BLAKE2b-256 253bfa448643b41a4e341374a0f0e82c0d9441f8fdaf292a2cd88bc29059a09d

See more details on using hashes here.

File details

Details for the file h2mm_c-2.1.2-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: h2mm_c-2.1.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 943.4 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for h2mm_c-2.1.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 0582b8c17782ac7f365450c1df5d9536bf9787a21b0603f954a1a696e71ecc72
MD5 30833c9157359b92dc3ab9b6c8578458
BLAKE2b-256 21a5eaeeb43586449ce52bf039c8ecb2c8afde05ecf7db5c2f4ed2e5cabdd20c

See more details on using hashes here.

File details

Details for the file h2mm_c-2.1.2-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 04eba628f94f77007b6a1e2e8fa91993c937440f3e5832081ef0583e569449c9
MD5 70914a6f2a807fe3d12b10608d4dc527
BLAKE2b-256 376aac6414041f19508b4612288ec297be20bd9a525c201d16beb91c136fc761

See more details on using hashes here.

File details

Details for the file h2mm_c-2.1.2-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fb39ef421efe2dda844ad22d8d7048065d147d25f9a7ac1b12cbe98905bfcef6
MD5 8e9e285e3ca22e0b91400707f66a3ec3
BLAKE2b-256 19787bc7e1ab6c1e9a1016d429b7a84ab50903b590efe0cfe08f8faf29040c76

See more details on using hashes here.

File details

Details for the file h2mm_c-2.1.2-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a120ecb811ef4115246ea9cbd921d750ea4564382482ee8154d571d5db8d4eb3
MD5 67af47bd8c141ae568d18e5026b35531
BLAKE2b-256 b0e79648771ca68efd05b2094b86a23cfac792174be6b12104eaea7db54b7267

See more details on using hashes here.

File details

Details for the file h2mm_c-2.1.2-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for h2mm_c-2.1.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fc51592c08b21198a1808c24bf4cd80c248f4ceb980f23c6aa5a3e0f8b96305b
MD5 83eea7826fbc6a90701516a63c2addee
BLAKE2b-256 15313c09ffabfe501fac94d2c0dbb8504a965e31df6c8aec709342d55dbbbfda

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