Skip to main content

PMCX - Python bindings for Monte Carlo eXtreme photon transport simulator

  • Copyright: (C) Matin Raayai Ardakani (2022-2023) <raayaiardakani.m at northeastern.edu>, Qianqian Fang (2019-2026) <q.fang at neu.edu>, Fan-Yu Yen (2023-2024) <yen.f at northeastern.edu>
  • License: GNU Public License V3 or later
  • Version: 0.8.0
  • URL: https://pypi.org/project/pmcx/
  • Github: https://github.com/fangq/mcx

Linux Python Module
MacOS Python Module
Windows Python Module

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

Monte Carlo eXtreme (MCX) is a fast photon transport simulation software for 3D heterogeneous turbid media. By taking advantage of the massively parallel threads and extremely low memory latency in a modern graphics processing unit (GPU), MCX is capable of performing Monte Carlo (MC) photon simulations at a blazing speed, typically hundreds to a thousand times faster than a fully optimized CPU-based MC implementation.

How to Install

Binary wheels with the CUDA simulator are available for Linux (x86_64) and Windows. On macOS, where CUDA is not available, pip installs a pure-python pmcx that only provides the utility functions (detweight, meanpath, loadmc2, mcxcreate etc.); to run simulations on a Mac, or on AMD/Intel GPUs, install pmcxcl, the OpenCL version, which uses these utilities; pmcx.mcxlab() also runs the simulation with pmcxcl when the CUDA module is not available.

Runtime Dependencies

  • NVIDIA GPU Driver: A CUDA-capable NVIDIA GPU and driver is required to run MCX. An up-to-date driver is recommended. The binary wheel distributed over pip runs on NVIDIA drivers with CUDA 10.2 support on Windows and CUDA 9.2 support on Linux, respectively. For more details on driver versions and their CUDA support, see the CUDA Release Notes. To download the latest driver for your system, see the NVIDIA Driver Download Page. You shouldn't need to have CUDA toolkit installed. MCX is built with the static CUDA runtime library.
  • Python: Python 3.6 and newer is required. Python 2 is not supported.
  • numpy: Used to pass/receive volumetric information to/from pmcx. To install, use either conda or pip package managers: pip install numpy or conda install numpy
  • (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: Windows and Linux are fully supported; For building MCX on macOS, OSX 10.13 (High Sierra) and older are highly recommended since 10.13 was the last version of macOS with NVIDIA CUDA support, and matching the CUDA compiler version with the C/C++ compiler shipped with Xcode is easier. Newer macOS versions can be used for building MCX, but need to have System Integrity Protection disabled prior to installing the CUDA toolkit due to the NVIDIA installer copying its payload under the /Developer directory under root.

  • NVIDIA CUDA Toolkit: CUDA 7.5 or newer is required. On macOS, 10.2 is the last available CUDA version. For details on how to install CUDA, see the CUDA Download Page. The NVIDIA GPU driver of the target system must support the selected CUDA toolkit.

  • 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: CUDA Toolkit supports only the following compilers:

    • GNU GCC for Linux-based distributions.
    • Microsoft Visual Studio C/C++ Compiler for Windows.
    • Apple Clang for macOS, available via Xcode. The last Xcode version supported by CUDA 10.2 is 10.3. If using an OSX version higher than 10.15 it can be downloaded and installed from Apple's Developer Website with an Apple ID. After installation, select the proper Xcode version from the commandline, and set the SDKROOT environment variable:
      sudo xcode-select -s /Applications/Xcode_10.3.app/Contents/Developer/
      export SDKROOT=/Applications/Xcode_10.3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
      

    Refer to each OS's online documentations for more in-depth information on how to install these compilers. Note that the version of the C/C++ compiler used must be supported by the CUDA toolkit version. If not, compilation will fail with an error notifying you of this problem. See the CUDA Installation Guides for more details.

  • 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. Additionally, on Windows, make sure Visual Studio's C++ CMake tools for Windows is also installed by selecting its option during installation.

Build Steps

  1. Ensure that cmake, nvcc (NVIDIA CUDA Compiler) 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 pmcx/ folder:

git clone --recursive https://github.com/fangq/mcx.git
cd mcx/pmcx
  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 pmcx-X.X.X-cpXX-cpXX-*.whl stored inside the mcx/pmcx folder. You can install this wheel package using python3 -m pip install --force-reinstall pmcx-*.whl to force installing this locally compiled pmcx module and overwrite any previously installed versions.

  4. To build only the pure-python package with the utility functions, without CUDA, set the environment variable PMCX_PURE_PYTHON=1 before running python3 -m pip wheel .; this produces a pmcx-X.X.X-py3-none-any.whl.

How to use

The PMCX module is easy to use. You can use the pmcx.gpuinfo() function to first verify if you have NVIDIA/CUDA compatible GPUs installed; if there are NVIDIA GPUs detected, you can then call the mcxlab() function, or run(), 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 passes each MCX simulation setting as a keyword argument. The supported setting names are compatible with nearly all the input fields of the MATLAB version of MCX - MCXLAB
import pmcx
import numpy as np
import matplotlib.pyplot as plt

res = pmcx.run(nphoton=1000000, vol=np.ones([60, 60, 60], dtype='uint8'), 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 pmcx.run(), or preferably, pmcx.mcxlab()
import pmcx
import numpy as np
cfg = {'nphoton': 1000000, 'vol':np.ones([60,60,60],dtype='uint8'), '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 = pmcx.run(cfg)      # pmcx.run returns detected photon data as a concatenated 2D array res['detp'], same for res['traj']
# or alternatively/preferably
res = pmcx.mcxlab(cfg)   # pmcx.mcxlab calls pmcx.run, and postprocess res['detp'] and res['traj'] raw data into dict form

The detected photon data returned by pmcx.mcxlab() can be post-processed with the utility functions included in this module, for example, pmcx.detweight(res['detp'], cfg['prop']) computes the detected photon weights, and pmcx.meanpath(res['detp'], cfg['prop']) the mean partial path lengths.

Python ports of all the MCXLAB demo scripts can be found in the examples/ folder (see examples/README.md).

Log output

The messages of pmcx.run() - the echo of the cfg fields and the simulation log (the banner, timings and absorbed fraction) - are controlled by cfg['flog'], as in MATLAB: 2 (default) prints them to Python's sys.stdout, so they show in Jupyter notebooks; 1 prints them to the stdout of the process, and 0 does the same without the banner; a string appends them to that file. cfg['flog'] = os.devnull silences everything; errors are still raised as Python exceptions.

Reproducible simulations

By default, pmcx runs in the autopilot mode (cfg['autopilot']=1), where photons are dispatched to the GPU threads dynamically for speed. As a result, two runs with the same cfg['seed'] agree statistically, but do not simulate the identical set of photons. To reproduce a simulation exactly, set cfg['autopilot']=0 together with a fixed cfg['seed'], and keep the thread settings (cfg['nthread'], cfg['nblocksize']) unchanged.

Metadata

Release files for pmcx 0.8.0

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 pmcx 0.8.0
File Actions
pmcx-0.8.0-py3-none-any.whl Python 3 none any Details for pmcx-0.8.0-py3-none-any.whl
pmcx-0.8.0-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 pmcx-0.8.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
pmcx-0.8.0-pp310-pypy310_pp73-win_amd64.whl PyPy 3.10 PyPy 3.10 7.3 Windows x86-64 Details for pmcx-0.8.0-pp310-pypy310_pp73-win_amd64.whl
pmcx-0.8.0-pp39-pypy39_pp73-win_amd64.whl PyPy 3.9 PyPy 3.9 7.3 Windows x86-64 Details for pmcx-0.8.0-pp39-pypy39_pp73-win_amd64.whl
pmcx-0.8.0-pp38-pypy38_pp73-win_amd64.whl PyPy 3.8 PyPy 3.8 7.3 Windows x86-64 Details for pmcx-0.8.0-pp38-pypy38_pp73-win_amd64.whl
pmcx-0.8.0-pp37-pypy37_pp73-win_amd64.whl PyPy 3.7 PyPy 3.7 7.3 Windows x86-64 Details for pmcx-0.8.0-pp37-pypy37_pp73-win_amd64.whl
pmcx-0.8.0-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 pmcx-0.8.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
pmcx-0.8.0-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 pmcx-0.8.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
pmcx-0.8.0-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 pmcx-0.8.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
pmcx-0.8.0-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 pmcx-0.8.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
pmcx-0.8.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for pmcx-0.8.0-cp313-cp313-win_amd64.whl
pmcx-0.8.0-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 pmcx-0.8.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
pmcx-0.8.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for pmcx-0.8.0-cp312-cp312-win_amd64.whl
pmcx-0.8.0-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 pmcx-0.8.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
pmcx-0.8.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for pmcx-0.8.0-cp311-cp311-win_amd64.whl
pmcx-0.8.0-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 pmcx-0.8.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
pmcx-0.8.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for pmcx-0.8.0-cp310-cp310-win_amd64.whl
pmcx-0.8.0-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 pmcx-0.8.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
pmcx-0.8.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for pmcx-0.8.0-cp39-cp39-win_amd64.whl
pmcx-0.8.0-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 pmcx-0.8.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
pmcx-0.8.0-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details for pmcx-0.8.0-cp38-cp38-win_amd64.whl
pmcx-0.8.0-cp37-cp37m-win_amd64.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-64 Details for pmcx-0.8.0-cp37-cp37m-win_amd64.whl
pmcx-0.8.0-cp36-cp36m-win_amd64.whl CPython 3.6 CPython 3.6 pymalloc Windows x86-64 Details for pmcx-0.8.0-cp36-cp36m-win_amd64.whl

Total release size: 210.7 MB

Release files / pmcx-0.8.0-py3-none-any.whl

Download URL pmcx-0.8.0-py3-none-any.whl
Size 43.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
217ff35f78a87426d3fae5db691072d22ec37267008335e3124064b0136fe9b1
BLAKE2b-256 checksum
How to use checksums
18efe834c6028d7f675d449230320b32b147e72aabe51095bb8a0b8153077a9c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmcx-0.8.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pmcx-0.8.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 9.6 MB
Tags Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
63a1e6128d2837471f3d6c8c61c43308db9c9220542150e11ce58647a5fe77ef
BLAKE2b-256 checksum
How to use checksums
e0db62f01309790e76f61963eca2344cbedbc2d25f8f68ea8435db29a9eb2176
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmcx-0.8.0-pp310-pypy310_pp73-win_amd64.whl

Download URL pmcx-0.8.0-pp310-pypy310_pp73-win_amd64.whl
Size 9.6 MB
Tags PyPy 3.10 PyPy 3.10 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
dae3c88cf67e6ca8450b90e2eda12e66659254bf12f03c388468325283dc9b38
BLAKE2b-256 checksum
How to use checksums
8e6d73ab88bfa4dc71706675f7e6d0113b00c8948c27f57a14713b48cc3a3293
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmcx-0.8.0-pp39-pypy39_pp73-win_amd64.whl

Download URL pmcx-0.8.0-pp39-pypy39_pp73-win_amd64.whl
Size 9.6 MB
Tags PyPy 3.9 PyPy 3.9 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
e7291a3fd589df69dd224505198ed201458aab8065bb1fa1247b099625e35aca
BLAKE2b-256 checksum
How to use checksums
20cf0bacfa5a3e1348fd565e36122c18d422fbb4af9f40f8cfaa76e3dd525028
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmcx-0.8.0-pp38-pypy38_pp73-win_amd64.whl

Download URL pmcx-0.8.0-pp38-pypy38_pp73-win_amd64.whl
Size 9.6 MB
Tags PyPy 3.8 PyPy 3.8 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
cf5c8bb30efd92a3e645123e3a68718489475aedeaff43e567f88fc148119ab8
BLAKE2b-256 checksum
How to use checksums
5e5a93f73cb5e713d769e194fd93e55ab09c5ed329c20b116592bc990ac039d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmcx-0.8.0-pp37-pypy37_pp73-win_amd64.whl

Download URL pmcx-0.8.0-pp37-pypy37_pp73-win_amd64.whl
Size 9.6 MB
Tags PyPy 3.7 PyPy 3.7 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
f2210c0cf2acf1dc56ac255958bcc198345cac5f86ed50b73f7f21ca51f0287b
BLAKE2b-256 checksum
How to use checksums
0ba379eb5ab4dbaefb047c26439b5f8a70e69c4a4dd52fedee998c67bd2d205f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmcx-0.8.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pmcx-0.8.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 9.6 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
24d74b73bd8e367fdb26f7170c50d2af2cb35154439b1f434c2bef47cc3a80f0
BLAKE2b-256 checksum
How to use checksums
f5c947904e0b6503257e24d0a8e00d6f25c19142cc829b61e59d9f76427f531d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmcx-0.8.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pmcx-0.8.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 9.6 MB
Tags CPython 3.15 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
e40519b03be21625693aed447f05258976dbc212ef6c872896e93ee4064281e7
BLAKE2b-256 checksum
How to use checksums
0f2e63318e8942abc25c3ff4e202a8c6a382109f8a954c2af98b37982161a98b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmcx-0.8.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pmcx-0.8.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 9.6 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
4ed0ada9cdb53bea0ec082d597da08b4fbcc4e3090a2c65d6a7ae8d63df08048
BLAKE2b-256 checksum
How to use checksums
7749b4c558a03e82a3c151e1679637bce14582348a5624573ccfa045bf34781f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmcx-0.8.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pmcx-0.8.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 9.6 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
5261c1208e69d15bfb293336373364150d7df5dd195356a7b867e3133e4e0516
BLAKE2b-256 checksum
How to use checksums
7d8a15a2b95f0118c7402f49382a9807aa964a3ec7b41355100f48f0bc564cce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmcx-0.8.0-cp313-cp313-win_amd64.whl

Download URL pmcx-0.8.0-cp313-cp313-win_amd64.whl
Size 9.6 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
194e917554270e93411ce7d780d2abac7d89ea22ecee2f65d510d46d325f4e4c
BLAKE2b-256 checksum
How to use checksums
b143c9a464c27716c019f37df5074620427695924eb4a421d9c886d787047042
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmcx-0.8.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pmcx-0.8.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 9.6 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
17e09069b1afc85d04bfd9c2bf15a9fd28b955c37fff0f5a81d07beef4902a16
BLAKE2b-256 checksum
How to use checksums
a51abb5c64791cda9def7521397cf92ac172f7a1bfc398ae2f147e7c02c8feaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmcx-0.8.0-cp312-cp312-win_amd64.whl

Download URL pmcx-0.8.0-cp312-cp312-win_amd64.whl
Size 9.6 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
f3b0008dd1b8dcc203887159ecd7c1728b91f0509a3e46aaab9b9c3d657b03da
BLAKE2b-256 checksum
How to use checksums
519b30a133ac99b1e8e35dc469ec07244f8067a4d2fb9505fc4ed39a9cb6f73f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmcx-0.8.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pmcx-0.8.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 9.6 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a1eeb46c4e49493df14ea77056c144ec414e389da1ec43c74492db8d3234e04b
BLAKE2b-256 checksum
How to use checksums
62cb65f8fe936684e58d48fc867665f53b792e79cdcf61c8f559775a75fc8182
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmcx-0.8.0-cp311-cp311-win_amd64.whl

Download URL pmcx-0.8.0-cp311-cp311-win_amd64.whl
Size 9.6 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
f2c6fb848d44435f543b2af7e3361610966bee9a9ba1c7b3504d5e37d1ddfc12
BLAKE2b-256 checksum
How to use checksums
e914105beccc12611e6c60aea0ca4651049e2be85601f91ffa2713073b433757
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmcx-0.8.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pmcx-0.8.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 9.6 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
d4f3853e2127abe01b5d79e06a802817c8c2d09d8b6f46f415d1f48f1d6017b9
BLAKE2b-256 checksum
How to use checksums
bb4c8f5b59deebeb2a71584f0a467561df3f4034da797acdce54b168b2effaec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmcx-0.8.0-cp310-cp310-win_amd64.whl

Download URL pmcx-0.8.0-cp310-cp310-win_amd64.whl
Size 9.6 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
6726d4cca83d0203acb20a8456fa7267b1f57c64982e8f13d644e9b39c1cdf06
BLAKE2b-256 checksum
How to use checksums
1d04f440e17e9a581fce1d3cbc22b1f91fdf0725cf84c2cf93ee1bf9f151d6f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmcx-0.8.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pmcx-0.8.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 9.6 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
62fbd76bf530b46afae2fca0c8e74cf904f3d62927403caa0ad5a43c1c0782d3
BLAKE2b-256 checksum
How to use checksums
6855e49f95c62c94cdc783187022ec968fb16d52c82b592ca218893ca5da7546
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmcx-0.8.0-cp39-cp39-win_amd64.whl

Download URL pmcx-0.8.0-cp39-cp39-win_amd64.whl
Size 9.6 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
8923bd84ba89f685d10aa1429e0b7764ddbda196eebc850582bf4d2d40558ba2
BLAKE2b-256 checksum
How to use checksums
4413cfbe1b2fbe3d11bf5a8a43d7b8c4e8ab0dd4130a1c160946d383b8b318a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmcx-0.8.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pmcx-0.8.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 9.6 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
4e71ec0582b4296dc809ff2c73ee1ddf04895fb8698e18afe513a078e051bc83
BLAKE2b-256 checksum
How to use checksums
e3d600f0a8d3713a90a6253bf386c545cf626e763769d834098839918908100b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmcx-0.8.0-cp38-cp38-win_amd64.whl

Download URL pmcx-0.8.0-cp38-cp38-win_amd64.whl
Size 9.6 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
ab4f7a36c3a5a83b0517c8a4db24e2175ac154326a666d056d57e3abfbaff7f2
BLAKE2b-256 checksum
How to use checksums
2386842ebd9fd2da44f9fb864da1adf719e84b23e2a6599f4cc407484c424d66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmcx-0.8.0-cp37-cp37m-win_amd64.whl

Download URL pmcx-0.8.0-cp37-cp37m-win_amd64.whl
Size 9.6 MB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
380cdc9b1c5609e33c6384276c1445a3f06375a6db5c300705fe244c74ab8f61
BLAKE2b-256 checksum
How to use checksums
3d1cd539888e8686fc8a64b176a536e4e1002182b0e670548c5581e06b181e91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / pmcx-0.8.0-cp36-cp36m-win_amd64.whl

Download URL pmcx-0.8.0-cp36-cp36m-win_amd64.whl
Size 9.6 MB
Tags CPython 3.6 CPython 3.6 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
2e09532d68bcbd8c73269d8d06f13706aa4b43bb5c59d333cd2a7fe014d87e8b
BLAKE2b-256 checksum
How to use checksums
30c53187fa466b0ce6b1a74b6d1db740cc4555adbf28634039ea90d565ea4cb3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for pmcx 0.8.0

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.

Release history Release notifications | RSS feed

This release

0.8.0 This release

23 release files No provenance

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