Skip to main content

Python bindings for the MMG software

Project description

mmgpy

PyPI conda-forge Python License Docs codecov

mmgpy brings the power of MMG mesh adaptation to Python. Generate, optimize, and refine 2D, 3D, and surface meshes through a native PyVista accessor.

import pyvista as pv
import mmgpy  # noqa: F401  -- registers the .mmg accessor + Medit reader/writer

mesh = pv.read("input.mesh")
remeshed = mesh.mmg.remesh(hmax=0.1)
remeshed.save("output.vtk")

Mechanical piece remeshing

Try It

No installation needed, run directly with uvx:

# Remesh a mesh file from the command line
uvx mmgpy input.stl -o output.mesh -hmax 0.1

# Launch the interactive UI
uvx --from "mmgpy[ui]" mmgpy-ui

Installation

The recommended way to install mmgpy:

uv pip install mmgpy

This uses pre-built wheels from PyPI that bundle all native libraries (MMG, VTK), no compiler needed.

Other install methods

# pip
pip install mmgpy

# conda-forge
conda install -c conda-forge mmgpy

# With UI support
uv pip install "mmgpy[ui]"

# With elasticity-based displacement propagation
uv pip install "mmgpy[fem]"

Using uv for project management

uv add mmgpy                 # add to project dependencies
uv tool install mmgpy        # install CLI tools globally
uv tool install "mmgpy[ui]"  # install CLI tools + UI globally

PyPI vs conda-forge

PyPI (pip/uv) conda-forge (Linux/macOS)
Install speed Fast (pre-built wheels) Slower (solver + download)
Dependencies Bundled (self-contained) Shared across packages
Disk usage Larger (duplicate VTK/libs) Smaller in conda environments
Best for Quick setup, isolated use, CI Scientific stacks sharing VTK/NumPy

Use PyPI (uv pip install) for the fastest setup. Use conda-forge when you already have a conda environment with VTK, PyVista, or other scientific packages.

How it works

Importing mmgpy registers a PyVista plugin that adds two things to every pv.UnstructuredGrid and pv.PolyData:

  • A .mmg accessor that exposes the full MMG API: remesh, remesh_optimize, remesh_uniform, remesh_levelset, move, validate, element_qualities, and more.
  • A Medit reader/writer for .mesh and .meshb files (with auto-loading of companion .sol files into point_data / cell_data).

Every accessor call returns a fresh PyVista dataset, so the result composes with the rest of the PyVista API (slicing, plotting, IO).

Features

  • Multi-dimensional, 2D triangular, 3D tetrahedral, and surface meshes (auto-detected from cell types via dataset.mmg.kind).
  • Local refinement, sphere / box / cylinder / point-based sizing, passed as local_sizing=[...] on remesh.
  • Anisotropic adaptation, metric tensors in point_data["metric"], including least-squares Hessian recovery from a scalar field.
  • Level-set discretization, extract isosurfaces from implicit functions via mesh.mmg.remesh_levelset(...); multi-material splits via set_multi_materials.
  • Lagrangian motion, move boundaries and remesh through mesh.mmg.move(displacement, ...), with a Laplacian propagator or an optional elasticity backend (fedoo).
  • Required entities, lock vertices, edges, triangles, or tetrahedra during remeshing via kwargs (required_triangles=...) or mmg_* data tags.
  • Companion .sol I/O, scalar / vector / tensor fields via load_sol, save_sol, load_all_sols, save_all_sols.
  • Validation & quality, mesh.mmg.validate(detailed=True) returns a ValidationReport; mesh.mmg.element_qualities() returns MMG's in-radius ratios.
  • 40+ file formats, native Medit, plus everything PyVista supports (VTK, STL, OBJ, GMSH, MED, Abaqus, etc.; install pyvista[io] for meshio-backed formats).

Usage

Basic remeshing

import pyvista as pv
import mmgpy  # noqa: F401

mesh = pv.read("input.mesh")
remeshed = mesh.mmg.remesh(hmax=0.1)

q_before = mesh.mmg.element_qualities()
q_after = remeshed.mmg.element_qualities()
print(f"Quality: {q_before.mean():.2f} -> {q_after.mean():.2f}")

remeshed.save("output.vtk")

Local sizing

Refine inside specific regions without touching the rest of the mesh:

remeshed = mesh.mmg.remesh(
    hmax=0.1,
    local_sizing=[
        {"shape": "sphere", "center": [0.5, 0.5, 0.5], "radius": 0.2, "size": 0.01},
        {"shape": "box", "bounds": [[0, 0, 0], [0.3, 0.3, 0.3]], "size": 0.02},
        {"shape": "cylinder", "point1": [0, 0, 0], "point2": [0, 0, 1],
         "radius": 0.1, "size": 0.01},
        {"shape": "from_point", "point": [0.5, 0.5, 0.5],
         "near_size": 0.01, "far_size": 0.1, "influence_radius": 0.3},
    ],
)

Typed options

from mmgpy import Mmg3DOptions

opts = Mmg3DOptions(hmin=0.01, hmax=0.1, hausd=0.001)
remeshed = mesh.mmg.remesh(opts)

# Or use presets
remeshed = mesh.mmg.remesh(Mmg3DOptions.fine(hmax=0.05))

Anisotropic metrics

Drop a per-vertex metric on point_data["metric"] and remesh() picks it up:

import numpy as np
import mmgpy.metrics as metrics

sizes = np.full(mesh.n_points, 0.05)
mesh.point_data["metric"] = metrics.create_isotropic_metric(sizes)

remeshed = mesh.mmg.remesh()

For solution-adaptive remeshing, recover a Hessian and convert it to a metric:

from mmgpy.metrics import compute_hessian, create_metric_from_hessian

hessian = compute_hessian(vertices, triangles, field)
mesh.point_data["metric"] = create_metric_from_hessian(
    hessian, target_error=5e-3, hmin=3e-3, hmax=8e-2,
)
remeshed = mesh.mmg.remesh(hgrad=2.0)

Level-set discretization

import numpy as np

levelset = (
    np.linalg.norm(mesh.points - [0.5, 0.5, 0.5], axis=1) - 0.3
).reshape(-1, 1)

discretized = mesh.mmg.remesh_levelset(levelset)

Lagrangian motion

Apply a per-vertex displacement and remesh to maintain element quality:

import numpy as np

displacement = np.zeros((mesh.n_points, 3))
displacement[:, 0] = 0.1

moved = mesh.mmg.move(displacement, hmax=0.1)

Pass only boundary values plus propagate=True to fill the interior. The default is a Laplacian smoother; pass propagation_method="elasticity" to use the fedoo-backed linear-elasticity solver (uv pip install "mmgpy[fem]").

Locking entities

Keep specific vertices, edges, triangles, or tetrahedra fixed during remeshing:

remeshed = mesh.mmg.remesh(
    hmax=0.1,
    required_triangles=np.array([3, 7, 11], dtype=np.int32),
)

Or attach the constraint to the dataset (it travels through save / copy):

mask = np.zeros(mesh.n_cells, dtype=bool)
mask[[3, 7, 11]] = True
mesh.cell_data["mmg_required_triangles"] = mask
remeshed = mesh.mmg.remesh(hmax=0.1)

Visualization

remeshed.plot(show_edges=True)

The accessor returns a regular PyVista dataset, so anything PyVista does (slicing, integration, custom plotters) works directly on the result.

Command Line

MMG executables are bundled with the wheel:

# Auto-detect mesh type
mmg input.mesh -o output.mesh -hmax 0.1

# Or use specific commands
mmg3d input.mesh -o output.mesh -hmax 0.1
mmgs surface.stl -o refined.mesh -hausd 0.001
mmg2d domain.mesh -o refined.mesh -hmax 0.05

# Check versions
mmg --version

The _O3 suffix variants (mmg3d_O3, etc.) are also available for compatibility.

Gallery

Surface remeshing

Smooth surface optimization

3D quality improvement

Documentation

kmarchais.github.io/mmgpy

Contributing

Contributions are welcome. See CONTRIBUTING.md for development setup, coding standards, and the pull request process.

License

MIT

Project details


Download files

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

Source Distribution

mmgpy-0.15.0.tar.gz (19.6 MB view details)

Uploaded Source

Built Distributions

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

mmgpy-0.15.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mmgpy-0.15.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (9.5 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

mmgpy-0.15.0-cp314-cp314-win_amd64.whl (4.3 MB view details)

Uploaded CPython 3.14Windows x86-64

mmgpy-0.15.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mmgpy-0.15.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (9.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

mmgpy-0.15.0-cp314-cp314-macosx_11_0_arm64.whl (7.5 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

mmgpy-0.15.0-cp313-cp313-win_amd64.whl (4.1 MB view details)

Uploaded CPython 3.13Windows x86-64

mmgpy-0.15.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mmgpy-0.15.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (9.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

mmgpy-0.15.0-cp313-cp313-macosx_11_0_arm64.whl (7.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

mmgpy-0.15.0-cp312-cp312-win_amd64.whl (4.1 MB view details)

Uploaded CPython 3.12Windows x86-64

mmgpy-0.15.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mmgpy-0.15.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (9.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

mmgpy-0.15.0-cp312-cp312-macosx_11_0_arm64.whl (7.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

mmgpy-0.15.0-cp311-cp311-win_amd64.whl (4.1 MB view details)

Uploaded CPython 3.11Windows x86-64

mmgpy-0.15.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mmgpy-0.15.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (9.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

mmgpy-0.15.0-cp311-cp311-macosx_11_0_arm64.whl (7.5 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

mmgpy-0.15.0-cp310-cp310-win_amd64.whl (4.1 MB view details)

Uploaded CPython 3.10Windows x86-64

mmgpy-0.15.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

mmgpy-0.15.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (9.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

mmgpy-0.15.0-cp310-cp310-macosx_11_0_arm64.whl (7.5 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file mmgpy-0.15.0.tar.gz.

File metadata

  • Download URL: mmgpy-0.15.0.tar.gz
  • Upload date:
  • Size: 19.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mmgpy-0.15.0.tar.gz
Algorithm Hash digest
SHA256 339d1f81d6bfa4364cce7d86f7f8d25cf35c8c581397f4f29b36825999910f9d
MD5 34ce2169e82306f5ceea3c714066d2fc
BLAKE2b-256 d5775814826d12b7bfb227ddc171fbdaec6c5ec3b6366b4cc4f09900233d6996

See more details on using hashes here.

File details

Details for the file mmgpy-0.15.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mmgpy-0.15.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9c2e8fdd83f72bb1426c628116202c34f47636db1c83db24298d152083e32010
MD5 5655a340923363623435a823a8ccd66f
BLAKE2b-256 b73a529390b90999ced7ca4e3ddb8d5132680ce71b120aa9f796ed6788d96d1f

See more details on using hashes here.

File details

Details for the file mmgpy-0.15.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for mmgpy-0.15.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c271357059318eb8c976e0e2ff4012df491f3c700cc4af6347b8ce994916e1dd
MD5 cab726d902301fc2d7a287ab09db0930
BLAKE2b-256 ef8b2e1e20e7673a04f209747024178d91ca323c88139833e5772aac91e34ab9

See more details on using hashes here.

File details

Details for the file mmgpy-0.15.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: mmgpy-0.15.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 4.3 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mmgpy-0.15.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 0b05d28c2da15cf5070d46c52ebad1bc964608b891ccbdee6c590cf99df9b893
MD5 9bfb9a1a3e89fd4053417c49292921c4
BLAKE2b-256 ac5a4436e83e870eac9c129ba014ea49269ede5afe0ef1fcdd588b9c994a7b74

See more details on using hashes here.

File details

Details for the file mmgpy-0.15.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mmgpy-0.15.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b17b4ad1cc8a1e3abb86cd3444e3c52558c99fcbc237c411747f51a035525c7e
MD5 b946c2997358d0d43dd64d23a89db79a
BLAKE2b-256 b6abe8ed67673ad24d683cb5cf673175d72ea1e580e56c282fbc8b96156e0456

See more details on using hashes here.

File details

Details for the file mmgpy-0.15.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for mmgpy-0.15.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ee3be6fdaccc26e2a1550e2753737196e7844c1c175fb9456808a155f99dd492
MD5 055ae7004cd97ac91e941245c19021d1
BLAKE2b-256 a00ef5c1fc9c98f825f65deabde71283f5cde1ccf351a29056accca694519469

See more details on using hashes here.

File details

Details for the file mmgpy-0.15.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mmgpy-0.15.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5ffa86362f8ed8444bb8643036c63bbb10ddaa79dbfeabae2293413095e83c63
MD5 15cedaa9bdd59795aa0f734cc42ceb9a
BLAKE2b-256 a91dd1d82ae2c490384811ed4df9691fd30bbe206fc237e78dd20bd9f42cc3e6

See more details on using hashes here.

File details

Details for the file mmgpy-0.15.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: mmgpy-0.15.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 4.1 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mmgpy-0.15.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 fde83c2de0488c7705490568da4ae6b2cd1ba4a90258f78bed100d1a11dbdaf3
MD5 9f5957ba376c3426bc61eea1fdf92e12
BLAKE2b-256 24bac4e8090ee44fa49ba92bdb7612131b6d2dd6d1934b381d40bd4fb0f14144

See more details on using hashes here.

File details

Details for the file mmgpy-0.15.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mmgpy-0.15.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 029483e52673d337c85f2057ed5c6b74b3bdf8d7e12afeb425fff58887e43dca
MD5 aff6b3336b9a96cc21682cf718f19b5d
BLAKE2b-256 103596102b00189191845b6f51d195c83dbdca3962e1d70ddc82057117b79f30

See more details on using hashes here.

File details

Details for the file mmgpy-0.15.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for mmgpy-0.15.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7f8e05e31f918f303626c82cefa8e4fc2086ecdb93e994cf32dcf0230b4213fa
MD5 e0526bd09d964602f4fdee2b0ba22d50
BLAKE2b-256 32e82974ccaba752bbe509aa0e3a352851617b789b2a09543d9a792fac2576b4

See more details on using hashes here.

File details

Details for the file mmgpy-0.15.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mmgpy-0.15.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9ad6e1f3c5c1ec42e3a27e793cb71667e3d77656721ddf0ba10827b12838290e
MD5 95d63b6341638d2758abf50b586fce68
BLAKE2b-256 a18e326d50ff7719ff3a6dbfb7fb6547553685df55a1c2e3435839c943513398

See more details on using hashes here.

File details

Details for the file mmgpy-0.15.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: mmgpy-0.15.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 4.1 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mmgpy-0.15.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e333a24759eb6768c6c55ef5efc769b9003e0f5082c8e871ec691cfb8f87df95
MD5 56b1771f8b87086be600721691fa3c5a
BLAKE2b-256 c3666b2323afaeafb5847e8ed80db1fcbcccc9455aa709388c8d30bcd8545a46

See more details on using hashes here.

File details

Details for the file mmgpy-0.15.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mmgpy-0.15.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 620854e859fe04014aae17307584b8d354cf85b8c9a9c658a6ab3581e895f6d9
MD5 c05020fb1b1639c9d697f4d423e9e378
BLAKE2b-256 2cf88d57b29e06d406c0b7723e08a6ddc5e7f4634194e4b12a22dfcecb17c5b8

See more details on using hashes here.

File details

Details for the file mmgpy-0.15.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for mmgpy-0.15.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 34df7dc52b657146c815521b42e70e515d6fd2fad842001e6af54e84e356247d
MD5 c352188de72730ea08b041a7273edafb
BLAKE2b-256 a803d6dd3321e71ab6207063dda675d5b45a55d8314aff13b45fcdd1e455cc9a

See more details on using hashes here.

File details

Details for the file mmgpy-0.15.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mmgpy-0.15.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4468c73240c2e99024390fe06565272b0e9ecae56b62edc54ba547170ec1c0e0
MD5 9f75b89f2973c78ed723af00e20280f0
BLAKE2b-256 a5a0e6a1a3787ec060b23e9d613fba779461a5cf55d84e994665c46b770504c5

See more details on using hashes here.

File details

Details for the file mmgpy-0.15.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: mmgpy-0.15.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 4.1 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mmgpy-0.15.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ee4f84f29976a20ef5a385b1656effa7392d0234514268a4799c9a03a2bcf2ec
MD5 4a616d8bf36a8f84b15aa94ae8cb811f
BLAKE2b-256 302eb42cea05f71c6847f2ade245f7bcff3f5bacb61d784e77c75fcc6b250c17

See more details on using hashes here.

File details

Details for the file mmgpy-0.15.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mmgpy-0.15.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 45ee78ef64c26fccd5ed0539a8ecc11fc2b82d220eae0983811beb051b5d6e93
MD5 7961c4d4d035ba823c999d1f382ea7e5
BLAKE2b-256 1ed3b21b110126bde11ff25fdbaec849f44c5fba6a07438006fa37c9e6b0a804

See more details on using hashes here.

File details

Details for the file mmgpy-0.15.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for mmgpy-0.15.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d11792516e1a407d66def358dde050bbfa7db229c008beb1df66443be1fa5157
MD5 1b05be310e7f2eb4a9eb13359edfce04
BLAKE2b-256 764a4fb26a23366ddd4a6e161d6084d58e844238633ca117e6d91ccf0dd58c49

See more details on using hashes here.

File details

Details for the file mmgpy-0.15.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mmgpy-0.15.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0cdd9392cdf06a14ccdd2a22f7c994320a4184574606fa27a08f9aac536b5b73
MD5 87a1846fd890e6a1c94d5940934f2f8c
BLAKE2b-256 6991ffccf7ef68e5466f2f5bf84669b2016e33bd6ae1a09449ccfc362ff048fc

See more details on using hashes here.

File details

Details for the file mmgpy-0.15.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: mmgpy-0.15.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 4.1 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mmgpy-0.15.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3bb4a3fe7f0061d57f002dbaf1a92258cc903f52bfa841ac0e4955c7bc042ef9
MD5 7a6251baba304ccd9f062a3926e8a717
BLAKE2b-256 1d46a63e6f7c901a31cadf89292c39f44b5feb7009404fe895e7d6183e48344d

See more details on using hashes here.

File details

Details for the file mmgpy-0.15.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mmgpy-0.15.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 778afe23514307df2274c1625cbe0160a2b5858aaaec756f1abd7f83c4900d2e
MD5 2402e8b58ecf06891275d897e9e417f6
BLAKE2b-256 ca3292d024b14862e16942b44cfbafb65f0c56f5223e4017c537a477828ea17e

See more details on using hashes here.

File details

Details for the file mmgpy-0.15.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for mmgpy-0.15.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 92cb6fec1976cae2f201fb0ad206e6e35781aec5224602e7899a60da48ea82da
MD5 c90517ab08bdfa18a2083165768372f8
BLAKE2b-256 a5b5586065b1f28c716f484eb8a77b40c68f7cc145371c4b885bfa97f3437a4c

See more details on using hashes here.

File details

Details for the file mmgpy-0.15.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mmgpy-0.15.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bb7199aa036089cce873ea0999db269aeb4f954a9f402744aa4a896aca2e96aa
MD5 bdb4fceab3b64280e43c421700120db0
BLAKE2b-256 c0e4ee963f185f002582957ce2a7c050b91eef7c2af2a2ad6daba9b6b0babd1e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page