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.2.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (335.1 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pmmc-0.2.0-pp310-pypy310_pp73-win_amd64.whl (197.7 kB view details)

Uploaded PyPyWindows x86-64

pmmc-0.2.0-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.0-pp310-pypy310_pp73-macosx_13_0_x86_64.whl (185.6 kB view details)

Uploaded PyPymacOS 13.0+ x86-64

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

Uploaded PyPyWindows x86-64

pmmc-0.2.0-pp39-pypy39_pp73-macosx_13_0_x86_64.whl (185.5 kB view details)

Uploaded PyPymacOS 13.0+ x86-64

pmmc-0.2.0-pp38-pypy38_pp73-win_amd64.whl (197.7 kB view details)

Uploaded PyPyWindows x86-64

pmmc-0.2.0-pp38-pypy38_pp73-macosx_13_0_x86_64.whl (185.6 kB view details)

Uploaded PyPymacOS 13.0+ x86-64

pmmc-0.2.0-pp37-pypy37_pp73-win_amd64.whl (208.5 kB view details)

Uploaded PyPyWindows x86-64

pmmc-0.2.0-pp37-pypy37_pp73-macosx_13_0_x86_64.whl (185.1 kB view details)

Uploaded PyPymacOS 13.0+ x86-64

pmmc-0.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (334.1 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

pmmc-0.2.0-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.2.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (334.1 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

pmmc-0.2.0-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.2.0-cp313-cp313-macosx_13_0_universal2.whl (187.0 kB view details)

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

pmmc-0.2.0-cp312-cp312-win_amd64.whl (198.5 kB view details)

Uploaded CPython 3.12Windows x86-64

pmmc-0.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (334.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pmmc-0.2.0-cp312-cp312-macosx_13_0_universal2.whl (187.0 kB view details)

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

pmmc-0.2.0-cp311-cp311-win_amd64.whl (199.8 kB view details)

Uploaded CPython 3.11Windows x86-64

pmmc-0.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (335.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pmmc-0.2.0-cp311-cp311-macosx_13_0_universal2.whl (188.4 kB view details)

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

pmmc-0.2.0-cp310-cp310-win_amd64.whl (198.4 kB view details)

Uploaded CPython 3.10Windows x86-64

pmmc-0.2.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (333.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pmmc-0.2.0-cp310-cp310-macosx_13_0_x86_64.whl (187.1 kB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

pmmc-0.2.0-cp39-cp39-win_amd64.whl (198.6 kB view details)

Uploaded CPython 3.9Windows x86-64

pmmc-0.2.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (334.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pmmc-0.2.0-cp39-cp39-macosx_13_0_x86_64.whl (187.2 kB view details)

Uploaded CPython 3.9macOS 13.0+ x86-64

pmmc-0.2.0-cp38-cp38-win_amd64.whl (198.4 kB view details)

Uploaded CPython 3.8Windows x86-64

pmmc-0.2.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (333.8 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

pmmc-0.2.0-cp38-cp38-macosx_13_0_x86_64.whl (187.0 kB view details)

Uploaded CPython 3.8macOS 13.0+ x86-64

pmmc-0.2.0-cp37-cp37m-win_amd64.whl (200.6 kB view details)

Uploaded CPython 3.7mWindows x86-64

pmmc-0.2.0-cp37-cp37m-macosx_13_0_x86_64.whl (185.9 kB view details)

Uploaded CPython 3.7mmacOS 13.0+ x86-64

pmmc-0.2.0-cp36-cp36m-win_amd64.whl (200.5 kB view details)

Uploaded CPython 3.6mWindows x86-64

pmmc-0.2.0-cp36-cp36m-macosx_13_0_x86_64.whl (185.9 kB view details)

Uploaded CPython 3.6mmacOS 13.0+ x86-64

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 cbbb8a0d3fe934882dd061289cabbf8fcf7fece1b0ee24d9e87f06e61214cc7e
MD5 b14211fea0103ec57989be824d99c5af
BLAKE2b-256 7d4e696301ad0cfa3163fe24e9d6850ed2cebb32ecfb144f4b6996f5163b329a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 84e30b2ddd7392109ea917f2b6e9b5dfb8e6c5606f755cfe1f3cfa8bc9a4191e
MD5 5ece381452b2e6d0a5c0ceba5df037ca
BLAKE2b-256 515b38390a94f644e8ff9eda5311d8f6c483cba67ddd7063bb8dda4943c5dc99

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 d6d3333ef74c5c1ca621ff17ef95f46170eb5d96f824ee55a630b48f21603455
MD5 94785804f058bfc323cb7d32e0bbea21
BLAKE2b-256 01efe2c9b0b5d1a748d677128213a214e0adac67bd4855ce2a6475ed609b6b79

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-pp310-pypy310_pp73-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 4a063cd1ca33ce8d6f1fdea5565927ac5c096310fed76704c2ba1ccf597e22b1
MD5 3c390cd8e111030d376bea74ad6ded77
BLAKE2b-256 faed1694570fa0ad4677392633aaf0c289af38b23e364902cc9be44dc4797f67

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 db0b0bf4540f23bf766436c1c03690488ccdc6e20ecc6f180942af1d840cf347
MD5 b40944392ba88b7453683fa7c44555c2
BLAKE2b-256 1e4b3f960087570f53ae2b5987c8f267b14074b0680f65a61075703d0b8fe520

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-pp39-pypy39_pp73-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 bad54aa262dc658f3fcf0f5eae131fe6341de4ba3322b7188033e572cd5ab163
MD5 6c477ce85728c5eb6ce22e949b7fde6d
BLAKE2b-256 d8c8066d7afc7fb6deaa4f316a2990d09895a14bcf1f4c6372f36bb330198617

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 1b617bd5eae96ea4807588a6b20b70cbb80aad58ed35bcc859bca0ad05c1e653
MD5 9b04a259108961e6a4fed062d37b8a31
BLAKE2b-256 8e10eeb894854bdc384af1a9ac3ca26f9766c19864d3477bf227796ed2fef0f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-pp38-pypy38_pp73-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 1e5f6ba01c8730fa729c9d5072cbadd379673ad30f348c7ff4ec9aec6b177f24
MD5 3fbf3d0d70d7be1e38d7d7ac88c7ca79
BLAKE2b-256 0f2c44fa6454c347d56e3183583897b26920949ce3397ad044aea9ed2c66fc98

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-pp37-pypy37_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 5000f4d7cf45c4209b901eb83497f5eef60cbfac0ce0f7387019a198676ee39f
MD5 44a13190c9e7148396075ae366f190f4
BLAKE2b-256 547a0ef00f4b8ad58d52006abf41d720e47d0d9f6cd31ed08915ea54cc1b0519

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-pp37-pypy37_pp73-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 60036bac1167feed359aac040203f934197ebfb4a3446a95b9b3aca27308d21a
MD5 9cf2e7ae1ee2e52cf00263c4f01ed0b6
BLAKE2b-256 0a83a61217c37c4daffc828c7363d6e6f79837973ba2330b5153799f8978910f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 7bccb31e8877699daf9aeff66bb96726d2b1e87abe5d89d556efedd8d1fdfb5e
MD5 f8e6a72b3209071eff577fedd8a72077
BLAKE2b-256 bccbf6ea1bc6d6307445950c5842ef6fef784f93f2420f416aec7b1562fead2e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 34d6136ff21e1217bd294917a455197a45c23c6aba2b905fc29e4b34c494ced4
MD5 b046143aef440299b904a344957c12e3
BLAKE2b-256 128e542e68e551e10108bcdf4805fa31fd794500774b76068656d87447899ce3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 6d531c77ce5fe21b66fbd8342ec72bbf7847349aa7b14acf4526789bee7f6355
MD5 dd2f89a9d81d1badb55773d1e78c7a7d
BLAKE2b-256 996413889189a52ddd38b9d28aa931bb34cf8f5c11c07a73d5cb04ace77eaa41

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a2fe4d87c008ea818fa17d2fc5e6aef505894f03f024ae04e1bfd674767866e5
MD5 6b8751108c98ec6df665b61b0b8320e7
BLAKE2b-256 78ce7c311e57316a92ea3d4194fb4ed10f986b3b47c3837b82ea74e6e4c01871

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-cp313-cp313-macosx_13_0_universal2.whl
Algorithm Hash digest
SHA256 5cba6fea2957ce9bcf2ff18cc17cd8f7fb5dda90314c86f96a7e74fcd0063a06
MD5 3e247e236c9a3cb38c98112fed616b45
BLAKE2b-256 4418fe96681837fe6d26c8a38167ef1efc971b83021233eb751be3a3c23cd5ed

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pmmc-0.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 198.5 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.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 14a24fc6746ab2e5e505545c1078a1e01d8177cac3092d5e027ad614bee33f37
MD5 bb09fd56cdada5fa11c20653dcca228b
BLAKE2b-256 6e0bbb72cde4756e823d1bfc389f79701dd5ee69ef65e402a02cc056534806e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e94a4f689745fe10045a35daecdb8783fd1ea067f8f2f8fb47ff4d648cce2552
MD5 671f75575eff9d9f87bc9360cad8f0ba
BLAKE2b-256 1e312e7ed0dcf64ac6bfb16484a532ac42c4b714a0dcec7929ec397fee60da41

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-cp312-cp312-macosx_13_0_universal2.whl
Algorithm Hash digest
SHA256 4f2edc68b87128adfde097b8151255f84d1eb5b25cdfe6d79071914256436089
MD5 4b43b3bcc5cd58e63246144c025e8d95
BLAKE2b-256 bd321a7f2060e73afffac74ac6d6d5c38ef64db359461a7dfaf8c17f2b2c930f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pmmc-0.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 199.8 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.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1600ceefa55af174ca836a60678b49ac5d663ca0ea5955e2773ec3c865772013
MD5 742b71c6e9b2e44be2aa2bbbb3d3f25c
BLAKE2b-256 5027e25645f32214cf764e40589148515ad7d49bc772f331d5a16528a7da7877

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 9ec89e47b93a46526f8fcd48a7dde41fef77b73f0997c5f11bd13c7afbb85354
MD5 f629b74547b4b287bfa0f3c4cb692586
BLAKE2b-256 e806b2abae1c7300253e82be7d5254920bf8f3c010d49cb61ceac08b60f27cc6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-cp311-cp311-macosx_13_0_universal2.whl
Algorithm Hash digest
SHA256 e1e87f2891829d4af50636a1d5fe1426db786451ab5a3a538b3f463ccdeb7c15
MD5 084979c4c194f7a274bb6ae278e7744c
BLAKE2b-256 d073c7a1cddd68fdad42edc4c59e4859b98aee9b2d1611f47b41674aea4106d9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pmmc-0.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 198.4 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.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 afa9bc2b2d67a009dfc868b67141d9c5d4bf173d40cd92db4466df1947547025
MD5 b321049949371ebb3e7e653d2b5d7c54
BLAKE2b-256 42bf8dd55b8a59320eb40bb021783c1814ae0e289f2c8dc9b60e4b0c17f35f6a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 82286b4cb8651b6bc93dc673e4ca2c4995f314b9a3dbf11466901009a3b59c31
MD5 f65f4072e671064d34e836be46c60748
BLAKE2b-256 495735ff991be770a547605acd27f3582b5e4d14e6a1b02b535f34ec6bd15ae7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 bd66ea40c26007789dcd00649768fd3aa7b507999c1349e671bde23e55255701
MD5 acb1052886acfcc744b9bed93c13b2b1
BLAKE2b-256 2c66d5ac357d8631916d303d378388e1372c33629f20a604463ee71e57030667

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pmmc-0.2.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 198.6 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.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 4d932cd4ffe707e70141c907ea542459922b0d3b51890544eacc06350d26794f
MD5 ee5165d452e9457b9959c148134f9922
BLAKE2b-256 e28c975b240c6b2ddd7d6e4a45b47a98b06a858fc236e005681cbb856ef1eb8d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a19f8323eb68be637c9e037499b55e2b02c4c3ddacec54c392d288ed988e7971
MD5 fb50b1e119c88cfb7dbfb289ba9bdd3a
BLAKE2b-256 52359762dc50e0ab44526d63506fefb164173fc6e06a160830868292e990ee4a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pmmc-0.2.0-cp39-cp39-macosx_13_0_x86_64.whl
  • Upload date:
  • Size: 187.2 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.0-cp39-cp39-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 6c8ddfcbb67345b0169fe2158720fff5f88a5e9e713cce22c7df51f57606d067
MD5 f9b59353e142e550c952f1e93a19b485
BLAKE2b-256 465fc947bac462b5b3a9f7641af140bc352ef558772196034b16f443655907be

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pmmc-0.2.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 198.4 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.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 f33bd66240b5cfe0ab30afa9f3ba650350ab49c8663d7da5feeb612b51a8296a
MD5 e5374d3ccd51c4b99edcc9029f208bd6
BLAKE2b-256 3739fcb45e36ad14985165a6b25e3e7fba73b0df4cb6bb0cf64f542a574bccfd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 0c2ab278f55b001703fffb9726fbcdf39ca3c93458268216886043cc82446d67
MD5 8ab5635216ffdd3b43ddad37f0a2f880
BLAKE2b-256 9767d4163d0edac26f4926a0dcb4035df8b83ae85270e8edc5a6dd7f3601ff4b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pmmc-0.2.0-cp38-cp38-macosx_13_0_x86_64.whl
  • Upload date:
  • Size: 187.0 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.0-cp38-cp38-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 aacc4b5b2654c2cafb4b79abf67ac69c7237508190a088e3c21f0b671a36dce4
MD5 f34a8d7b70eb63ce56ffaf356b190b0e
BLAKE2b-256 9efc734089deb52154c47e4b362c1cfca52d7f99efbb32fcb7a09a15c6c7f51e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pmmc-0.2.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 200.6 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.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 afe2eb96ddf5b5db28b2900085a71cbd9b00078960c4458dd3afe119ea140835
MD5 ece58104515ec0e4ef4f936d14aec0cc
BLAKE2b-256 77415c0e49b705e9b3a1aaf807b0fc920df9c6c0361d922d703f35fd13d3ca35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-cp37-cp37m-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 a8b418008cdb7cf7e24798bfe0ff2525219c45b7f57c92eb20b2150505fe1a58
MD5 082999ec7aad12395ccb84bc1b4f221c
BLAKE2b-256 9d91084d2be643c6487b8198065d000a83395a2522d349067a47edc4c7bd5a06

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pmmc-0.2.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 200.5 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.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 d55ec943c4bed78afeb49d4f15c7075bf8b37aa4e4221943b9b1495f69b071de
MD5 8475b4deedf57c50c37dfbaab4a5a6af
BLAKE2b-256 fa1d24525d699c1e2d8b89329e46a1a44e174864f9ce42f570a1fb4a3019d15f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pmmc-0.2.0-cp36-cp36m-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 e8c3879b0b5e54758d659fa23dd6cd4acb264ded8d9a5bc105b496eeb7852e3b
MD5 478e6051d99ab060d232fb8d005a3668
BLAKE2b-256 42c51d081b7143c29441776d33a674ef106e3cae1ead2583d3ba43ca741edfc2

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