Skip to main content

logo

PyPartMC

PyPartMC is a Python interface to PartMC, a particle-resolved Monte-Carlo code for atmospheric aerosol simulation. Development of PyPartMC has been intended to remove limitations to the use of Fortran-implemented PartMC. PyPartMC facilitates the dissemination of computational research results by streamlining independent execution of PartMC simulations (also during peer-review processes). Additionally, the ability to easily package examples, simple simulations, and results in a web-based notebook allows PyPartMC to support the efforts of many members of the scientific community, including researchers, instructors, and students, with nominal software and hardware requirements.

Documentation of PyPartMC is hosted at https://open-atmos.github.io/PyPartMC. PyPartMC is implemented in C++ and it also constitutes a C++ API to the PartMC Fortran internals (see the C++ example below). The Python API can facilitate using PartMC from other environments than Python and C++ - see, e.g., Julia and Matlab examples below.

For an outline of the project, rationale, architecture, and features, refer to: D'Aquino et al., 2024 (SoftwareX) (please cite if PyPartMC is used in your research). For a list of talks and other relevant resources, please see project Wiki. If interested in contributing to PyPartMC, please have a look a the notes for developers.

US Funding PL Funding

License: GPL v3 Copyright tests+pypi API docs codecov DOI PyPI version Project Status: Active – The project has reached a stable, usable state and is being actively developed. pyOpenSci Peer-Reviewed

Python 3 Linux OK macOS OK Windows OK Jupyter

Installation

Using the command-line pip tool (also applies to conda environments)

pip install PyPartMC

Note that, depending on the environment (OS, hardware, Python version), the pip-install invocation may either trigger a download of a pre-compiled binary, or trigger compilation of PyPartMC. In the latter case, a Fortran compiler and some development tools includiong CMake, m4 and perl are required (while all non-Python dependencies are included in the PyPartMC source archive). In both cases, all Python dependencies will be resolved by pip.

In a Jupyter notebook cell (also on Colab or jupyter-hub instances)

! pip install PyPartMC
import PyPartMC

Jupyter notebooks with examples

Note: clicking the badges below redirects to cloud-computing platforms. The mybinder.org links allow anonymous execution, Google Colab requires logging in with a Google account, ARM JupyerHub requires logging in with an ARM account (and directing Jupyter to a particular notebook within the examples folder).

The example notebooks feature additional dependencies that can be installed with:

pip install PyPartMC[examples]
  • Urban plume scenario demo (as in PartMC):
    View notebook Open In Colab Binder ARM JupyterHub
  • Chamber simulation example from Barrel Study (Tian el al., 2017):
    View notebook Open In Colab Binder ARM JupyterHub
  • Dry-Wet Particle Size Equilibration with PartMC and PySDM:
    View notebook Open In Colab Binder ARM JupyterHub Voila
  • Simulation output processing example (loading from netCDF files using PyPartMC):
    View notebook Open In Colab Binder ARM JupyterHub
  • Optical properties calculation using external Python package (PyMieScatt):
    View notebook Open In Colab Binder ARM JupyterHub
  • Cloud parcel example featuring supersaturation-evolution-coupled CCN activation and drop growth:
    View notebook Open In Colab Binder ARM JupyterHub
  • Immersion freezing example:
    View notebook Open In Colab Binder ARM JupyterHub
  • Coagulation model intercomparison for additive (Golovin) kernel with: PyPartMC, PySDM, Droplets.jl and dustpy:
    View notebook Open In Colab Binder ARM JupyterHub
  • Particle simulation with multiphase chemistry handled using CAMP (without coagulation):
    View notebook Open In Colab Binder ARM JupyterHub

Features

  • works on Linux, macOS and Windows (compatibility assured with CI builds)
  • hassle-free installation using pip (prior PartMC installation not needed)
  • works out of the box on mybinder.org, Google Colab and alike
  • ships with a set of examples maintained in a form of Jupyter notebooks
  • Pythonic API (but retaining PartMC jargon) incl. Python GC deallocation of Fortran objects
  • specification of parameters using native Python datatypes (lists, dicts) in place of PartMC spec files
  • code snippets in README depicting how to use PyPartMC from Python, C++, Julia and Matlab (also executed on CI)
  • auto-generated API docs on the web
  • support for [de]serialization of selected wrapped structures using JSON
  • based on unmodified PartMC code
  • does not use or require shell or any pre-installed libraries
  • aiming at 100% unit test coverage

Usage examples

The listings below depict how the identical task of randomly sampling particles from an aerosol size distribution in PartMC can be done in different programming languages.

For a Fortran equivalent of the Python, C++, Julia and Matlab programs below, see the readme_fortran folder.

Python

import numpy as np

import PyPartMC as ppmc
from PyPartMC import si

aero_data = ppmc.AeroData((
    #      [density, ions in solution, molecular weight, kappa, abifm_m, abifm_c]
    {"OC": [1000 *si.kg/si.m**3, 0, 1e-3 *si.kg/si.mol, 0.001, 0, 0]},
    {"BC": [1800 *si.kg/si.m**3, 0, 1e-3 *si.kg/si.mol, 0, 0 , 0]},
))

aero_dist = ppmc.AeroDist(
    aero_data,
    [{
        "cooking": {
            "mass_frac": [{"OC": [1]}],
            "diam_type": "geometric",
            "mode_type": "log_normal",
            "num_conc": 3200 / si.cm**3,
            "geom_mean_diam": 8.64 * si.nm,
            "log10_geom_std_dev": 0.28,
        },
        "diesel": {
            "mass_frac": [{"OC": [0.3]}, {"BC": [0.7]}],
            "diam_type": "geometric",
            "mode_type": "log_normal",
            "num_conc": 2900 / si.cm**3,
            "geom_mean_diam": 50 * si.nm,
            "log10_geom_std_dev": 0.24,
        }
    }],
)

n_part = 100
aero_state = ppmc.AeroState(aero_data, n_part, "nummass_source")
aero_state.dist_sample(aero_dist)
print(np.dot(aero_state.masses(), aero_state.num_concs), "# kg/m3")

C++

Note that pip install PyPartMC also installs C++ header files as well as CMake package configuration file for PyPartMC. No other dependencies are needed to use PyPartMC from C++, and using it in the way exemplified below works by linking against the PyPartMC binary library file, but without involving the Python interpretter at runtime.

#include <iostream>
#include <memory>
#include <numeric>

#include "PyPartMC.hpp"
#include "PyPartMC/si.hpp"

int main() {
    auto aero_data = std::make_shared<AeroData>(nlohmann::json({
        { {"OC", {1000.0 * si::kg / (si::m * si::m * si::m), 0.0, 1e-3 * si::kg / si::mol, 0.001, 0.0, 0.0}} },
        { {"BC", {1800.0 * si::kg / (si::m * si::m * si::m), 0.0, 1e-3 * si::kg / si::mol, 0.0,   0.0, 0.0}} }
    }));

    auto aero_dist = AeroDist(
        aero_data, 
        nlohmann::ordered_json::array({
            nlohmann::ordered_json::object({
                {"cooking", {
                    {"mass_frac", nlohmann::ordered_json::array({ nlohmann::ordered_json::object({{"OC", {1.0}}}) }) }, 
                    {"diam_type", "geometric"},
                    {"mode_type", "log_normal"},
                    {"num_conc", 3200.0 / (si::cm * si::cm * si::cm)},
                    {"geom_mean_diam", 8.64 * si::nm},
                    {"log10_geom_std_dev", 0.28}
                }},
                {"diesel", {
                    {"mass_frac", nlohmann::ordered_json::array({ nlohmann::ordered_json::object({{"OC", {0.3}}}), nlohmann::ordered_json::object({{"BC", {0.7}}}) }) }, 
                    {"diam_type", "geometric"},
                    {"mode_type", "log_normal"},
                    {"num_conc", 2900.0 / (si::cm * si::cm * si::cm)},
                    {"geom_mean_diam", 50.0 * si::nm},
                    {"log10_geom_std_dev", 0.24}
                }}
            })
        })
    );

    int n_part = 100;
    auto aero_state = AeroState(aero_data, n_part, "nummass_source");
    
    AeroState::dist_sample(aero_state, aero_dist, 1.0, 0.0, true, true);

    auto masses = AeroState::masses(aero_state, {}, {});
    auto num_concs = AeroState::num_concs(aero_state);

    double total_mass = std::inner_product(
        std::begin(num_concs), std::end(num_concs), 
        std::begin(masses), 
        0.0
    );
    
    std::cout << std::scientific << total_mass << " # kg/m3\n";

    return 0;
}

What can be compiled using CMake with the following CMakeLists.txt:

cmake_minimum_required(VERSION 3.22)
project(AeroSimulation LANGUAGES CXX)

enable_testing()
set(CMAKE_CXX_STANDARD 17)

find_package(Python 3.8 REQUIRED COMPONENTS Interpreter)
execute_process(
    COMMAND ${Python_EXECUTABLE} -c "import PyPartMC, pathlib; print(pathlib.Path(PyPartMC.cmake_dir()).as_posix())"
    OUTPUT_VARIABLE PYPARTMC_CMAKE_DIR
    OUTPUT_STRIP_TRAILING_WHITESPACE
)
set(PyPartMC_DIR "${PYPARTMC_CMAKE_DIR}")

find_package(PyPartMC REQUIRED)

add_executable(my_test test.cpp)
target_link_libraries(my_test PRIVATE PyPartMC::PyPartMC)
pypartmc_setup_runtime(my_test)

add_test(NAME maketest COMMAND my_test)

Julia (using PyCall.jl)

using Pkg
Pkg.add("PyCall")

using PyCall
ppmc = pyimport("PyPartMC")
si = ppmc["si"]

aero_data = ppmc.AeroData((
  #       (density, ions in solution, molecular weight, kappa, abifm_m, abifm_c)
  Dict("OC"=>(1000 * si.kg/si.m^3, 0, 1e-3 * si.kg/si.mol, 0.001, 0, 0)),
  Dict("BC"=>(1800 * si.kg/si.m^3, 0, 1e-3 * si.kg/si.mol, 0, 0, 0))
))

aero_dist = ppmc.AeroDist(aero_data, (
  Dict( 
    "cooking" => Dict(
      "mass_frac" => (Dict("OC" => (1,)),),
      "diam_type" => "geometric",
      "mode_type" => "log_normal",
      "num_conc" => 3200 / si.cm^3,
      "geom_mean_diam" => 8.64 * si.nm,
      "log10_geom_std_dev" => .28,
    ),
    "diesel" => Dict(
      "mass_frac" => (Dict("OC" => (.3,)), Dict("BC" => (.7,))),
      "diam_type" => "geometric",
      "mode_type" => "log_normal",
      "num_conc" => 2900 / si.cm^3,
      "geom_mean_diam" => 50 * si.nm,
      "log10_geom_std_dev" => .24,
    )
  ),
))

n_part = 100
aero_state = ppmc.AeroState(aero_data, n_part, "nummass_source")
aero_state.dist_sample(aero_dist)
print(aero_state.masses()'aero_state.num_concs, "# kg/m3")

Matlab (using Matlab's built-in Python interface)

notes (see the readme_matlab job definition in PyPartMC CI workflow for an example on how to achieve it on Ubuntu):

  • Matlab ships with convenience copies of C, C++ and Fortran runtime libraries which are dlopened() by default; one way to make PyPartMC OK with it is to [pip-]install by compiling from source using the very same version of GCC that Matlab borrowed these libraries from (e.g., GCC 9 for Matlab R2022a, etc);
  • Matlab needs to use the same Python interpretter/venv as the pip invocation used to install PyPartMC;
ppmc = py.importlib.import_module('PyPartMC');
si = py.importlib.import_module('PyPartMC').si;

aero_data = ppmc.AeroData(py.tuple({ ...
  py.dict(pyargs("OC", py.tuple({1000 * si.kg/si.m^3, 0, 1e-3 * si.kg/si.mol, 0.001, 0, 0}))), ...
  py.dict(pyargs("BC", py.tuple({1800 * si.kg/si.m^3, 0, 1e-3 * si.kg/si.mol, 0, 0, 0}))) ...
}));

aero_dist = ppmc.AeroDist(aero_data, py.tuple({ ...
  py.dict(pyargs( ...
    "cooking", py.dict(pyargs( ...
      "mass_frac", py.tuple({py.dict(pyargs("OC", py.tuple({1})))}), ...
      "diam_type", "geometric", ...
      "mode_type", "log_normal", ...
      "num_conc", 3200 / si.cm^3, ...
      "geom_mean_diam", 8.64 * si.nm, ...
      "log10_geom_std_dev", .28 ...
    )), ...
    "diesel", py.dict(pyargs( ...
      "mass_frac", py.tuple({ ...
        py.dict(pyargs("OC", py.tuple({.3}))), ...
        py.dict(pyargs("BC", py.tuple({.7}))), ...
      }), ...
      "diam_type", "geometric", ...
      "mode_type", "log_normal", ...
      "num_conc", 2900 / si.cm^3, ...
      "geom_mean_diam", 50 * si.nm, ...
      "log10_geom_std_dev", .24 ...
    )) ...
  )) ...
}));

n_part = 100;
aero_state = ppmc.AeroState(aero_data, n_part, "nummass_source");
aero_state.dist_sample(aero_dist);
masses = cell(aero_state.masses());
num_concs = cell(aero_state.num_concs);
fprintf('%g # kg/m3\n', dot([masses{:}], [num_concs{:}]))

usage in other projects

PyPartMC is used within the test workflow of the PySDM project.

Other packages with relevant feature scope

  • aerosolGDEFoam: OpenFOAM CFD-coupled aerosol dynamics including nucleation, coagulation, and surface growth
  • AIOMFAC and AIOMFAC-web: Fortran-implemented aerosol thermodynamic model for calculation of activity coefficients in organic-inorganic mixtures – from simple binary solutions to complex multicomponent systems
  • DustPy: Python package for modelling dust evolution in protoplanetary disks (differences: focus on astrophysical applications vs. atmospheric aerosol)
  • multilayerpy: kinetic multi-layer model for aerosol particles and films
  • PyBox: aerosol simulation model featuring gas and particle chamistry (differences: PyBox focuses on chemical mechanisms; PyPartMC is an interface to PartMC which focuses on physics - e.g., collisions of aerosol particles - while chemical processes are handled with external software, e.g., CAMP or MOSAIC)
  • PyCHAM: CHemistry with Aerosol Microphysics in Python Box Model for modelling of indoor environments, including aerosol chambers
  • PySDM: particle-based Monte-Carlo aerosol-cloud simulation package (differences: PySDM focuses on growth and breakup processes relevant to cloud droplets; PyPartMC focuses on processes relevant to air pollutants and their chemical and physical transformations)
  • SSH-aerosol: C++/Fortran package for simulating evolution of primary and secondary atmospheric aerosols

FAQ

  • Q: How to install PyPartMC with MOSAIC enabled?
    A: Installation can be done using pip, however, pip needs to be instructed not to use binary packages available at pypi.org but rather to compile from source (pip will download the source from pip.org), and the path to compiled MOSAIC library needs to be provided at compile-time; the following command should convey it:
MOSAIC_HOME=<<PATH_TO_MOSAIC_LIB>> pip install --force-reinstall --no-binary=PyPartMC PyPartMC
  • Q: Why pip install PyPartMC triggers compilation on my brand new Apple machine, while it quickly downloads and installs binary packages when executed on older Macs, Windows or Linux?
    A: We are providing binary wheels on PyPI for Apple-silicon (arm64) machines for selected macOS version made available by Github. In case the macOS version you are using is newer, compilation from source is triggered.

  • Q: Why some of the constructors expect data to be passed as lists of single-entry dictionaries instead of multi-element dictionaries?
    A: This is intentional and related with PartMC relying on the order of elements within spec-file input; while Python dictionaries preserve ordering (insertion order), JSON format does not, and we intend to make these data structures safe to be [de]serialized using JSON.

  • Q: How to check the version of PartMC that PyPartMC was compiled against?
    A: Version numbers of compile-time dependencies of PyPartMC, including PartMC, can be accessed as follows:

import PyPartMC
PyPartMC.__versions_of_build_time_dependencies__['PartMC']
  • Q: Why m4 and perl are required at compile time?
    A: PyPartMC includes parts of netCDF and HDF5 codebases which depend on m4 and perl, respectively, for generating source files before compilation.

Troubleshooting

Common installation issues

error: [Errno 2] No such file or directory: 'cmake'

Try rerunning after installing CMake, e.g., using apt-get install cmake (Ubuntu/Debian), brew install cmake (homebrew on macOS) or using MSYS2 on Windows.

No CMAKE_Fortran_COMPILER could be found.

Try installing a Fortran compiler (e.g., brew reinstall gcc with Homebrew on macOS or using MSYS2 on Windows).

Could not find NC_M4 using the following names: m4, m4.exe

Try installing m4 (e.g., using MSYS2 on Windows).

Acknowledgement and citations

We would greatly appreciate citation of the PartMC model description paper (Riemer et al., 2009) and the PyPartMC description paper (D’Aquino et al., 2024) if PyPartMC was used in your study. The citations are:

  • Riemer, N., M. West, R. A. Zaveri, R. C. Easter: Simulating the evolution of soot mixing-state with a particle-resolved aerosol model
    J. Geophys. Res., 114, D09202, 2009, DOI: 10.1029/2008JD011073
  • D’Aquino, Z., S. Arabas, J. H. Curtis, A. Vaishnav, N. Riemer, M. West: PyPartMC: A pythonic interfact to a particle-resolved, Monte Carlo aerosol simulation framework
    SoftwareX, 25, 101613, 2024, DOI: 10.1016/j.softx.2023.101613

The following paragraph provides a more substantial description of PartMC (text released into the public domain and can be freely copied by anyone for any purpose):

PartMC is a stochastic, particle-resolved aerosol box model. It tracks the composition of many computational particles (104 to 106) within a well-mixed air volume, each represented by a composition vector that evolves based on physical and chemical processes. The physical processes—including Brownian coagulation, new particle formation, emissions, dilution, and deposition—are simulated using a stochastic Monte Carlo approach via a Poisson process while chemical processes are simulated deterministically for each computational particle. The weighted flow algorithm (DeVille, Riemer, and West, 2011, 2019) enhances efficiency and reduces ensemble variance. Detailed numerical methods are described in Riemer et al. (2009), DeVille et al. (2011, 2019), and Curtis et al. (2016). PartMC is open-source under the GNU GPL v2 and available at github.com/compdyn/partmc.

References:

  • Curtis, J. H., M. D. Michelotti, N. Riemer, M. T. Heath, M. West: Accelerated simulation of stochastic particle removal processes in particle-resolved aerosol models, J. Computational Phys., 322, 21-32, 2016, DOI: 10.1016/j.jcp.2016.06.029
  • DeVille, L., N. Riemer, M. West, Convergence of a generalized weighted flow algorithm for stochastic particle coagulation, J. Computational Dynamics, 6, 69-94, 2019, DOI: 10.3934/jcd.2019003
  • DeVille, R. E. L., N. Riemer, M. West, The Weighted Flow Algorithm (WFA) for stochastic particle coagulation, J. Computational Phys., 230, 8427-8451, 2011, DOI: 10.1016/j.jcp.2011.07.027
  • Riemer, N., M. West, R. A. Zaveri, R. C. Easter, Simulating the evolution of soot mixing-state with a particle-resolved aerosol model, J. Geophys. Res., 114, D09202, 2009., DOI: 10.1029/2008JD011073

Credits

PyPartMC:

authors: PyPartMC developers
funding: US Department of Energy Atmospheric System Research programme, Polish National Science Centre
copyright: University of Illinois at Urbana-Champaign
licence: GPL v3

PartMC:

authors: Nicole Riemer, Matthew West, Jeff Curtis et al.
licence: GPL v2 or later

Download files

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

Source Distribution

pypartmc-2.1.2.tar.gz (6.9 MB view details)

Uploaded Source

Built Distributions

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

pypartmc-2.1.2-cp315-cp315-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.15Windows x86-64

pypartmc-2.1.2-cp315-cp315-manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.15manylinux: glibc 2.28+ x86-64

pypartmc-2.1.2-cp315-cp315-manylinux_2_28_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.15manylinux: glibc 2.28+ ARM64

pypartmc-2.1.2-cp315-cp315-macosx_15_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.15macOS 15.0+ ARM64

pypartmc-2.1.2-cp315-cp315-macosx_14_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.15macOS 14.0+ ARM64

pypartmc-2.1.2-cp314-cp314-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.14Windows x86-64

pypartmc-2.1.2-cp314-cp314-manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

pypartmc-2.1.2-cp314-cp314-manylinux_2_28_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

pypartmc-2.1.2-cp314-cp314-macosx_15_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

pypartmc-2.1.2-cp314-cp314-macosx_14_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

pypartmc-2.1.2-cp313-cp313-win_amd64.whl (4.3 MB view details)

Uploaded CPython 3.13Windows x86-64

pypartmc-2.1.2-cp313-cp313-manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

pypartmc-2.1.2-cp313-cp313-manylinux_2_28_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

pypartmc-2.1.2-cp313-cp313-macosx_15_0_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.13macOS 15.0+ x86-64

pypartmc-2.1.2-cp313-cp313-macosx_15_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

pypartmc-2.1.2-cp313-cp313-macosx_14_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

pypartmc-2.1.2-cp312-cp312-win_amd64.whl (4.3 MB view details)

Uploaded CPython 3.12Windows x86-64

pypartmc-2.1.2-cp312-cp312-manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

pypartmc-2.1.2-cp312-cp312-manylinux_2_28_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

pypartmc-2.1.2-cp312-cp312-macosx_15_0_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

pypartmc-2.1.2-cp312-cp312-macosx_15_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

pypartmc-2.1.2-cp312-cp312-macosx_14_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

pypartmc-2.1.2-cp311-cp311-win_amd64.whl (4.3 MB view details)

Uploaded CPython 3.11Windows x86-64

pypartmc-2.1.2-cp311-cp311-manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

pypartmc-2.1.2-cp311-cp311-manylinux_2_28_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

pypartmc-2.1.2-cp311-cp311-macosx_15_0_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

pypartmc-2.1.2-cp311-cp311-macosx_15_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

pypartmc-2.1.2-cp311-cp311-macosx_14_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

pypartmc-2.1.2-cp310-cp310-win_amd64.whl (4.3 MB view details)

Uploaded CPython 3.10Windows x86-64

pypartmc-2.1.2-cp310-cp310-manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

pypartmc-2.1.2-cp310-cp310-manylinux_2_28_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

pypartmc-2.1.2-cp310-cp310-macosx_15_0_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.10macOS 15.0+ x86-64

pypartmc-2.1.2-cp310-cp310-macosx_15_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

pypartmc-2.1.2-cp310-cp310-macosx_14_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

pypartmc-2.1.2-cp39-cp39-win_amd64.whl (4.3 MB view details)

Uploaded CPython 3.9Windows x86-64

pypartmc-2.1.2-cp39-cp39-manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

pypartmc-2.1.2-cp39-cp39-manylinux_2_28_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

pypartmc-2.1.2-cp39-cp39-macosx_15_0_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.9macOS 15.0+ x86-64

pypartmc-2.1.2-cp39-cp39-macosx_15_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.9macOS 15.0+ ARM64

pypartmc-2.1.2-cp39-cp39-macosx_14_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

File details

Details for the file pypartmc-2.1.2.tar.gz.

File metadata

  • Download URL: pypartmc-2.1.2.tar.gz
  • Upload date:
  • Size: 6.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pypartmc-2.1.2.tar.gz
Algorithm Hash digest
SHA256 fc0a46d561dedf1e6672abc901d1babffdead26c156189f6e32b0d257112dd9a
MD5 40d6537111115d52c8dfc2d863cbc972
BLAKE2b-256 ce015d63182eff784f246ab09cf76fb80fcefc7092acefcdc0c7c8466f45cccf

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp315-cp315-win_amd64.whl.

File metadata

  • Download URL: pypartmc-2.1.2-cp315-cp315-win_amd64.whl
  • Upload date:
  • Size: 4.5 MB
  • Tags: CPython 3.15, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pypartmc-2.1.2-cp315-cp315-win_amd64.whl
Algorithm Hash digest
SHA256 ead6dcdfa0078b1e257cff58e2e76934a7946bba6869509b328a290c850aa996
MD5 cc37e4db7213dcc10aaccef36f053dbb
BLAKE2b-256 4c7bfb059d22d9dd6d48edfe6a9f71ef955c58f867772bdb376c324d0d81d9a0

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp315-cp315-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp315-cp315-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 36bb5fec2d610e4278f29331f43bcc3b567a7de9cfd4e5fcf5e19128f258a2ff
MD5 502b3fd8848be4de6ea33008c150fd44
BLAKE2b-256 3495e20d943c5d87933b0bc60c98b97cdd3fafaff945489ff3020ea6e3c561aa

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp315-cp315-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp315-cp315-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e87f1cff3a83a9757417db57c0351ac4222dd8440e9c511b39fae4a08b798137
MD5 d91b9036c613369960c70f2a36b12db0
BLAKE2b-256 59f2c5b8b161508bc0546c6756d48770418ba25f810d120e22849a0fe2b9330d

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp315-cp315-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp315-cp315-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 93a151a1b4fdfcb8042f4525a1f48864c9ce669adfe9aebda9267a18e4971301
MD5 3ce0f6e9d567d4751813a89831d033c9
BLAKE2b-256 e0772176c94df1b04f2a3f14bc3c611310d4a67353f16db8e13bbcdce9e37a41

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp315-cp315-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp315-cp315-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 4ed20bc345d8dc7eb09d3295273516477a9652f669e13360f71146b5e0e15ec9
MD5 7a97b04cd03b5a2e7afc0a2c11bf4dbc
BLAKE2b-256 216e07db8eb74a77352dfd2e79253fe6f8a1e9aef5fba794c731a0e66601e0ca

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pypartmc-2.1.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 4.5 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pypartmc-2.1.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 8c02eed3ac8c5666642574128e904256db9edb5d5f18fa6bcf5c4c7bb7734caa
MD5 cdc41ed111e9ea22111838791824b334
BLAKE2b-256 1eea6c3b0d43e5f1b662d9452d2096ed7f2ac0c5f77fc777e93a5710f09fd690

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1248ab579442a5377f805eb7570b593de0258e33853670a6ce695bcefce3cd48
MD5 4ec86e499018257c641f6c9638a5645a
BLAKE2b-256 0276495816f28aa09ecc065a1115b221cca84972b8bcd79190baf77f13a67b02

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp314-cp314-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 732f60cbdf3a84fe744861429f561f81b3ef43b3bcdeb5b300e5bd71aeaeb05e
MD5 7d981089b6dd14aaeb896f0f8b11fc71
BLAKE2b-256 041a09afa2c998b6610c0cb95d15a39978fff65b520d912127b86fa6984ad58e

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp314-cp314-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 6d9aa74ed848843448e26fe7c89dc5cbad962a4e1abe947a9737513e28d6dbef
MD5 3c1299e1120e2cdc07acfa4afd699fa2
BLAKE2b-256 f52d610f5c7662e92ff67ec6fd0c4dd56ed00719d078f04411243e777a487c4e

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 02344d9705a0d845122db9d273e7200f20e2558a4657ffef7a370d87305dbb29
MD5 306c939dde86808eb7c8ea1cad0dc277
BLAKE2b-256 d275cec0c5ab67becd284150384ebc03547b10fee75f8bcb153292d80454e6b1

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pypartmc-2.1.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 4.3 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pypartmc-2.1.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7b195b5abd25d8bf1190fd3a48c9af68f148f9b1312c33c99c6af6e98878072a
MD5 691638e3f1e55cbdfe0b7922f1de432d
BLAKE2b-256 c2a62a0e7fa01245e4ecb3603da6fac32d41390e871272e089f45c2f52db0fd9

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2900bfe2b30e485f71e9ab3804ebd6f693302b79d1dfc0d9a91b7255fe2f8bae
MD5 39ac3e23d4aa82d099a756c3c01abde9
BLAKE2b-256 8e82459b246eb2628e1dedf1af34ba1bb0b7c8a34c0b258d170806b5b5decde7

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c150b4d7075b02d005f6098f91ec62e0483d08d2220961a8e235a58efb4ee69d
MD5 13871c595154580e6ad7f528be4c1421
BLAKE2b-256 d93deaf1fcf710173e30dc617846390c000e9e4a5dc315cef9252d974d26c817

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp313-cp313-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp313-cp313-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 9c2aed18a42f98d1c8b738bad1514b92dfb7689babb6d3a498d410fbf156b745
MD5 9dc666fe758e1cb814d179dc8460bb32
BLAKE2b-256 04fdc7b3e7d11618ec9c7a7a99db2c95bd0d01d3ae41c59b4e6fb9a71faf88e0

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 14b4dd2b3343cc2aca44c205bd95fa585bd63291e161bdbf2a572cfcb44b812d
MD5 92716b5e8d5f07f7ce21f9ed99e4ac54
BLAKE2b-256 ef12a2b832ff34f7ef8e0acb9b63274c15f1356d3f6c6b0420f78645131df698

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 cb7baaa42b9ede7b38c4a7d1800f2f4848c33bdf9f60c9522337c9c9a7f4ea47
MD5 78f31ec8d782fa7b5e12e79fd5a6c814
BLAKE2b-256 e38192e3463edf16bb0cd3066b5ebda62bf8117420c9b7f62ba3af384f9983d7

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pypartmc-2.1.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 4.3 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pypartmc-2.1.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 16cb1b7ebc9eedc193efdcd2171b0c9d3640e0a500919c34807962e294193424
MD5 fbaeb2328fa05fc13613fa28196679b3
BLAKE2b-256 26d810929727f3035626acc0fee008369f6f306ede065e5b28d528b1f2878c88

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0e1fe604568d8d0ab74465b25346b78ae70013c136e8e486e22da13fc930e416
MD5 bd8ea65cd1a422294fe291dd4366d1e0
BLAKE2b-256 d043402c6f2987b22b6ba30bcb022e7be074162dac804e90beaa0d23c4526d46

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e97c3aee5efa4107a382c737b382f581c0401487186049c41e0c9be084566efb
MD5 f8e211b238b43b819c37448b4631fb5a
BLAKE2b-256 4216e4e31efeb101c516b112a6e943a170c4ba747cf6ea41ca752615715cc9ad

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp312-cp312-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 8aaefb411ef627c9dae504ff29d47caa512d2e17b876c12f7a69907d5510949e
MD5 0b60fc4ce7cfdb1b76b56fa3905c96e2
BLAKE2b-256 4f317e29b6ee2316bcb3a31fd40dbf85ad6c762d7adc971a215e966db973e7e4

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 fc70ca449b488bc8cd8c15bf2c1a2bba8f4d16bb3be3d187d0d66f2330176ecd
MD5 6e5d3815d0ba598ab283ad1e3214a5bf
BLAKE2b-256 9e8a88f98a6a3114261d7cb658429121df1f67a2a83b36cc4f66b6cacf0f30e2

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 2a2aa5c0066e97bf3dc55f923cf7d6c75fbac4ffd99588599a1dfed23ceaa5d5
MD5 7e4eef734e613353c5b56bc45256fbee
BLAKE2b-256 65ae8f7bfcca1b7567b4ba1964d5f88517225668788ae1a4e1fc86d3f451ef98

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pypartmc-2.1.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 4.3 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pypartmc-2.1.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3d9c4e7f5d4c6a2cbda5dc1b0b6d7560a1a3a58aeaf2b14372440d50f6626df1
MD5 58e78522bda0a1d82e9f679387baac43
BLAKE2b-256 7068e912f70385984799f1186a43eb98e941bad1ba3fb2dd7fa0125eaf21a68e

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6f4ab0f9232e810fb8a250791644183fa598f432263e2792baffccd3350cb4b9
MD5 3015e378988fbebaf9c4b924696e3ff5
BLAKE2b-256 8fcc7e5484f76f6d1456a83824e63e0f93bf8c6a437d2e26a341befdb0462800

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fb63d3d7ba90a09204255d44086e0f78b189d1e662373fde31ed1ccb148794df
MD5 911a6bddb2d03ad1334eb75ed1a299b3
BLAKE2b-256 22b0c361573e200fdd4d0d9355c772076deef373a146bec271a868ebcfaf3b39

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp311-cp311-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 09ebaae816c6bb1d1f5517f5e673056e9d0e6ccd374b386edfbae52298a1fc16
MD5 17804bdb51132a97b7cbad1dc80efa5e
BLAKE2b-256 9425388faf9a6ffad157ca28e7eb819d55915032cfa92bf48e2952d0eae368d8

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 8977e241d97cda934c162fb526edfc01160f5a9fad75ea40c358498452a65712
MD5 08eb5c144077e25d174653bf5bdc9eee
BLAKE2b-256 f7fea79c33a17454f35f0ac79e9b649faf248df94bbd923b8d6683c5174ba70a

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 b096bdbf1b205fb0b37734d40a36a8d6a4cc2835d8a3b98dca8d78f93566774b
MD5 a12872f2c829f0d03834ddb3db6cd4e1
BLAKE2b-256 574af488ed7e6e669572356677ca94acea39cb07f35b07506b686b6a0a04cdd6

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pypartmc-2.1.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 4.3 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pypartmc-2.1.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f484f9099e158cabf9164450da5274a994c55483ce853a09576178d3329f455e
MD5 fe70cd7b46d97458debe29b17c82d5b0
BLAKE2b-256 c448d312fc98d9b33c446d88e958759b46656212ee0c3e21940d8ea0a578ed43

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 336314fe846b9b02d1d85da0969b5faf7c32518c5c5d6deced314ba366de0d5b
MD5 a29ca838a9991ebc8bf47a981623bb65
BLAKE2b-256 0a98c80615781a08a37cd9d44983ba81672d352ece69bd78f4bbda781c8ce56d

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 665567e4445245b576e820d239ac41c85da3a441835dd5e61ea6ff586f607327
MD5 268d12dd493d6379c613ec9ca172cb59
BLAKE2b-256 ba4986cd592f312a1cfd6a5d65e19c3e5cfd91c27da4ff622e0b58d31344ec42

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp310-cp310-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 373aa2cc338602d063a959b1c71f1b00e2897091672f532c0bafe6616006ca99
MD5 ae1eabf15eb0c7553ade384759b14091
BLAKE2b-256 95df8cb83aaf08d2445ec154455a585d78fa9af1dc3e24fc7d3972b1c20ed2a5

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 4aeaec3ad29f340b0ffb7a07e6c88631887bda86c76f942fd91ad6f459b46916
MD5 4b68ffde2655f02187036fe0e4164856
BLAKE2b-256 05099fdf57db7cc40455ae2f13556f159acd211a318f9908789ba76ed1ac0f83

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 41833e250afb15d418ba5200d1726c060da219b5ea4818e04d26b3e50adc8751
MD5 f274dbee1361afe08f06ba76faded7cf
BLAKE2b-256 d7be5e789b759db5808d546a39ca2183a884c580e1680a08cf7e8c3998060d08

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pypartmc-2.1.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 4.3 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pypartmc-2.1.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 eb40880193d9a57200266f482f86f108aa19027bac2aeb61deb15ecd3d63c3be
MD5 faf0238a0ce87f636a39a35905508d3f
BLAKE2b-256 f921b25176f6af1fbafd1208826b2ead195eb040b4d4b0a086dbac82a7686ca9

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a862611393b513beddf19103bc33b2f97359e7ef56c0e090c6264d89a9a1d748
MD5 36686b97d7f849a7b49cd9ad6e05585e
BLAKE2b-256 b87f2f4ae8b2867b0d271e4f036ce725a7ea88b131e75e078a75bb92616679c7

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4f255d34efa6192c2c80b2d378898e5ece79a94a92a3b485e3ccdd22dae2257a
MD5 5472717d13cf88c060ad5c609ade688b
BLAKE2b-256 9a507214a14e1da48f6c102980f0e034c2d859d459f83f4e1b870fbb7d2a7f32

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp39-cp39-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp39-cp39-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 536b9fadfdcb34b711986466664445e3c3dd1e84c756cb590ab44a4d15780eac
MD5 9561e69c7613b8200d24f5046a1caf5c
BLAKE2b-256 673566813c1a6b0a18ff774510698581aea629162201875e6828c4bfa3186c28

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp39-cp39-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp39-cp39-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 c867a855c0ce8052a661c282fd6f4924614a1714999eb1bfaa3761b50a31af8b
MD5 e45ad609e9934821d92018fc14ee249a
BLAKE2b-256 24b8a6ca2b896c2555248d56e2867fa8977a30c4f20fac4e5b4182ef83cb8c00

See more details on using hashes here.

File details

Details for the file pypartmc-2.1.2-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pypartmc-2.1.2-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 58d53e6a30f0408fa1d2572abf92dea0778d0a7bf5a7ebea167ccf6c283f85b8
MD5 a5411cd870289c58cab1b6f11730f13a
BLAKE2b-256 eb9d5c57d5439426efabb55805adceeab42a1fb89f556ef7ce2becfa10d08883

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.1.2 This release

41 files

2.1.0

37 files

2.0.8

37 files

2.0.7

37 files

2.0.6

37 files

2.0.4

31 files

2.0.3

31 files

2.0.2

31 files

2.0.1

31 files

2.0.0

1 file

1.7.2

34 files

1.7.1

34 files

1.6.0

20 files

1.5.0

20 files

1.4.5

20 files

1.4.2

22 files

1.3.13

22 files

1.3.12

22 files

1.3.11

22 files

1.3.10

22 files

1.3.9

21 files

1.3.8

20 files

1.3.7

20 files

1.3.6

22 files

1.3.5

22 files

1.3.4

21 files

1.3.3

21 files

1.3.2

21 files

1.3.1

21 files

1.3.0

21 files

1.2.1

21 files

1.2.0

21 files

1.1.4

21 files

1.1.3

21 files

1.1.2

20 files

1.1.1

20 files

1.1.0

20 files

1.0.3

20 files

1.0.2

20 files

1.0.1

20 files

1.0.0

22 files

0.9.5

20 files

0.9.4

20 files

0.9.3

20 files

0.9.2

20 files

0.9.1

20 files

0.9.0

20 files

0.7.1

22 files

0.7.0

20 files

0.6.4

22 files

0.6.3

20 files

0.5.0

20 files

0.4.0

16 files

0.3.0

16 files

0.2.0

16 files

0.1.0

16 files

0.0.35

16 files

0.0.34

16 files

0.0.33

16 files

0.0.32

16 files

0.0.31

16 files

0.0.30

16 files

0.0.29

16 files

0.0.28

16 files

0.0.27

16 files

0.0.26

16 files

0.0.25

16 files

0.0.24

16 files

0.0.23

16 files

0.0.22

16 files

0.0.20

13 files

0.0.19

13 files

0.0.18

13 files

0.0.17

13 files

0.0.15

13 files

0.0.14

10 files

0.0.13

10 files

0.0.11

9 files

0.0.9

14 files

0.0.8

17 files

0.0.7

17 files

0.0.6

17 files

0.0.5

14 files

0.0.4

10 files

0.0.3

10 files

0.0.2

10 files

0.0.1

10 files

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