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
  • pyvista and tetgen are needed to create tetrahedral mesh. To install, use pip install pyvista tetgen
  • (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
    
  3. One can run python3 setup.py install or python3 -m pip install . to both locally build and install the module

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

  5. 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.

import pyvista as pv
import tetgen

box = pv.Box(bounds=(0, 60, 0, 60, 0, 60))
box_tri = box.triangulate()
tet = tetgen.TetGen(box_tri)
node, elem = tet.tetrahedralize(order=1, minratio=1.5, mindihedral=20, switches='pq1.2a50')
elem = elem + 1

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

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,:, :]))
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.1.1-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (335.3 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pmmc-0.1.1-pp310-pypy310_pp73-win_amd64.whl (197.9 kB view details)

Uploaded PyPyWindows x86-64

pmmc-0.1.1-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (334.1 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pmmc-0.1.1-pp310-pypy310_pp73-macosx_13_0_x86_64.whl (185.8 kB view details)

Uploaded PyPymacOS 13.0+ x86-64

pmmc-0.1.1-pp39-pypy39_pp73-win_amd64.whl (197.7 kB view details)

Uploaded PyPyWindows x86-64

pmmc-0.1.1-pp39-pypy39_pp73-macosx_13_0_x86_64.whl (185.7 kB view details)

Uploaded PyPymacOS 13.0+ x86-64

pmmc-0.1.1-pp38-pypy38_pp73-win_amd64.whl (198.1 kB view details)

Uploaded PyPyWindows x86-64

pmmc-0.1.1-pp38-pypy38_pp73-macosx_13_0_x86_64.whl (185.8 kB view details)

Uploaded PyPymacOS 13.0+ x86-64

pmmc-0.1.1-pp37-pypy37_pp73-win_amd64.whl (208.4 kB view details)

Uploaded PyPyWindows x86-64

pmmc-0.1.1-pp37-pypy37_pp73-macosx_13_0_x86_64.whl (185.3 kB view details)

Uploaded PyPymacOS 13.0+ x86-64

pmmc-0.1.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (334.7 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

pmmc-0.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (334.5 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

pmmc-0.1.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (334.7 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

pmmc-0.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (334.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pmmc-0.1.1-cp313-cp313-macosx_13_0_universal2.whl (187.2 kB view details)

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

pmmc-0.1.1-cp312-cp312-win_amd64.whl (198.6 kB view details)

Uploaded CPython 3.12Windows x86-64

pmmc-0.1.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.1.1-cp312-cp312-macosx_13_0_universal2.whl (187.2 kB view details)

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

pmmc-0.1.1-cp311-cp311-win_amd64.whl (200.0 kB view details)

Uploaded CPython 3.11Windows x86-64

pmmc-0.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (335.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pmmc-0.1.1-cp311-cp311-macosx_13_0_universal2.whl (188.6 kB view details)

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

pmmc-0.1.1-cp310-cp310-win_amd64.whl (198.6 kB view details)

Uploaded CPython 3.10Windows x86-64

pmmc-0.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (334.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pmmc-0.1.1-cp310-cp310-macosx_13_0_x86_64.whl (187.2 kB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

pmmc-0.1.1-cp39-cp39-win_amd64.whl (198.8 kB view details)

Uploaded CPython 3.9Windows x86-64

pmmc-0.1.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (334.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pmmc-0.1.1-cp39-cp39-macosx_13_0_x86_64.whl (187.3 kB view details)

Uploaded CPython 3.9macOS 13.0+ x86-64

pmmc-0.1.1-cp38-cp38-win_amd64.whl (198.7 kB view details)

Uploaded CPython 3.8Windows x86-64

pmmc-0.1.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (333.6 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

pmmc-0.1.1-cp38-cp38-macosx_13_0_x86_64.whl (187.2 kB view details)

Uploaded CPython 3.8macOS 13.0+ x86-64

pmmc-0.1.1-cp37-cp37m-win_amd64.whl (200.8 kB view details)

Uploaded CPython 3.7mWindows x86-64

pmmc-0.1.1-cp37-cp37m-macosx_13_0_x86_64.whl (186.1 kB view details)

Uploaded CPython 3.7mmacOS 13.0+ x86-64

pmmc-0.1.1-cp36-cp36m-win_amd64.whl (200.7 kB view details)

Uploaded CPython 3.6mWindows x86-64

pmmc-0.1.1-cp36-cp36m-macosx_13_0_x86_64.whl (186.1 kB view details)

Uploaded CPython 3.6mmacOS 13.0+ x86-64

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 df599771d9ed1b62bb2d5c9132f74fec9ec5fe1b1e25937e5716ba02206da130
MD5 2e291b1fdd2808084f89df79b57febfe
BLAKE2b-256 aa98e7911adc54cf5e2163de1dc746e5f9870fb9f35b9f7d07fb8c7f626a7c41

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 9f1dd33af59a50bc0898386501ec1ef7ce601808a7882bae5d9788065b0f8640
MD5 570e70b75cf02a52fff25c8ae14687c0
BLAKE2b-256 5f7ad1bb85006e8ec56cd19b03e05055034ce0694ad2f0a64e41dac640dac008

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 c6cf542549d431cecb2474fa6eb39e6876177ab1a6e632ea256c62b0de4c442e
MD5 83cbdad5638f43c5890dd5f1f4c3755b
BLAKE2b-256 1ccdbd16f3b59b0b9f1854dfee243125d8318530c7ba7c94c7987fd5c64a218e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-pp310-pypy310_pp73-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 db6b0963e29c1a8a174ea36499b55d112025b89149ef50c61876158ab12c2206
MD5 aa6b7966075004c7fed72cf0a031d654
BLAKE2b-256 cf4ebb1115f172ce0c89fff229b106e974b43ac302d63ca71825f033bad0ff75

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 21585e79adcbed48a1b74efaf2bfe7d73b1cff1be5433ec3e38ab8db9463205f
MD5 9ce5554c07316d680fcc96429555c66e
BLAKE2b-256 588984f29793c4e0bf489e9e5327b2c48062c54dcc2c0f4ffcf1d8deb7d99432

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-pp39-pypy39_pp73-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 d256afc316b143f76c5b9a36dff98e80c0ad1faa7c3bd43af6d00373dc2c24aa
MD5 caeefb28ea007357f8112dd89e48dc7f
BLAKE2b-256 64d7f035d259c2aafec5c625ff0ab4387a71b140e843ff438873fe7946a2eca3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 426de27c0d6a6fbdc3a7491da43b706b2d9b456ad9f90b090354da3d61dcc454
MD5 eb8f2c9788591913b68e665e93bb8373
BLAKE2b-256 c1266579f0529ebc06849c9202b0374131158e7601274c67207ccb7ae7154383

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-pp38-pypy38_pp73-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 9f8df1d62f6e5ab6b7f60968e73603882fae99a39352603ec33a1898b0b2f02b
MD5 dda0fc36b54dc36644ff2560c3a2b7c9
BLAKE2b-256 e12ece5796c210c08638c20b1b3d2e353865c8ac82e77ce54895f6ed78f73bd0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-pp37-pypy37_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 befc73833dada039b6307ab234ebae279dd0b8d00538e89b627837ed67eb967f
MD5 d56c6b6eefb0f21515e79482fe65a795
BLAKE2b-256 66e6e07fc74a6dc78a4a2de867bb27c7fe4a4c5ae5bb28b54eb0ff50c57caa80

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-pp37-pypy37_pp73-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 256a74b66b4c3dd2cfbb630cfe617df23816aab3e17e7bbb3bede32305a81b06
MD5 e2efc39c4ea03c06f1bb4fc4531478d3
BLAKE2b-256 5135a18081a71da5da65f7477c75255446450dd3a8fbeaacdca855ee7da7dff1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e26752f89626689ac405ebe16c72608e22ee72ad39155fdcf19ad6696d78f099
MD5 a2f391855aa29df47bc778c686076197
BLAKE2b-256 90105092ad6fac6a5ec144816f422276086da84d061004433a4ad72a3bd2f0ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 2816c363c0227750c3de7dd53c83e10bd5a38e49820144640134bb7d1b42217f
MD5 9f14b2c8bb978f3374066235b0a755f8
BLAKE2b-256 595e0983d686763ef7f30d86825371da86f6438a4e6340295b0fdc238e882e18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 5dda88d80d61737c35426a3b3f3b9fc7a74e0628e73f6d0961e37ae73382bf49
MD5 fe2684a183a976740e53a58aa9624d08
BLAKE2b-256 eff1ec426eac7c57e1bf1b2e4fae1f69c74a822a229abab1991782c83eb7c333

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 d9bc9fae5fad80706ec87fbef16ae2b411d04370a234a50527c8999a1fc2c6f9
MD5 86eef4d61ce336c3a5b55e087f5a6ed6
BLAKE2b-256 b33f7f908c5411f23f34c6a21eb6484c6f2cd15f7d97a1c8e357f4bc8349900b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-cp313-cp313-macosx_13_0_universal2.whl
Algorithm Hash digest
SHA256 9b9bc3c59db10910e7aefa55d8b751fb96224747d5a947aef2e1a86256bf535b
MD5 b8de7d2878a67c78aeae13570e9594c7
BLAKE2b-256 5ab272b9cd2d1c94fa79030ce68860180334538f06944eef87931d86c63b7c7b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pmmc-0.1.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 198.6 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.1.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e773616b6595b47a82190df6c31d4f2ebb91baae52c6d9c501b48785d6dc4995
MD5 cc6c4707d5ccfb98bf60940ce8d9debb
BLAKE2b-256 ce609c1e6d715a6c8d4afb7e02719eb3e0b815f6bd7969a45cf1a2167ecbaf8b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a0e953e75bdebf3c66e447625c7b41c85b92caf05fb010e1bfd0b02bcd71cf47
MD5 10eba6036cff603564697ac0f48e2af5
BLAKE2b-256 0a361bcd70a9288cb39f6d37f072e7de7ad37e25aedc57e59168ddef23572d34

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-cp312-cp312-macosx_13_0_universal2.whl
Algorithm Hash digest
SHA256 5be34e22ea17713324536a110b7335108fe7106c167f259762f0bdf34e4b543a
MD5 a8002de9f5ef2fd30f243d1fdad0bdc0
BLAKE2b-256 2709decb79f1db9653274b6249a9c5e7a458aa112432c3c33834599eaa82d7cc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pmmc-0.1.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 200.0 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.1.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f4da9099be21645421b7c237530d6a6bbff47f54a28bfa034eea7734ac500166
MD5 28a3a78b7d72ada00b3853acd8061591
BLAKE2b-256 9c987e80f511317dc1371cb4991966770f0bde903ed4a0dae15d4d85074bb9ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 01c9f4f28cd926b3d5fe2f9aef189c78e851d0a007e86154c86e2bf84aefa856
MD5 d3dabd4be67ccda20124b090773fe5f9
BLAKE2b-256 78253ca3c7ee10b3bdf4b725799ae7b8f8d906ad2f3ea03494b952ad9d3e11d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-cp311-cp311-macosx_13_0_universal2.whl
Algorithm Hash digest
SHA256 1651fc5f4a93d757cef943ffd74dfda71c602f4f69b530e732ff48decbf8da16
MD5 d0077cebb2799be5e7efddbb3500da72
BLAKE2b-256 8e5b7ee563b2a5aec4237430146c322dabb984af3efcdf252cab0f2958a2f5e6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pmmc-0.1.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 198.6 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.1.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4b60ab8d5ca4757cad7237dc30110b7921fac8123990c82b327fb01b32ddb024
MD5 6dff33f6cc3f45e36918355c41ef2977
BLAKE2b-256 f983cfc4550d2ee01c95ddfaedffc96eeba26fe9ee3211a2b62d358dac42ab91

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 0270fffe85ec52cc00958f1d3088b3f7582300d59e94706f3155cfa00d39f04e
MD5 35e0e8dab79a321969bd3dc1b9e8f5e5
BLAKE2b-256 74b1e6ef5c01a64352e925010f7f33dfd3ae43c935d98a7572e55ef6c7a1c32b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 0a017ce7cf1a4feebc2b738288504e023621d3f686907d87cddc56f65bbfe3b3
MD5 a4cc3180da44c0172e6a5c7f777c6b2b
BLAKE2b-256 0a3dcd9d97c9c639bc9e5ed70c8fa5db496401eecc4cff79667ea2578bb2195c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pmmc-0.1.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 198.8 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.1.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 f6b05b7f28912870611a7c3661e54219af5f060d7d95daaf2325e48f297b4a3c
MD5 1073ccdd263b97c31017de6b2aaa5b4e
BLAKE2b-256 7aea2bc7331958bfd0ae63cc4f6fb0e40ca3a4a1f7f8d784eabc8da66911d014

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a3db2deb7d51ca7f0337c78081bbcfb590f60ba08abaadd2e382d603e68be032
MD5 8f55457a912d0afb66bf4f9e181ce0fc
BLAKE2b-256 6b13e2b382391ca02710bd306b1ea9164ea2bc295545d6ed33d25f52dad955ba

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pmmc-0.1.1-cp39-cp39-macosx_13_0_x86_64.whl
  • Upload date:
  • Size: 187.3 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.1.1-cp39-cp39-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 2ce6f1895cf6370aa78fa9df7bfd8f3542fb1f05917db588aba408e92e195dd5
MD5 b2a2be699c4a21454b4fddcbfa5c3af4
BLAKE2b-256 e8711cdf37fa9ecb323198f796d86c4f34e7a785edd8c2f7e8a12c9ab4b8f190

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pmmc-0.1.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 198.7 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.1.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 367ab3e3a4405c7059173e993ee3f41cd27f0f5082e7466ba73f402ba5149307
MD5 73715740e188d98830226460812f9c51
BLAKE2b-256 551bce521c579185f5526e0b5b76bf32ef9d0914742f0645de449ce686bf1958

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e02846e11281ee1fb1e6b2ea0d2e19dad62d85a63309ad7fd9ded39f4aa732c3
MD5 c2525812630cdb4949ac0dd9ea77927d
BLAKE2b-256 ff0684fd34ae00ed9ce6bacedff64a445c7d16c337f573184c4bff7412653c0d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pmmc-0.1.1-cp38-cp38-macosx_13_0_x86_64.whl
  • Upload date:
  • Size: 187.2 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.1.1-cp38-cp38-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 0f30efba4a84013b633986f9dc17a47d00bd844ba9528199fdc9ca53a5f5b805
MD5 f73aba0dc6d48e86d353bff903d9a06a
BLAKE2b-256 964e2431ec1015f942c0253d1fbb1f3c6b1f3803483216e30b096276531ed3a2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pmmc-0.1.1-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 200.8 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.1.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 7954042592e6f2e0f373f8e9fa9c79891343265c506a127a4ca5ccadb6f10686
MD5 7a3ac0572fef27f4b4c05ff0b8c2fcc5
BLAKE2b-256 f43e9d73c12193e8941e0da4ce16cf056ecf47fa8684bd84dad872a6b42dc882

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-cp37-cp37m-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 7051977486cbd950f6e47404e335a0a321f7ef9a84638216d41f1f34a0cced73
MD5 0cb44f37cddd3cdb5f9c1011ee34c970
BLAKE2b-256 d67d9388c75de12c614f6b01c39637a677c553cfd8a659b9224177fc9f292d68

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pmmc-0.1.1-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 200.7 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.1.1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 91fb5eeb0ab391d427d5358a6c8f741c2f11b7d9e353181c22c493ec54506ac4
MD5 83f14a04c405fa8386973a57dd5cd818
BLAKE2b-256 7407043ff5fdfba461a1e902740ca71ed8d6be0b3cd9f90331c1c54c1a80c108

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.1.1-cp36-cp36m-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 377f639ea9e02be8779c3cf3439ac06c12e84a8f1f9999c3c42be4f2de370012
MD5 f28c595710e7f3d82cadb3adef333c32
BLAKE2b-256 e69a05351c719398cb3c656dbc913dd762e12ae9e7804cd48f37854ad271bada

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