Skip to main content

Library for connected image filtering based on morphological trees

Project description

MorphologicalAttributeFilters

CI Release

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:

Contributor design notes:

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:

  1. Make sure the CI and Package workflows are green on main.
  2. Create and push a semantic version tag, for example v1.0.1.
  3. The Release workflow 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


Download files

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

Source Distribution

mmcfilters-3.0.2.tar.gz (466.7 kB view details)

Uploaded Source

Built Distributions

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

mmcfilters-3.0.2-cp314-cp314-win_amd64.whl (701.4 kB view details)

Uploaded CPython 3.14Windows x86-64

mmcfilters-3.0.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (832.3 kB view details)

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

mmcfilters-3.0.2-cp314-cp314-macosx_11_0_x86_64.whl (756.0 kB view details)

Uploaded CPython 3.14macOS 11.0+ x86-64

mmcfilters-3.0.2-cp314-cp314-macosx_11_0_arm64.whl (715.0 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

mmcfilters-3.0.2-cp313-cp313-win_amd64.whl (690.7 kB view details)

Uploaded CPython 3.13Windows x86-64

mmcfilters-3.0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (831.6 kB view details)

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

mmcfilters-3.0.2-cp313-cp313-macosx_11_0_x86_64.whl (755.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

mmcfilters-3.0.2-cp313-cp313-macosx_11_0_arm64.whl (714.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

mmcfilters-3.0.2-cp312-cp312-win_amd64.whl (690.8 kB view details)

Uploaded CPython 3.12Windows x86-64

mmcfilters-3.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (831.7 kB view details)

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

mmcfilters-3.0.2-cp312-cp312-macosx_11_0_x86_64.whl (755.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

mmcfilters-3.0.2-cp312-cp312-macosx_11_0_arm64.whl (714.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

mmcfilters-3.0.2-cp311-cp311-win_amd64.whl (688.0 kB view details)

Uploaded CPython 3.11Windows x86-64

mmcfilters-3.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (828.6 kB view details)

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

mmcfilters-3.0.2-cp311-cp311-macosx_11_0_x86_64.whl (750.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

mmcfilters-3.0.2-cp311-cp311-macosx_11_0_arm64.whl (712.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

mmcfilters-3.0.2-cp310-cp310-win_amd64.whl (687.3 kB view details)

Uploaded CPython 3.10Windows x86-64

mmcfilters-3.0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (827.4 kB view details)

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

mmcfilters-3.0.2-cp310-cp310-macosx_11_0_x86_64.whl (748.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

mmcfilters-3.0.2-cp310-cp310-macosx_11_0_arm64.whl (711.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

mmcfilters-3.0.2-cp39-cp39-win_amd64.whl (711.1 kB view details)

Uploaded CPython 3.9Windows x86-64

mmcfilters-3.0.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (827.7 kB view details)

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

mmcfilters-3.0.2-cp39-cp39-macosx_11_0_x86_64.whl (749.0 kB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

mmcfilters-3.0.2-cp39-cp39-macosx_11_0_arm64.whl (711.3 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

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

Hashes for mmcfilters-3.0.2.tar.gz
Algorithm Hash digest
SHA256 a1946c5de44977b2027f1b1087be593b1ff7167b2ae635622b7b7f879e7e454f
MD5 280bfc3626dda4a1b398641070396cef
BLAKE2b-256 a9618b54e145a6398867e622977195d56c9c0e83abb4a0461dc1fc32e3ee434e

See more details on using hashes here.

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

Hashes for mmcfilters-3.0.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 8065abacd6a1ce9f5ce6deccdaae7fab62ef816b405b7be6595e7cba066c05f7
MD5 e019178288fcd28e42f1c3ed07c00a97
BLAKE2b-256 90610d189a0e100052d8fb52ca9df49693a29118dd5093d29c7f6efbdd1b9502

See more details on using hashes here.

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

File hashes

Hashes for mmcfilters-3.0.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 66330fe78aa5bb2b091868f562bc39919b4425a1297737e0d53bf46149d49560
MD5 24490b70ed399498c585c1b984d4deba
BLAKE2b-256 40e780eb8fe56663c73523870c06bf25773dee6b94a5f96a569d9914920e0184

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.2-cp314-cp314-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for mmcfilters-3.0.2-cp314-cp314-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 d9cf8e509960b2a8fde021b7ad73b46f19a4fcb5b09b9a222c7c5974dd3f65fd
MD5 463faf8fb48d314c8dc9573b9001de9a
BLAKE2b-256 51aa36769af8cdceb0683a72c6001a49469fc36b0794f338740fb0378f43151d

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mmcfilters-3.0.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 322fa4dfc695715b2212072c301a50005797481120373979041357f8dd15010e
MD5 f45d4794b1aaad390edeed4943da7a67
BLAKE2b-256 3a44d9810793cdf6c8ec85279afd1ee1b3d6562e921936e3300d4ea7deb04f63

See more details on using hashes here.

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

Hashes for mmcfilters-3.0.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4e3b3a50d346cc478bdc3dc30c11d8f4dd11ad310e32a5cf66b23c8b23ef3a2d
MD5 2933d4bf4801e512e40cfcdc4e87a86b
BLAKE2b-256 d172098462d6ce48fe4a16c36adfd74490846c3a4e284bccf61bb09dd272273b

See more details on using hashes here.

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

File hashes

Hashes for mmcfilters-3.0.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a9bf2c4b92684844d3965e7a8a5dda8a1488e157f2ae0de17392535c4e0e8f89
MD5 46b27b9c47b7c7c93d30dd9b6055575a
BLAKE2b-256 cf2f861f74ea81e1be3cb55821beb1f13f0bbe311895a76d9fc0deec3eaa89fc

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.2-cp313-cp313-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for mmcfilters-3.0.2-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 6efd439ce63b2f1f9604b86be16bdb264576a1067417487aab613ed013d41c87
MD5 ff02f815fb4a07a47abb9d756cd930d8
BLAKE2b-256 ffd0374d47aa14840e8cb2fbfe2ba351e4006138702e864a59dfcf95d3feaf01

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mmcfilters-3.0.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 723cfd72fcb3efbddb55b03000639deedc8d6d9a517811222f3e517b038552e8
MD5 23f6487e09d3234f97f72bdbcce1f867
BLAKE2b-256 59c5ad2246c91364e8ee383e4b6cdb1501727b231cc0ebb2b2fa482180794d4e

See more details on using hashes here.

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

Hashes for mmcfilters-3.0.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e461327b7792526e925f45424464bdb37d369b79690c822f140b1453256d76dc
MD5 ff1f9a10ecfc5ea47c6b31d01ac8be1e
BLAKE2b-256 5f8457c092ed00de92fadc8832ceab43bab19f57da15f8a248c1e29a6a469a13

See more details on using hashes here.

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

File hashes

Hashes for mmcfilters-3.0.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d91af93fad570e0f41ffd688f19df0a656c4b845b6ddea843792dba9b1a4df9c
MD5 8dfb5c60372e4ecf4a07cae48e557a7e
BLAKE2b-256 8ed204346039bf6d093a2d627f973dc5d0579a386870a382befa0eee6e628253

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.2-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for mmcfilters-3.0.2-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 a3d8392b4788c2564e0b6bd5160c9fd0bb5c11f91619f3a0f21e5eefb9ddfacd
MD5 6b81c0a7d77d5c37cbf17cb682fbda4c
BLAKE2b-256 ad7315a56347b16e515f8893758d7d1e268de95246a299d7f83fdd96c9ba674c

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mmcfilters-3.0.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 856741c272d3fb63f08cdab6d67356b81e4e59865ace8f5a4ce973841b9d7bf6
MD5 cb808d12f7ef3524404be922c4ea3b2b
BLAKE2b-256 22a0aee11b7c36c07718f7d3d6f622660bb7c8765e42dcfcf52b137fec0fee16

See more details on using hashes here.

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

Hashes for mmcfilters-3.0.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9f814bd12a5e0af59341ebeb2c5cd11e3d77efb0942924efac253b07e0fda5b5
MD5 a7e86b1296f25c99a11200b93fabe804
BLAKE2b-256 2eb9fae005bf995a17e864f6628e7f19534d88396d747b9c0290d31f331d2fad

See more details on using hashes here.

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

File hashes

Hashes for mmcfilters-3.0.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2c3d16077c5f99209eb65ff8585a155b348454ff9af1db40a5fa7bbec6a03e04
MD5 39eaf6b46df3177fd250a5e8cd04ed3e
BLAKE2b-256 6ee84713ae3ac1230c477a4240845e4feb7c48a5f1c9507b8e767c1b6521e6c0

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.2-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for mmcfilters-3.0.2-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 595e047ad04c70c320274599622e6d30dd371652a552fb7f8a144f8bc0350534
MD5 e65707784411c9031f5f67c8204037f5
BLAKE2b-256 e33c5db430dabe5031b99554cac877b798193152c86ada68049d1f9282fec5ad

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mmcfilters-3.0.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ba7f0c5f36fc5a5c8242b1e51aa7f0c5846c561a238c577fe21b207e6e60d82e
MD5 743506f2a977c8b68bf7d43487c4d2f3
BLAKE2b-256 e5060e10a09a3ed2b619356fa00c7b27eb0b18583e58606c48a5cb00c6b114f5

See more details on using hashes here.

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

Hashes for mmcfilters-3.0.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 515cd704d4620b8599659733c3afe29d3b852391f6889da8d46fb5806143cad1
MD5 2a87a636b69b6741a9a40c3ea033e333
BLAKE2b-256 d4c86f4e6fa964ce1fd07523382d02dceda83f35fe53f0a577d51418232d8beb

See more details on using hashes here.

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

File hashes

Hashes for mmcfilters-3.0.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ff4e6f1bb6da842f11d0b9c4cf447bf3b16366b9be1a992b105dce43e8e57668
MD5 ca6d0072d478d04c96e46c3c1fcd7ef9
BLAKE2b-256 8b83f57f4ae236d0eb2b4f69aee47e27991c4ff9aa3822dd9b377bce3f83af04

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.2-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for mmcfilters-3.0.2-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 4eca43070b9d8be0b6907680fa2864d982c4ef6235ed12b0a9e4ddb8c6ec88fe
MD5 0f384582bdf4ea9a663e61c0f415619d
BLAKE2b-256 610918fd054025a126dc05c84bcc4c984234e6ed0a2ea2fc5bc6a79e30920bd4

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mmcfilters-3.0.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8f5101e7c3115cba63b316d44dca79a3afc2b6e4f0b6199c7545f95791c1841d
MD5 f31253194269e8ba58d9d1db6abfb04a
BLAKE2b-256 69d691df56891028f4783e329848fb683174ee07f80e67821104ed4cd3834403

See more details on using hashes here.

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

Hashes for mmcfilters-3.0.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 59c41e0f085ccb84add1f3199596f28a803fd25aa6fca5ce492a04ed019a90b8
MD5 1c9fd61174e40f6d69516e246fd264bc
BLAKE2b-256 2384089a1680754baf1d63730eb81fd40ff7162c190004ee362f72d8df24c31f

See more details on using hashes here.

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

File hashes

Hashes for mmcfilters-3.0.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7e025022becb6bc7866722c68546d51c25032a519dac9177bcbe2e6615807491
MD5 17c0a06df0e5db34587082a67a6e288e
BLAKE2b-256 0a3170125ab8b58b44b47cce405f85645c2e14c3c2ed8c73ca9c22ea1dd58a27

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.2-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for mmcfilters-3.0.2-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 a2c2a5682689f28e019723389156f1ae36b8c12bcd90579d951b9f25895bbcc5
MD5 4d6e477643aca1506ea2f156c5030ab2
BLAKE2b-256 fd573a2be10f2d945f0969866244cb442d44534412cfda5a62732a3850fe67ee

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.2-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mmcfilters-3.0.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2b0257330afec644c394630ebebdf9d0c22dfc2b105442f020a9d6b05a077544
MD5 2c2e4b42c2119147f290285a9a1aa571
BLAKE2b-256 07abdf6e7eca6202a35bf2696f452ecf49cba4b60f852c20557c140fd46f9332

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