Skip to main content

Python bindings for Mesh-based Monte Carlo (MMC) photon transport simulator

Project description

PMMC - Python bindings for Mesh-based Monte Carlo (MMC) photon transport simulator

Linux Python Module
MacOS Python Module
Windows Python Module

This module provides a Python binding for Mesh-based Monte Carlo (MMC). For other binaries, including the standalone executable and the MATLAB bindings, see our website.

Mesh-based Monte Carlo (MMC) is a 3D Monte Carlo (MC) simulation software for photon transport in complex turbid media. MMC combines the strengths of the MC-based technique and the finite-element (FE) method: on the one hand, it can handle general media, including low-scattering ones, as in the MC method; on the other hand, it can use an FE-like tetrahedral mesh to represent curved boundaries and complex structures, making it even more accurate, flexible, and memory efficient. MMC uses the state-of-the-art ray-tracing techniques to simulate photon propagation in a mesh space. It has been extensively optimized for excellent computational efficiency and portability.

How to Install

Runtime Dependencies

  • CPU or GPU: An OpenCL-capable CPU or GPU; most modern CPUs or GPUs support OpenCL - an industrial-standard heterogeneous computing library and specification (https://www.khronos.org/opencl/)
  • OpenCL CPU or GPU runtime/driver: Both NVIDIA and AMD GPU graphics drivers should contain out-of-box OpenCL runtimes or drivers; for Intel GPUs, one should install additional OpenCL runtime support from https://github.com/intel/compute-runtime or install the intel-opencl-icd package if the OS provides (such as Ubuntu 22.04); one can also install an open-source OpenCL runtime POCL, using package manager such as sudo apt-get install pocl-opencl-icd. However, POCL's support is largely limited to CPUs. You do not need to install CUDA SDK to use pmmc.
  • Python: Python 3.6 and newer is required. Python 2 is not supported.
  • numpy: Used to pass/receive volumetric information to/from pmmc. To install, use either conda or pip package managers: pip install numpy or conda install numpy
  • iso2mesh is a easy-to-use mesh generator for creating the tetrahedral meshed domain for pmmc, install it with pip install iso2mesh
  • (optional) jdata: Only needed to read/write JNIfTI output files. To install, use pip: pip install jdata on all operating systems; For Debian-based Linux distributions, you can also install to the system interpreter using apt-get: sudo apt-get install python3-jdata. See https://pypi.org/project/jdata/ for more details.
  • (optional) bjdata: Only needed to read/write BJData/UBJSON files. To install, run pip install bjdata on all operating systems; For Debian-based Linux distributions, you can also install to the system interpreter using apt-get: sudo apt-get install python3-bjdata. See https://pypi.org/project/bjdata/ for more details.
  • (optional) matplotlib: For plotting the results. To install, run either pip install matplotlib or conda install matplotlib

Build Instructions

Build Dependencies

  • Operating System: pmmc and mmc can be compiled on most OSes, including Windows, Linux and MacOS.

  • OpenCL library: compiling mmc or pmmc requires to link with libOpenCL.so on Linux, or libOpenCL.dylib on MacOS or OpenCL.dll on Windows. These libraries should have been installed by either graphics driver or OpenCL runtimes.

  • Python Interpreter: Python 3.6 or above. The pip Python package manager and the wheel package (available via pip) are not required but recommended.

  • C/C++ Compiler: pmmc can be compiled using a wide variety of C compilers, including

    • GNU GCC for Linux, MacOS (intalled via MacPorts or brew), and Windows (installed via msys2, mingw64 or cygwin64)
    • Microsoft Visual Studio C/C++ Compiler for Windows.
    • Apple Clang for macOS, available via Xcode.

    Refer to each OS's online documentations for more in-depth information on how to install these compilers. MacOS provides built-in OpenCL library support.

  • OpenMP: The installed C/C++ Compiler should have support for OpenMP. GCC and Microsoft Visual Studio compiler support OpenMP out of the box. Apple Clang, however, requires manual installation of OpenMP libraries for Apple Clang. The easiest way to do this is via the Brew package manager, preferably after selecting the correct Xcode version:

brew install libomp
brew link --force libomp
  • CMake: CMake version 3.15 and later is required. Refer to the CMake website for more information on how to download. CMake is also widely available on package managers across all operating systems.

Build Steps

  1. Ensure that cmake, python and the C/C++ compiler are all located over your PATH. This can be queried via echo $env:PATH on Windows or echo $PATH on Linux. If not, locate them and add their folder to the PATH.

  2. Clone the repository and switch to the pmmc/ folder:

git clone --recursive https://github.com/fangq/mmc.git
cd mmc/pmmc
  1. One can run python3 setup.py install or python3 -m pip install . to both locally build and install the module

  2. If one only wants to locally build the module, one should run python3 -m pip wheel .

  3. If the binary module is successfully built locally, you should see a binary wheel file pmmc-X.X.X-cpXX-cpXX-*.whl stored inside the mmc/pmmc folder. You can install this wheel package using python3 -m pip install --force-reinstall pmmc-*.whl to force installing this locally compiled pmmc module and overwrite any previously installed versions.

How to use

The PMMC module is easy to use. You can use the pmmc.gpuinfo() function to first verify if you have NVIDIA/CUDA compatible GPUs installed; if there are NVIDIA GPUs detected, you can then call the run() function to launch a photon simulation.

A simulation can be defined conveniently in two approaches - a one-liner and a two-liner:

  • For the one-liner, one simply pass on each MMC simulation setting as positional argument. The supported setting names are compatible to nearly all the input fields for the MATLAB version of MMC - MMCLAB)
import pmmc
import numpy as np
import matplotlib.pyplot as plt

import iso2mesh as i2m
node, face, elem = i2m.meshabox([0, 0, 0], [60, 60, 60], 10, 100)  # create a mesh

gpus = pmmc.gpuinfo()  # list all available GPUs

res = pmmc.run(nphoton=1000000, node=node, elem=elem, elemprop=np.ones(elem.shape[0]), tstart=0, tend=5e-9,
               tstep=5e-9, srcpos=[30,30,0], srcdir=[0,0,1], prop=np.array([[0, 0, 1, 1], [0.005, 1, 0.01, 1.37]]))
res['flux'].shape

plt.imshow(np.log10(res['flux'][30,:, :].squeeze()))
plt.show()
  • Alternatively, one can also define a Python dict object containing each setting as a key, and pass on the dict object to pmmc.run()
import pmmc
import numpy as np
cfg = {'nphoton': 1000000, 'node': node, 'elem': elem, 'elemprop': np.ones(elem.shape[0]), 'tstart':0, 'tend':5e-9, 'tstep':5e-9,
       'srcpos': [30,30,0], 'srcdir':[0,0,1], 'prop':[[0,0,1,1],[0.005,1,0.01,1.37]]}
res = pmmc.run(cfg)

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

pmmc-0.2.1-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (334.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pmmc-0.2.1-pp310-pypy310_pp73-win_amd64.whl (197.6 kB view details)

Uploaded PyPyWindows x86-64

pmmc-0.2.1-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (333.8 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pmmc-0.2.1-pp310-pypy310_pp73-macosx_13_0_x86_64.whl (185.5 kB view details)

Uploaded PyPymacOS 13.0+ x86-64

pmmc-0.2.1-pp39-pypy39_pp73-win_amd64.whl (197.5 kB view details)

Uploaded PyPyWindows x86-64

pmmc-0.2.1-pp39-pypy39_pp73-macosx_13_0_x86_64.whl (185.4 kB view details)

Uploaded PyPymacOS 13.0+ x86-64

pmmc-0.2.1-pp38-pypy38_pp73-win_amd64.whl (197.6 kB view details)

Uploaded PyPyWindows x86-64

pmmc-0.2.1-pp38-pypy38_pp73-macosx_13_0_x86_64.whl (185.5 kB view details)

Uploaded PyPymacOS 13.0+ x86-64

pmmc-0.2.1-pp37-pypy37_pp73-win_amd64.whl (208.3 kB view details)

Uploaded PyPyWindows x86-64

pmmc-0.2.1-pp37-pypy37_pp73-macosx_13_0_x86_64.whl (185.0 kB view details)

Uploaded PyPymacOS 13.0+ x86-64

pmmc-0.2.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (334.0 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

pmmc-0.2.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (334.4 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

pmmc-0.2.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (334.0 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

pmmc-0.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (334.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pmmc-0.2.1-cp313-cp313-macosx_13_0_universal2.whl (186.9 kB view details)

Uploaded CPython 3.13macOS 13.0+ universal2 (ARM64, x86-64)

pmmc-0.2.1-cp312-cp312-win_amd64.whl (198.3 kB view details)

Uploaded CPython 3.12Windows x86-64

pmmc-0.2.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (334.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pmmc-0.2.1-cp312-cp312-macosx_13_0_universal2.whl (186.9 kB view details)

Uploaded CPython 3.12macOS 13.0+ universal2 (ARM64, x86-64)

pmmc-0.2.1-cp311-cp311-win_amd64.whl (199.6 kB view details)

Uploaded CPython 3.11Windows x86-64

pmmc-0.2.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (335.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pmmc-0.2.1-cp311-cp311-macosx_13_0_universal2.whl (188.3 kB view details)

Uploaded CPython 3.11macOS 13.0+ universal2 (ARM64, x86-64)

pmmc-0.2.1-cp310-cp310-win_amd64.whl (198.3 kB view details)

Uploaded CPython 3.10Windows x86-64

pmmc-0.2.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (333.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pmmc-0.2.1-cp310-cp310-macosx_13_0_x86_64.whl (187.0 kB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

pmmc-0.2.1-cp39-cp39-win_amd64.whl (198.5 kB view details)

Uploaded CPython 3.9Windows x86-64

pmmc-0.2.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (334.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pmmc-0.2.1-cp39-cp39-macosx_13_0_x86_64.whl (187.0 kB view details)

Uploaded CPython 3.9macOS 13.0+ x86-64

pmmc-0.2.1-cp38-cp38-win_amd64.whl (198.3 kB view details)

Uploaded CPython 3.8Windows x86-64

pmmc-0.2.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (333.7 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

pmmc-0.2.1-cp38-cp38-macosx_13_0_x86_64.whl (186.9 kB view details)

Uploaded CPython 3.8macOS 13.0+ x86-64

pmmc-0.2.1-cp37-cp37m-win_amd64.whl (200.5 kB view details)

Uploaded CPython 3.7mWindows x86-64

pmmc-0.2.1-cp37-cp37m-macosx_13_0_x86_64.whl (185.8 kB view details)

Uploaded CPython 3.7mmacOS 13.0+ x86-64

pmmc-0.2.1-cp36-cp36m-win_amd64.whl (200.4 kB view details)

Uploaded CPython 3.6mWindows x86-64

pmmc-0.2.1-cp36-cp36m-macosx_13_0_x86_64.whl (185.8 kB view details)

Uploaded CPython 3.6mmacOS 13.0+ x86-64

File details

Details for the file pmmc-0.2.1-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 eda1a0f1063e3af5a7f81819565c565425e44cfbc4f2fdde30a6e986a545e8ff
MD5 396111d99ff4cef5730a73664a54e5a0
BLAKE2b-256 d5f0bf6e6902736ae49ed5da03326f1c3dd379eaf9bc3b425ac535c32fd5aa50

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 cd6c35d968aec078761e50ade16893cd2b9a00a3258bed8b44e2347ba016c806
MD5 909d251884ef42d1f2744b8c5cd3525a
BLAKE2b-256 b807a1c41a31f0b2388d3a6ffbbb32af1914012e758077df8edabed54d65994f

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 4d4398b5b3d744322fb4847b3bed6d5f15c97d04b4325deebec32dfbfaf79b07
MD5 6d1fdddf85a4fa0a187873563618b4e3
BLAKE2b-256 5dfcaa0ca0b7c708ef193ed085b5f887b915f6d7c39f0ea307cb0415fa23f63e

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-pp310-pypy310_pp73-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-pp310-pypy310_pp73-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 7449e13a515098830434433b4fedc67f0fed2b3631a61ebf1d295363b54912c2
MD5 8fb8fdb77be8a750fac9b1944c94b289
BLAKE2b-256 d133e506fee3cb67fdaa07af702db3f63b7998d6cbf8699fc4e07c4ef2985af4

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-pp39-pypy39_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 9a726ca841b18ba4fa5f59313aeeb9f22e3e22654cfdf7e7e4ae642912d6269c
MD5 1023fb7b8a04b2f08f0057a9936a80f9
BLAKE2b-256 8bdc119f3f2ae78b936f4fb6020412e114f7d8ff9cd4eab4928d159e43ae5c6a

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-pp39-pypy39_pp73-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-pp39-pypy39_pp73-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 7967f279b5aa068c6189559b746af8aaf3ad562f158bbd23dfef72ff789aaf1a
MD5 e646b7fac5809dbd35c05464745dc5c1
BLAKE2b-256 97592ea49a916dafa661e9bdd8f1938f2d80f02b9e91a9b203578534b45da5f8

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-pp38-pypy38_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 39a107bb1d60f41c897559e3269c44a917a85b70546a96dd8592e1a9e8643d3a
MD5 96c3141b8815b10441dfae18bdcea507
BLAKE2b-256 4a15cb548ebcff3a96eb1c463ca6e8c67756fef5661bb1171691f5146f341354

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-pp38-pypy38_pp73-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-pp38-pypy38_pp73-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 408ac8e29ee7116cd0e1ca0fbcd8a4f004aa6cf6ff0184796c12210c05e37395
MD5 f413c5f3923f84d6d5c8b072dd48b32f
BLAKE2b-256 8d8070b32191325d1387bffa28531045bcffff82f0d971e719db261a2634f6a1

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-pp37-pypy37_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-pp37-pypy37_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 18b7ff95da7473f91df07b51fad7e8fc641586558f50ce0415d4307812311aea
MD5 8757d92a421037505ee08597be057c93
BLAKE2b-256 2298d03dd29c0912a6ebe2082c183a5fa78b7966501272cc27233422500b7c46

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-pp37-pypy37_pp73-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-pp37-pypy37_pp73-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 3dc18800e3564211b4e89cb355181dd2c4f730b4e5bba8ee49d797cbf1a21fd5
MD5 cc9aec9c37656bcfda434432eb87e22e
BLAKE2b-256 bc9e1b8a43587cfb0ae42072beaff0867b2179e879242293a04a7b59eec29cb5

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 292dc6ea332a556dc1b0dc84432edeaf2f60346c6767a570f77362a31785e0c9
MD5 5ef84e4b4dfd1493b0dbf146a4278619
BLAKE2b-256 82d17858a015f0043ab986c9f3b9e214667c4153be15e3b67a82f421e44aca65

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 8ee15af19b3da1d3060a19c1f293650e9e96da2f7196a674634512b09f10b94c
MD5 e10fb3fdda295649782280b60cd67f55
BLAKE2b-256 1313e7b2044a7ffb5b32bd4f558047a07e958be193032b3e17ce66379f25e95d

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 854b4d77e50a971b385d6a7e41786bd94c011c1da83128c2793de95515a04255
MD5 a345a2bfd99c56cca3760123cf29765e
BLAKE2b-256 b0caecddbc1f5f5815e789eeea40e3ffc5d09e6540c02990577ee3fe05454a92

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e01e9772043f77b94b4c13016a941ea1223097fd82d10a202f0be0f7631affd5
MD5 cc312fc5bb878a91e5b24df523dee788
BLAKE2b-256 688b53939912d3c4cc01ae746b941327d5fe3334b7bf1055c9b9a5a0eea8ee44

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp313-cp313-macosx_13_0_universal2.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-cp313-cp313-macosx_13_0_universal2.whl
Algorithm Hash digest
SHA256 b2df0748ead02d6d47dbed281d7aa922bf8e29b9b7a0f99b455d944a0a07bf40
MD5 eeb51dc9ef4d2e8a27f88a1d7248290d
BLAKE2b-256 8b6cee3ae237c755e974e50551fbc7131eed17cec030eecd990e9efa32ac514f

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pmmc-0.2.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 198.3 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pmmc-0.2.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5a52614856f911c82d5c62b4a681e1f5dbf4d94064f0177b784761232f197ce3
MD5 5e53caceec90d1dad48312ea5dc1e1e0
BLAKE2b-256 b18fe0aa420e11873cb159516f3131009ff84645c87ef8ed82896acfa0d567f3

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 ff66390144a17bd99028715d88b6fd64aef915cadd25fb6b2c609c4c7ffa76cd
MD5 1f0669cff79b3f736922f4f63c3142c8
BLAKE2b-256 f26be5c5e3ba3e3a19047def7fd41597cb037ef36e3c2223b1c1b6fff19b7b9c

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp312-cp312-macosx_13_0_universal2.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-cp312-cp312-macosx_13_0_universal2.whl
Algorithm Hash digest
SHA256 ae1531c5bcb14cf1b1df60a813d484a486d4df254164e38f6e58ec66c8e4f3b1
MD5 1095ac931a4f218096c969f41929497a
BLAKE2b-256 8c4059dfb791920ee2aa3cd31ef0cea68936817b6a9cca75f52d13d5bbab9a58

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pmmc-0.2.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 199.6 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pmmc-0.2.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 898b7e7aad3219aa7fe4e0af9f69491fbb81008f8391653d73e326d2872695ba
MD5 3ba590f6bcd747ab768e512df75d5904
BLAKE2b-256 04f3476ad79a89512ecb2cf959123fa64def1edca8b95f21bf61e93352725597

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 50b0772d65bc16fa9b57416a178db3469eb2bc175166beeee5a819284c109b24
MD5 26f9051661c0ce6994dd6490dd1af108
BLAKE2b-256 3a7e96b00cff58d82b235d5a3cbf66d99fbebea117784570c36393d4157c8fd7

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp311-cp311-macosx_13_0_universal2.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-cp311-cp311-macosx_13_0_universal2.whl
Algorithm Hash digest
SHA256 20eca756b187b07578157786c6a25e6c470b18ed1f1941038e4d90bcd737d61c
MD5 9a1397094d51c740a3d3c2526e137c4e
BLAKE2b-256 b824bc71a77cc99e4e398d48051f471670bf4459ae4ef29af893dab6ba5652a3

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pmmc-0.2.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 198.3 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pmmc-0.2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 642842b4f68ce792d548be10477f6bd052d6c2e6d5b81cc4c55160fc57a7688f
MD5 de7626698558175067926c112a459750
BLAKE2b-256 896cb51ef888b49ca1a8fb9a53e732544c92e2ddce773abb39538f8a50200319

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 22fb0b977ccd6e3cbb36ea87dabf675cc838bd1850d5bb46fb625008ddd7ef17
MD5 94c93b05f7981966f33299c0055ef43c
BLAKE2b-256 cc58781b180bb8856153649715a3891a9a278d3797bba2befc4210154d25d067

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 f0c8c68d46ad75bddf9ee6306d64d863a654cda5fe9e153f6aa721719a103532
MD5 d8dc6000a3c91ec25a6d74174e01923b
BLAKE2b-256 2ecfea1922428f37c47767d94dddada47e87d793209dc09537e99efbda161ba4

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pmmc-0.2.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 198.5 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pmmc-0.2.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 ace455a7773013c67917ec211e01ab883a99f38f5e5c7888ebb0480430c2a3e9
MD5 aad08de1e684d9981eb4dc4a7754b886
BLAKE2b-256 7d8e2254dad12a6de17ded3c5b6bc802bf50b87bccfb7575b6275d105383a8af

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 79369acf4ba1a666e440d4c4e71f51ab3dfa574319262ce629953722c78c9ec1
MD5 7fdb8d88f45e573c7b0fb40419cab5d7
BLAKE2b-256 65c1bf552ec1b0916ad4f3578fd6ed909d60b4bbd793d3936871d3dd52c47824

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp39-cp39-macosx_13_0_x86_64.whl.

File metadata

  • Download URL: pmmc-0.2.1-cp39-cp39-macosx_13_0_x86_64.whl
  • Upload date:
  • Size: 187.0 kB
  • Tags: CPython 3.9, macOS 13.0+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pmmc-0.2.1-cp39-cp39-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 4b03354b0ca93e1c825d0c7b1b383e8aaf6add7acf94c34790bddf51aa3ab1f4
MD5 75b0b544c21b507b2683800f430881ab
BLAKE2b-256 4e4aa9821e2f4bdb8c5f2d2e348973f3c7ed02667603ade414ac8c3466b1f961

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: pmmc-0.2.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 198.3 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pmmc-0.2.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 224555cebfa73a759d5981709da5a05526b607db6a4ec9b99a54fe5bf0f41ae7
MD5 401418ed8edb68a2ed7492060faf9183
BLAKE2b-256 a3b32e38cd8c01b8319e0554320b3c6bfdda81c14851278f082fbc4faec9c62e

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 fcd07022dbb8401967778c533b00a792c995a1db1934d5b622a06492c23abfec
MD5 a30cf0f64d0029283934b59f742dd5d7
BLAKE2b-256 c9d699428453d0691acf30f5ff08e243cd5cf139b1c163dd25400e618dc023f4

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp38-cp38-macosx_13_0_x86_64.whl.

File metadata

  • Download URL: pmmc-0.2.1-cp38-cp38-macosx_13_0_x86_64.whl
  • Upload date:
  • Size: 186.9 kB
  • Tags: CPython 3.8, macOS 13.0+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pmmc-0.2.1-cp38-cp38-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 dae421ed32fec8c4432fb916ee233002521e210c2871870fab0325f0f58b2cb7
MD5 37c53fbdd3e5b29be0aba7af243ae8e0
BLAKE2b-256 3b0b314b52d53746aa0f8282dad0bc1c896a8f02f6b5fd200e5ebb87d6b3adf5

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: pmmc-0.2.1-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 200.5 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pmmc-0.2.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 6d803180afe75859d4710715ea1bfc5ce3d69afa24c440097bb930d1ec488221
MD5 58dd96800a5b4c3baf239b38bd9323e6
BLAKE2b-256 779bc3084c9412c87587dd4ff8f921bcde4ff2b9b1112a5a0fd944231efeb4d2

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp37-cp37m-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-cp37-cp37m-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 5ad92a9c4eb3a1cfa6c0ca248433affa398e39562221eeab64424825338b224a
MD5 fa6c602c032a706d3ef23817bae05844
BLAKE2b-256 51f64fdecc3b4814f9d42a0d92a0067e0850997e33d4d8cbbc731a98c097ba5d

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: pmmc-0.2.1-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 200.4 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pmmc-0.2.1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 06434ed331382c8122d24a2a259b82625d38cca7c5f7c9108cb571bd7a52690d
MD5 daf19f8ca894a1c3adf4e65cab759818
BLAKE2b-256 e6e2c44e7c661996ed09e00bed7a0d3f8357072eb4774ebf8046eb850af3c429

See more details on using hashes here.

File details

Details for the file pmmc-0.2.1-cp36-cp36m-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pmmc-0.2.1-cp36-cp36m-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 8f111e329edba5cd56a0b48b047b93a63d4172ae3c60adfcc13b0b1d2b424702
MD5 b143e078a0eb3bf17d7fe17757930ca4
BLAKE2b-256 6e46c02909214cda6a58ff1554e644522d5732ff112b54e41c0599de6eb02428

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