Skip to main content

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.

  4. (optional) To also build the CUDA backend (cfg["compute"] = "cuda", NVIDIA GPUs only), install the CUDA toolkit and pass -DBUILD_CUDA=ON to CMake, for example CMAKE_ARGS="-DBUILD_CUDA=ON" python3 -m pip install .

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)

Metadata

Release files for pmmc 0.3.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for pmmc 0.3.11
File Actions
pmmc-0.3.11-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ x86-64 Details for pmmc-0.3.11-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
pmmc-0.3.11-pp310-pypy310_pp73-win_amd64.whl PyPy 3.10 PyPy 3.10 7.3 Windows x86-64 Details for pmmc-0.3.11-pp310-pypy310_pp73-win_amd64.whl
pmmc-0.3.11-pp39-pypy39_pp73-win_amd64.whl PyPy 3.9 PyPy 3.9 7.3 Windows x86-64 Details for pmmc-0.3.11-pp39-pypy39_pp73-win_amd64.whl
pmmc-0.3.11-pp38-pypy38_pp73-win_amd64.whl PyPy 3.8 PyPy 3.8 7.3 Windows x86-64 Details for pmmc-0.3.11-pp38-pypy38_pp73-win_amd64.whl
pmmc-0.3.11-pp37-pypy37_pp73-win_amd64.whl PyPy 3.7 PyPy 3.7 7.3 Windows x86-64 Details for pmmc-0.3.11-pp37-pypy37_pp73-win_amd64.whl
pmmc-0.3.11-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64 Details for pmmc-0.3.11-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
pmmc-0.3.11-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.17+ x86-64 Details for pmmc-0.3.11-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
pmmc-0.3.11-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details for pmmc-0.3.11-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
pmmc-0.3.11-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details for pmmc-0.3.11-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
pmmc-0.3.11-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for pmmc-0.3.11-cp313-cp313-win_amd64.whl
pmmc-0.3.11-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details for pmmc-0.3.11-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
pmmc-0.3.11-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for pmmc-0.3.11-cp312-cp312-win_amd64.whl
pmmc-0.3.11-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details for pmmc-0.3.11-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
pmmc-0.3.11-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for pmmc-0.3.11-cp311-cp311-win_amd64.whl
pmmc-0.3.11-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details for pmmc-0.3.11-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
pmmc-0.3.11-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for pmmc-0.3.11-cp310-cp310-win_amd64.whl
pmmc-0.3.11-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details for pmmc-0.3.11-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
pmmc-0.3.11-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for pmmc-0.3.11-cp39-cp39-win_amd64.whl
pmmc-0.3.11-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details for pmmc-0.3.11-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
pmmc-0.3.11-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details for pmmc-0.3.11-cp38-cp38-win_amd64.whl
pmmc-0.3.11-cp37-cp37m-win_amd64.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-64 Details for pmmc-0.3.11-cp37-cp37m-win_amd64.whl
pmmc-0.3.11-cp36-cp36m-win_amd64.whl CPython 3.6 CPython 3.6 pymalloc Windows x86-64 Details for pmmc-0.3.11-cp36-cp36m-win_amd64.whl

Total release size: 14.5 MB

Release files / pmmc-0.3.11-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pmmc-0.3.11-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 786.3 kB
Tags Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
3e0f5b9a7879b876d5b5595d35f72ae5e82ac41fa53aadca0c8f861b4cb37d8f
BLAKE2b-256 checksum
How to use checksums
9fb1d175df350c6358b34c083fc28cb585daa2a00178312712788c09704051e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmmc-0.3.11-pp310-pypy310_pp73-win_amd64.whl

Download URL pmmc-0.3.11-pp310-pypy310_pp73-win_amd64.whl
Size 549.7 kB
Tags PyPy 3.10 PyPy 3.10 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
f6b86228f2a897e2873be725e81d92d8d6d59c6a6678d28e817613f33be66ed4
BLAKE2b-256 checksum
How to use checksums
00537ff1ade5c2c0acb80e669d94ef2149bf4373dee55c67cf82094cb9a69575
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmmc-0.3.11-pp39-pypy39_pp73-win_amd64.whl

Download URL pmmc-0.3.11-pp39-pypy39_pp73-win_amd64.whl
Size 549.7 kB
Tags PyPy 3.9 PyPy 3.9 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
59f1ce531dfef33c56db204785a313bb17bac1ed628e79ab7522dfacb67b03bc
BLAKE2b-256 checksum
How to use checksums
e21ef3313f0cc0b0a7e36bf82557c12d7ca99f36a3708c6d1052ea526fb90905
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmmc-0.3.11-pp38-pypy38_pp73-win_amd64.whl

Download URL pmmc-0.3.11-pp38-pypy38_pp73-win_amd64.whl
Size 549.6 kB
Tags PyPy 3.8 PyPy 3.8 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
09da12e0531cf1f6e279efd11a342a4e39f9b5cf919d4ad2a99d2488ed4ab0aa
BLAKE2b-256 checksum
How to use checksums
bec8be2ee0c5203a91014c3f4367b57fd9bee324f86033b83668ce5e29ae4ece
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmmc-0.3.11-pp37-pypy37_pp73-win_amd64.whl

Download URL pmmc-0.3.11-pp37-pypy37_pp73-win_amd64.whl
Size 549.3 kB
Tags PyPy 3.7 PyPy 3.7 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
51cd1dc6b7bfe3067e94d056aea12dada726f219c79a0a227d508ba74ca2be38
BLAKE2b-256 checksum
How to use checksums
5d88005ea3dce8de1bc06518b8a7eb8911b9815ff68156cf3a78585ad1cf2e5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmmc-0.3.11-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pmmc-0.3.11-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 784.1 kB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
5368cf56bb2c5bd8330c35a6f7576eb3f2673a5de07a7ccc0edde0584c82ee24
BLAKE2b-256 checksum
How to use checksums
adf300dcaca78f68e63fc95b141026eae61a6648acabad3b3262705f8c97b88d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmmc-0.3.11-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pmmc-0.3.11-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 785.0 kB
Tags CPython 3.15 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
d846f6a55a3e6aea848e3f15e138c2195c94abc92b8566f370592239b2edeb24
BLAKE2b-256 checksum
How to use checksums
4d9a0f71d2760625cf99368077d45055885a412cdbd362b4f3cda190f168ad6a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmmc-0.3.11-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pmmc-0.3.11-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 784.5 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
781f2ffc59198eb1f9203db0aeba2f8bc96f9b17e7f91a18d8faed602fdf97a8
BLAKE2b-256 checksum
How to use checksums
29e31bc90ac4c8cedcf04e0b70fce0c4cc663a1fdee423c3ea7a9b7031a0e73d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmmc-0.3.11-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pmmc-0.3.11-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 785.0 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
dea770160b1ae7b11f8cdb268c4864372a0cbbe9ced6f659a6ea318c2ed0065e
BLAKE2b-256 checksum
How to use checksums
fb67f4276aacba028bac53fc4bb1b5c97d0af92be52fb2630c0c1d86dc2d043a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmmc-0.3.11-cp313-cp313-win_amd64.whl

Download URL pmmc-0.3.11-cp313-cp313-win_amd64.whl
Size 552.3 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
bf60d91bd10e42a76ae371cde161b82067a240b595ad005d53eaf49688fb886d
BLAKE2b-256 checksum
How to use checksums
d5905461debf19228940b4f3c3fe39dd81ad250a92d10370054e1a5655ce0db5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmmc-0.3.11-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pmmc-0.3.11-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 784.8 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
14102bc8b20bf41a229e2e87447780d51ce5f3a5607ea432bdcf9987b149f18c
BLAKE2b-256 checksum
How to use checksums
dbffc5ced2135387ef4564c931b437c6def5f24bbaaf01075ee845540ad7714d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmmc-0.3.11-cp312-cp312-win_amd64.whl

Download URL pmmc-0.3.11-cp312-cp312-win_amd64.whl
Size 552.3 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
f0c9f7c913087bd3300035db9f82e8db6e0821eb029cf67054ef50ea136ad704
BLAKE2b-256 checksum
How to use checksums
a68106db42e60a420169d08e7a6974a995a124a2dd1d00ec112e3137ef67c83f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmmc-0.3.11-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pmmc-0.3.11-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 784.9 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
4d341ea5971f0c25d0cea9ddd0245f258d7f19348a9b91a9f4ffc44cd5358aac
BLAKE2b-256 checksum
How to use checksums
e0e7b18fadd17fab65214b0d4ce2dac692f4be604b33411106cfff147e5badcd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmmc-0.3.11-cp311-cp311-win_amd64.whl

Download URL pmmc-0.3.11-cp311-cp311-win_amd64.whl
Size 550.2 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
d44297a265b8826529c50351f536fb231573409afd4f7456b7c0ff634f359e20
BLAKE2b-256 checksum
How to use checksums
3b23b651151a0e357a5f2c731c317290028166475cdceee40d22d4f002b09e11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmmc-0.3.11-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pmmc-0.3.11-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 786.5 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
52378bd04afe08f172281a56885c8434209ab3d4a028f9f3e61788ccd5bbd464
BLAKE2b-256 checksum
How to use checksums
c2561627ac0e0d165c34a13d5e0018200de9b10705685af481bb35ee10bdb328
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmmc-0.3.11-cp310-cp310-win_amd64.whl

Download URL pmmc-0.3.11-cp310-cp310-win_amd64.whl
Size 549.5 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
01f580479131e0d41bef7119024fb3dc90aaefadcfe231777965aa8424403cf9
BLAKE2b-256 checksum
How to use checksums
d2225cb32ee35b9907400fc5a80e6f91e7afae08b8d4d1f32968387697780c60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmmc-0.3.11-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pmmc-0.3.11-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 783.9 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
0bdbe7a4c0ac2a3bdf8f38788bb86e4a795edbbd0b50d316338b9e3ff6051087
BLAKE2b-256 checksum
How to use checksums
c22fab40ed31a0078306acc68e35c5db739d3e1ddd5d4486a2e5685dc98e4579
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmmc-0.3.11-cp39-cp39-win_amd64.whl

Download URL pmmc-0.3.11-cp39-cp39-win_amd64.whl
Size 549.6 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
b752b6ab0ab3c5cc4915fff3d59e22c0efdb87dda738e29ed6a7609d58dcb6fc
BLAKE2b-256 checksum
How to use checksums
c503c01075a28af3610d32190386292ced0e1be97e99c7db7a92b43f02d36821
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmmc-0.3.11-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pmmc-0.3.11-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 783.7 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f6da8fcfc26dfbcf04188fc77768c0dbb9114d59c4360c49fc9589d071ee22aa
BLAKE2b-256 checksum
How to use checksums
5948373b0e76c5f3eefaee1ef1ed96266ad37c4598719dd56d4d35a8baf89b23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmmc-0.3.11-cp38-cp38-win_amd64.whl

Download URL pmmc-0.3.11-cp38-cp38-win_amd64.whl
Size 549.4 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
fb40dce4d37ee9719c1c96b1ac0a31daff94ca9130a80a47e5e85323927b3ea3
BLAKE2b-256 checksum
How to use checksums
32664615575cbc02e5c9ff415db0890a7cf81c7dc674c2dda1d65b2bfb852da6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmmc-0.3.11-cp37-cp37m-win_amd64.whl

Download URL pmmc-0.3.11-cp37-cp37m-win_amd64.whl
Size 552.8 kB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
681df94718a5bd10706ac8ca9a04935dee88d4551b6c49bdc5ffcd815f600a5c
BLAKE2b-256 checksum
How to use checksums
431e06503fb1004e4f568f5676a8f3375972a7a5fb360640e9c5e110107d3034
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmmc-0.3.11-cp36-cp36m-win_amd64.whl

Download URL pmmc-0.3.11-cp36-cp36m-win_amd64.whl
Size 552.8 kB
Tags CPython 3.6 CPython 3.6 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
db6afe6b009319066cdf39f7169c0ef0c8ef77b47a640cde752b99bbed7d515b
BLAKE2b-256 checksum
How to use checksums
07bf190e05f97f065eb6659b515904dbea61dbc01919fac30d3cbf64a7dffc31
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for pmmc 0.3.11

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page