Library for connected image filtering based on morphological trees
Project description
MorphologicalAttributeFilters
Project status: research library for dynamic morphological-tree experiments.
This package focuses on a proper-part tree model for image-domain partial partitions, tree editing, typed altitude contracts, incremental attributes, contours, and project-specific morphology research. It is not intended to be a general-purpose replacement for Higra.
Scope
This repository is a research implementation for morphological-tree workflows
that need direct topology ownership, staged edits, typed altitude buffers, and
project-specific attribute machinery. Its central model is a tree over
image-domain partial partitions: image pixels are explicit proper parts, and
internal morphological nodes own those proper parts directly. The implemented
models share the MorphologicalTree topology abstraction: rooted inclusion
topology, dense internal NodeId values, and explicit proper-part ownership.
Current functionality includes:
- max-tree, min-tree, tree-of-shapes, and self-dual residual tree construction;
- import/export of Higra-style
(parent, altitude)hierarchies; - dynamic topology edits through safe mutators and staged editors;
- gray-level, shape, boundary, topology, and max-distance attributes;
- attribute filters, extinction values, and Ultimate Attribute Opening;
- a C++20 header-oriented core plus a pybind11 Python package.
Higra remains the better fit for stable, general-purpose hierarchical image-analysis workflows. Use this project when the experiment needs mutable tree topology, direct owner-state access, or the local attribute/filter machinery exposed here. See docs/attribute-catalog.md for the public descriptor catalog and docs/higra-interoperability.md for import, export, and attribute-projection contracts.
Python currently follows the canonical 8-bit contract: factory inputs must be
C-contiguous np.uint8 arrays and external altitude inputs must stay in
[0, 255]. C++ supports typed max/min and SDRT construction through Image<T>,
typed Higra imports through createFromHigraParent<T>, and read-only
WeightedTreeView<T> altitude spans. Tree of Shapes construction is currently
uint8_t.
Installation
From PyPI:
pip install mmcfilters
From source:
cmake -S . -B build -DMMCFILTERS_BUILD_PYTHON=ON
cmake --build build
Installed C++ package:
find_package(mmcfilters CONFIG REQUIRED)
target_link_libraries(my_target PRIVATE mmcfilters::core)
To enable the regression suite or examples:
cmake -S . -B build \
-DMMCFILTERS_BUILD_PYTHON=ON \
-DMMCFILTERS_BUILD_TESTS=ON \
-DMMCFILTERS_BUILD_EXAMPLES=ON
cmake --build build
ctest --test-dir build --output-on-failure
Quick Python example
import numpy as np
import mmcfilters
img = np.array(
[
[3, 3, 2, 2],
[3, 4, 4, 2],
[1, 4, 5, 2],
[1, 1, 5, 0],
],
dtype=np.uint8,
)
# Python factories require C-contiguous np.uint8 images. Use C++ for typed
# int32/float altitude trees.
img = np.ascontiguousarray(img, dtype=np.uint8)
# radius=1.5 selects the 8-neighbourhood on a 2D square grid.
# Use radius=1.0 for 4-connectivity.
adjacency_radius = 1.5
# Case 1: build a weighted max-tree. Topology queries are available on it.
weighted_tree = mmcfilters.MorphologicalTreeFactory.createMaxTree(
img,
radius=adjacency_radius,
)
root_node_id = weighted_tree.getRoot()
root_children = weighted_tree.getChildren(root_node_id)
root_direct_proper_parts = weighted_tree.getProperParts(root_node_id)
# Case 2: inspect the component that owns one image pixel.
pixel_index = 10
pixel_component_id = weighted_tree.getProperPartOwner(pixel_index)
pixel_component_pixels = list(weighted_tree.getConnectedComponent(pixel_component_id))
pixel_component_mask = weighted_tree.reconstructNode(pixel_component_id)
# Case 3: compute attributes that depend only on tree topology/support.
topology_names, topology_by_node = mmcfilters.Attribute.computeTopologyAttributes(
weighted_tree,
[mmcfilters.Attribute.AREA, mmcfilters.Attribute.BOX_HEIGHT],
)
area_by_node = topology_by_node[:, topology_names["AREA"]]
box_height_by_node = topology_by_node[:, topology_names["BOX_HEIGHT"]]
# Case 4: compute altitude-dependent attributes and reconstruct the image.
max_dist_by_node = mmcfilters.Attribute.computeSingleAttribute(
weighted_tree,
mmcfilters.Attribute.MAX_DIST,
)
reconstructed_image = weighted_tree.reconstructionImage()
# Case 5: run Ultimate Attribute Opening, the public UAO API.
uao = mmcfilters.UltimateAttributeOpening(weighted_tree, box_height_by_node)
uao.execute(img.shape[0])
max_contrast_image = uao.getMaxContrastImage()
associated_image = uao.getAssociatedImage()
# Case 6: export/import a Higra-style hierarchy for interoperability.
higra_parent, higra_altitude = weighted_tree.exportHigraHierarchy()
max_dist_by_higra = weighted_tree.project_node_values_to_exported_higra(
max_dist_by_node,
mmcfilters.Attribute.MAX_DIST,
)
roundtrip_weighted_tree = mmcfilters.MorphologicalTreeFactory.createFromHigraParent(
higra_parent,
higra_altitude,
img.shape[0],
img.shape[1],
mmcfilters.MorphologicalTreeKind.MAX_TREE,
radius=adjacency_radius,
)
Repository guide
Use this map to find the right entry point quickly:
API guides:
- Morphological tree model: docs/trees.md
- Attribute computation: docs/attributes.md
- Attribute catalog: docs/attribute-catalog.md
- Attribute filters, extinction values, and UAO: docs/filters.md
- Editing API and derived-state lifetime: docs/editing-api.md
- Higra interoperability: docs/higra-interoperability.md
- Python interface: docs/python-api.md
- Incremental contours: docs/contours.md
Contributor design notes:
- Attribute computer architecture and extension: docs/attribute-computer-architecture.md
- Contour internals and benchmarks: docs/contours.md
Documentation
The Documentation workflow validates the public and internal Doxygen targets.
On pushes to main, it publishes only the public HTML output to GitHub Pages:
wonderalexandre.github.io/MorphologicalAttributeFilters.
The internal HTML output remains available as a workflow artifact.
Release process
Releases are automated by GitHub Actions. For a production release:
- Make sure the
CIandPackageworkflows are green onmain. - Create and push a semantic version tag, for example
v1.0.1. - The
Releaseworkflow validates that the tag matches the resolved package version, builds the source distribution and platform wheels, validates the package metadata, and attaches the artifacts to a GitHub Release.
The release wheel matrix targets Python 3.9 through 3.14 on:
- Linux manylinux x86_64;
- Windows x86_64;
- macOS arm64;
- macOS Intel x86_64.
PyPI publication is intentionally manual. Download the release artifacts from
the GitHub Release or from the Release workflow run, then upload them with:
python -m pip install --upgrade twine
python -m twine upload dist/*
Manual runs of the Release workflow also build downloadable artifacts without
creating a GitHub Release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mmcfilters-3.0.2.tar.gz.
File metadata
- Download URL: mmcfilters-3.0.2.tar.gz
- Upload date:
- Size: 466.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1946c5de44977b2027f1b1087be593b1ff7167b2ae635622b7b7f879e7e454f
|
|
| MD5 |
280bfc3626dda4a1b398641070396cef
|
|
| BLAKE2b-256 |
a9618b54e145a6398867e622977195d56c9c0e83abb4a0461dc1fc32e3ee434e
|
File details
Details for the file mmcfilters-3.0.2-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 701.4 kB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8065abacd6a1ce9f5ce6deccdaae7fab62ef816b405b7be6595e7cba066c05f7
|
|
| MD5 |
e019178288fcd28e42f1c3ed07c00a97
|
|
| BLAKE2b-256 |
90610d189a0e100052d8fb52ca9df49693a29118dd5093d29c7f6efbdd1b9502
|
File details
Details for the file mmcfilters-3.0.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 832.3 kB
- Tags: CPython 3.14, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
66330fe78aa5bb2b091868f562bc39919b4425a1297737e0d53bf46149d49560
|
|
| MD5 |
24490b70ed399498c585c1b984d4deba
|
|
| BLAKE2b-256 |
40e780eb8fe56663c73523870c06bf25773dee6b94a5f96a569d9914920e0184
|
File details
Details for the file mmcfilters-3.0.2-cp314-cp314-macosx_11_0_x86_64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp314-cp314-macosx_11_0_x86_64.whl
- Upload date:
- Size: 756.0 kB
- Tags: CPython 3.14, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9cf8e509960b2a8fde021b7ad73b46f19a4fcb5b09b9a222c7c5974dd3f65fd
|
|
| MD5 |
463faf8fb48d314c8dc9573b9001de9a
|
|
| BLAKE2b-256 |
51aa36769af8cdceb0683a72c6001a49469fc36b0794f338740fb0378f43151d
|
File details
Details for the file mmcfilters-3.0.2-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 715.0 kB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
322fa4dfc695715b2212072c301a50005797481120373979041357f8dd15010e
|
|
| MD5 |
f45d4794b1aaad390edeed4943da7a67
|
|
| BLAKE2b-256 |
3a44d9810793cdf6c8ec85279afd1ee1b3d6562e921936e3300d4ea7deb04f63
|
File details
Details for the file mmcfilters-3.0.2-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 690.7 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e3b3a50d346cc478bdc3dc30c11d8f4dd11ad310e32a5cf66b23c8b23ef3a2d
|
|
| MD5 |
2933d4bf4801e512e40cfcdc4e87a86b
|
|
| BLAKE2b-256 |
d172098462d6ce48fe4a16c36adfd74490846c3a4e284bccf61bb09dd272273b
|
File details
Details for the file mmcfilters-3.0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 831.6 kB
- Tags: CPython 3.13, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9bf2c4b92684844d3965e7a8a5dda8a1488e157f2ae0de17392535c4e0e8f89
|
|
| MD5 |
46b27b9c47b7c7c93d30dd9b6055575a
|
|
| BLAKE2b-256 |
cf2f861f74ea81e1be3cb55821beb1f13f0bbe311895a76d9fc0deec3eaa89fc
|
File details
Details for the file mmcfilters-3.0.2-cp313-cp313-macosx_11_0_x86_64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp313-cp313-macosx_11_0_x86_64.whl
- Upload date:
- Size: 755.6 kB
- Tags: CPython 3.13, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6efd439ce63b2f1f9604b86be16bdb264576a1067417487aab613ed013d41c87
|
|
| MD5 |
ff02f815fb4a07a47abb9d756cd930d8
|
|
| BLAKE2b-256 |
ffd0374d47aa14840e8cb2fbfe2ba351e4006138702e864a59dfcf95d3feaf01
|
File details
Details for the file mmcfilters-3.0.2-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 714.5 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
723cfd72fcb3efbddb55b03000639deedc8d6d9a517811222f3e517b038552e8
|
|
| MD5 |
23f6487e09d3234f97f72bdbcce1f867
|
|
| BLAKE2b-256 |
59c5ad2246c91364e8ee383e4b6cdb1501727b231cc0ebb2b2fa482180794d4e
|
File details
Details for the file mmcfilters-3.0.2-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 690.8 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e461327b7792526e925f45424464bdb37d369b79690c822f140b1453256d76dc
|
|
| MD5 |
ff1f9a10ecfc5ea47c6b31d01ac8be1e
|
|
| BLAKE2b-256 |
5f8457c092ed00de92fadc8832ceab43bab19f57da15f8a248c1e29a6a469a13
|
File details
Details for the file mmcfilters-3.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 831.7 kB
- Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d91af93fad570e0f41ffd688f19df0a656c4b845b6ddea843792dba9b1a4df9c
|
|
| MD5 |
8dfb5c60372e4ecf4a07cae48e557a7e
|
|
| BLAKE2b-256 |
8ed204346039bf6d093a2d627f973dc5d0579a386870a382befa0eee6e628253
|
File details
Details for the file mmcfilters-3.0.2-cp312-cp312-macosx_11_0_x86_64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp312-cp312-macosx_11_0_x86_64.whl
- Upload date:
- Size: 755.6 kB
- Tags: CPython 3.12, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a3d8392b4788c2564e0b6bd5160c9fd0bb5c11f91619f3a0f21e5eefb9ddfacd
|
|
| MD5 |
6b81c0a7d77d5c37cbf17cb682fbda4c
|
|
| BLAKE2b-256 |
ad7315a56347b16e515f8893758d7d1e268de95246a299d7f83fdd96c9ba674c
|
File details
Details for the file mmcfilters-3.0.2-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 714.5 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
856741c272d3fb63f08cdab6d67356b81e4e59865ace8f5a4ce973841b9d7bf6
|
|
| MD5 |
cb808d12f7ef3524404be922c4ea3b2b
|
|
| BLAKE2b-256 |
22a0aee11b7c36c07718f7d3d6f622660bb7c8765e42dcfcf52b137fec0fee16
|
File details
Details for the file mmcfilters-3.0.2-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 688.0 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f814bd12a5e0af59341ebeb2c5cd11e3d77efb0942924efac253b07e0fda5b5
|
|
| MD5 |
a7e86b1296f25c99a11200b93fabe804
|
|
| BLAKE2b-256 |
2eb9fae005bf995a17e864f6628e7f19534d88396d747b9c0290d31f331d2fad
|
File details
Details for the file mmcfilters-3.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 828.6 kB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c3d16077c5f99209eb65ff8585a155b348454ff9af1db40a5fa7bbec6a03e04
|
|
| MD5 |
39eaf6b46df3177fd250a5e8cd04ed3e
|
|
| BLAKE2b-256 |
6ee84713ae3ac1230c477a4240845e4feb7c48a5f1c9507b8e767c1b6521e6c0
|
File details
Details for the file mmcfilters-3.0.2-cp311-cp311-macosx_11_0_x86_64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp311-cp311-macosx_11_0_x86_64.whl
- Upload date:
- Size: 750.4 kB
- Tags: CPython 3.11, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
595e047ad04c70c320274599622e6d30dd371652a552fb7f8a144f8bc0350534
|
|
| MD5 |
e65707784411c9031f5f67c8204037f5
|
|
| BLAKE2b-256 |
e33c5db430dabe5031b99554cac877b798193152c86ada68049d1f9282fec5ad
|
File details
Details for the file mmcfilters-3.0.2-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 712.5 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba7f0c5f36fc5a5c8242b1e51aa7f0c5846c561a238c577fe21b207e6e60d82e
|
|
| MD5 |
743506f2a977c8b68bf7d43487c4d2f3
|
|
| BLAKE2b-256 |
e5060e10a09a3ed2b619356fa00c7b27eb0b18583e58606c48a5cb00c6b114f5
|
File details
Details for the file mmcfilters-3.0.2-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 687.3 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
515cd704d4620b8599659733c3afe29d3b852391f6889da8d46fb5806143cad1
|
|
| MD5 |
2a87a636b69b6741a9a40c3ea033e333
|
|
| BLAKE2b-256 |
d4c86f4e6fa964ce1fd07523382d02dceda83f35fe53f0a577d51418232d8beb
|
File details
Details for the file mmcfilters-3.0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 827.4 kB
- Tags: CPython 3.10, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff4e6f1bb6da842f11d0b9c4cf447bf3b16366b9be1a992b105dce43e8e57668
|
|
| MD5 |
ca6d0072d478d04c96e46c3c1fcd7ef9
|
|
| BLAKE2b-256 |
8b83f57f4ae236d0eb2b4f69aee47e27991c4ff9aa3822dd9b377bce3f83af04
|
File details
Details for the file mmcfilters-3.0.2-cp310-cp310-macosx_11_0_x86_64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp310-cp310-macosx_11_0_x86_64.whl
- Upload date:
- Size: 748.8 kB
- Tags: CPython 3.10, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4eca43070b9d8be0b6907680fa2864d982c4ef6235ed12b0a9e4ddb8c6ec88fe
|
|
| MD5 |
0f384582bdf4ea9a663e61c0f415619d
|
|
| BLAKE2b-256 |
610918fd054025a126dc05c84bcc4c984234e6ed0a2ea2fc5bc6a79e30920bd4
|
File details
Details for the file mmcfilters-3.0.2-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 711.1 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f5101e7c3115cba63b316d44dca79a3afc2b6e4f0b6199c7545f95791c1841d
|
|
| MD5 |
f31253194269e8ba58d9d1db6abfb04a
|
|
| BLAKE2b-256 |
69d691df56891028f4783e329848fb683174ee07f80e67821104ed4cd3834403
|
File details
Details for the file mmcfilters-3.0.2-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 711.1 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59c41e0f085ccb84add1f3199596f28a803fd25aa6fca5ce492a04ed019a90b8
|
|
| MD5 |
1c9fd61174e40f6d69516e246fd264bc
|
|
| BLAKE2b-256 |
2384089a1680754baf1d63730eb81fd40ff7162c190004ee362f72d8df24c31f
|
File details
Details for the file mmcfilters-3.0.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 827.7 kB
- Tags: CPython 3.9, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e025022becb6bc7866722c68546d51c25032a519dac9177bcbe2e6615807491
|
|
| MD5 |
17c0a06df0e5db34587082a67a6e288e
|
|
| BLAKE2b-256 |
0a3170125ab8b58b44b47cce405f85645c2e14c3c2ed8c73ca9c22ea1dd58a27
|
File details
Details for the file mmcfilters-3.0.2-cp39-cp39-macosx_11_0_x86_64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp39-cp39-macosx_11_0_x86_64.whl
- Upload date:
- Size: 749.0 kB
- Tags: CPython 3.9, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2c2a5682689f28e019723389156f1ae36b8c12bcd90579d951b9f25895bbcc5
|
|
| MD5 |
4d6e477643aca1506ea2f156c5030ab2
|
|
| BLAKE2b-256 |
fd573a2be10f2d945f0969866244cb442d44534412cfda5a62732a3850fe67ee
|
File details
Details for the file mmcfilters-3.0.2-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: mmcfilters-3.0.2-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 711.3 kB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b0257330afec644c394630ebebdf9d0c22dfc2b105442f020a9d6b05a077544
|
|
| MD5 |
2c2e4b42c2119147f290285a9a1aa571
|
|
| BLAKE2b-256 |
07abdf6e7eca6202a35bf2696f452ecf49cba4b60f852c20557c140fd46f9332
|