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.1.tar.gz (451.2 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.1-cp314-cp314-win_amd64.whl (667.5 kB view details)

Uploaded CPython 3.14Windows x86-64

mmcfilters-3.0.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (790.7 kB view details)

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

mmcfilters-3.0.1-cp314-cp314-macosx_11_0_x86_64.whl (721.4 kB view details)

Uploaded CPython 3.14macOS 11.0+ x86-64

mmcfilters-3.0.1-cp314-cp314-macosx_11_0_arm64.whl (684.5 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

mmcfilters-3.0.1-cp313-cp313-win_amd64.whl (656.7 kB view details)

Uploaded CPython 3.13Windows x86-64

mmcfilters-3.0.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (790.1 kB view details)

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

mmcfilters-3.0.1-cp313-cp313-macosx_11_0_x86_64.whl (721.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

mmcfilters-3.0.1-cp313-cp313-macosx_11_0_arm64.whl (683.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

mmcfilters-3.0.1-cp312-cp312-win_amd64.whl (656.8 kB view details)

Uploaded CPython 3.12Windows x86-64

mmcfilters-3.0.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (790.3 kB view details)

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

mmcfilters-3.0.1-cp312-cp312-macosx_11_0_x86_64.whl (721.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

mmcfilters-3.0.1-cp312-cp312-macosx_11_0_arm64.whl (683.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

mmcfilters-3.0.1-cp311-cp311-win_amd64.whl (654.8 kB view details)

Uploaded CPython 3.11Windows x86-64

mmcfilters-3.0.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (788.0 kB view details)

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

mmcfilters-3.0.1-cp311-cp311-macosx_11_0_x86_64.whl (716.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

mmcfilters-3.0.1-cp311-cp311-macosx_11_0_arm64.whl (682.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

mmcfilters-3.0.1-cp310-cp310-win_amd64.whl (654.0 kB view details)

Uploaded CPython 3.10Windows x86-64

mmcfilters-3.0.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (786.7 kB view details)

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

mmcfilters-3.0.1-cp310-cp310-macosx_11_0_x86_64.whl (714.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

mmcfilters-3.0.1-cp310-cp310-macosx_11_0_arm64.whl (680.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

mmcfilters-3.0.1-cp39-cp39-win_amd64.whl (676.8 kB view details)

Uploaded CPython 3.9Windows x86-64

mmcfilters-3.0.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (786.8 kB view details)

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

mmcfilters-3.0.1-cp39-cp39-macosx_11_0_x86_64.whl (714.3 kB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

mmcfilters-3.0.1-cp39-cp39-macosx_11_0_arm64.whl (681.1 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file mmcfilters-3.0.1.tar.gz.

File metadata

  • Download URL: mmcfilters-3.0.1.tar.gz
  • Upload date:
  • Size: 451.2 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.1.tar.gz
Algorithm Hash digest
SHA256 b5259198a87d8f85b95693d9fce82bfcee05f50c0c02f4f2614d6b877165dc5f
MD5 e973b6ee304b7b77c202be66fbe639e0
BLAKE2b-256 1a43f3b38f02ab2f9b83802086afd1a50b736a01259258a8fbf324055a0b8c69

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: mmcfilters-3.0.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 667.5 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.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 2498655e71bba3293e94bf21e54b87ecc37e7deb194cad177308427d756d558b
MD5 19a0b5085c07a6bcaca2a95d27db5212
BLAKE2b-256 0197ebf1e78a4afb0b9f963158f5d0ebb2be1a643ab7489cabdb3d6e1c518751

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mmcfilters-3.0.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2386e130ffe307bfe4c5827650499e15c9f4ce2ad483d75bc0e96dd754cc751d
MD5 0ac7cad95cbd71231e004d8b8260d4d6
BLAKE2b-256 939a656e84a1ecb5043bf9b48a979e28893e69b879b64fbdc274778610a73918

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.1-cp314-cp314-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 57ca91fed920447f5758541e9ce52e4a914e14c3573d12b9932eb422b1e19965
MD5 d272ff23d0c6b34897f4aed550e11ce9
BLAKE2b-256 123b1948ed54ff86c461e6d5494224d664e6c2008f084f213c17d890da208f08

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8bb8b774f4155e39702a5d5e3326c3a0656814936bc5d201c384e20603dc73b5
MD5 e42687a79dda22f703e5222956242049
BLAKE2b-256 1c31113a0c435d07615b172695b59c8bb29843503f22a3956786acf56ecd4d8f

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: mmcfilters-3.0.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 656.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.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 72f894e4e640dee044fc97fcb7edbb233f15268a8fa26e48346f7e457913d3df
MD5 531111046631f3d90aa9f3a97210d49f
BLAKE2b-256 10ffb7a6f96ad4d6e5a5795a631bac5ba2431e8316cd29c96b68d2c64732b6ae

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mmcfilters-3.0.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bf643487934c3b81f77c79fa317b064de17917011a27cb5fdcfff586b5f42193
MD5 f3108ce67b0efa5a1679a0ca3fe33d1b
BLAKE2b-256 fb58b8b3a381a278bef0dbff2a9b8cd4bbe7fa7656dd9240c6b2780ee168ba5c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.1-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 d3817b31cccac1b1c53fc2a2d8f7e00c3470af93998942e6fd0e6efed959e822
MD5 9494bd2244a37c439aa4e45719c1bc52
BLAKE2b-256 9c03d527d0f56d6285a49a82894fc7fc4a67e2860bd690c538d0c02dcae3e387

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ea28b9f1c3005f2037499df07d1d0c703b38f88fa71dd98cc095fa6e65549305
MD5 1f12114867429795dc0b6e0109e82dcd
BLAKE2b-256 1d5c6c577593ebdf5819299c8cce534842760964fa9e8ba07144b2ac98058677

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: mmcfilters-3.0.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 656.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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c07597ba762d72d46b0152da23b2f64f0c6f67ec5f2881c6c49a1c73c1343ae5
MD5 b35df37d68234ed111d74787f56ee2fd
BLAKE2b-256 e3f829a27276a84cf485402cd84d27f0e09b889ff0915ce5f36792103633b787

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mmcfilters-3.0.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0e7dbaaabce990add8dfe647ef3f2c2e75acba971eff2a96852e8a58a6e5c433
MD5 e7b4ce27193301f737444391be4da605
BLAKE2b-256 1750230e427f5c98e11f38b900868033df40e33eef801dfa39971bac41f241a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.1-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 fcfcb9e720d9b4d6aefa0161eba4103e43c779c2084d5193c66fd31573a77327
MD5 ba9c30e74d2db5a88eabdc953b3f4492
BLAKE2b-256 db0dea9bdff44017e48aa877c023b2fbca84d64144de2ce6c6e14eef6204d7cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0b137e71e10d3b1bb2747144a5651232131095ad171133aa36d91592b125760f
MD5 a1a165f78c02d036eea4d8aee0fcb11a
BLAKE2b-256 9108422a6420875a9f36148256f939206a16ed7c5cab8ad9de56924e8c1da2d9

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: mmcfilters-3.0.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 654.8 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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 992dcb3b4f8208e754c7514071c2bb609777e6cb219b4772c6bdbec6a17791a8
MD5 8a29e8cd778fefb40b4fa8369d6ffdda
BLAKE2b-256 50344a4835380379d1739027d1f91cc863d4ef80ec4d8d450f0243448a1ae323

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mmcfilters-3.0.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 71eb65478845e9d90b7f31d2507f0290e996b845d14a02f05fc0ec71372dbb5f
MD5 5b4f3800ad6c07ac37a2b8c26837fa72
BLAKE2b-256 0aeff09bd367bfc84aab099ca20b58637e117e088e0de4f06c6fccb597abe6b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.1-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 271b680546c6d254aa78c561ebf66f146ad50299f58aee0116bec6f68c01fff7
MD5 7364e5b194d023cd2122fac01495b8ba
BLAKE2b-256 7ff3c61091a93cbfce30783690d70ee86d01873009a94ad0fc1da9a9892f6c69

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 88d11874e2d90ccf84da5f2c954314408081e7325fc270717d797f3fd858ef0e
MD5 ca9c9bf47b9c9b8f34a9bd35b6309671
BLAKE2b-256 c8b48414f8c6ae5d5aa5578cf9daf28dcff26518e1c8967abb935932ce140eb4

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: mmcfilters-3.0.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 654.0 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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e0e5f2de58ee9d840a78879aa59f94ce79c7ac27afea92d4484a64e221e4f06e
MD5 bed41fc73d7c521443ff7cc7ad052e93
BLAKE2b-256 bc923f747fbd70d5d77844a86f3cfa9b738359495d6cf78adef13a4ac1759555

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mmcfilters-3.0.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8008460f05a5ce1eacd8c8781fd9504973fe4fcaa377414f7b537ee6fc7e5ea9
MD5 370c3bd837c8bfcb033b42281ccb6ef6
BLAKE2b-256 b907b48a98929bb59ea27193eee8d0dd0b26779550a327bd852165f8ad8a0af3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.1-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 663dee00ab1dcf17a531524fe9310d1fb70f8f48cf0661b73929313e35a6ecea
MD5 cd8447f8d60a637e79192debe08a6c56
BLAKE2b-256 11561326015693f4178a258490c2293ed2bf8eca557aa094c8a492aee8fdd7af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 00cb6a551e04163c0bc5ca9906bef52c6bd1a778243acafb7cd529a04ef13163
MD5 8384107bd0536dd3b4ad07c12f9d5ff4
BLAKE2b-256 059ba72a3303792dcb78661df61fbd5e68677078f8b4c350e157d44afe54e688

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: mmcfilters-3.0.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 676.8 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.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a7b4f1f158e3b384bd0829756642673edc678b474ada21504c2ea293c85537a5
MD5 2da5c070aaf89bbf9aee9e97be0dc6f8
BLAKE2b-256 a61a12eec7f6bb96dd33f42ca50533f7f3d72285115f83b4b3366127fa6100bf

See more details on using hashes here.

File details

Details for the file mmcfilters-3.0.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mmcfilters-3.0.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d2bc75e0dac76c88635282a148fac3adc4d1fe7f94b9d2e1bbb00720fcbf6288
MD5 b76ebbdafb5ec8e4ff5aef47092d205b
BLAKE2b-256 2700fcf4e4e56f5477a30e3b26eacca13e4d9c63ed6a52c0fd09bd83d9c3eb94

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.1-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 e819214dad929eb0742a57f85ba374be769f2d7e812ef8524d70b25c3ff9973f
MD5 f6ed0f7ef73b296c321dd6dbe0b4873d
BLAKE2b-256 8ba19f01ae5892297932497d8b1a8121949cb7a84123bed910b9e8a1a0d3daaf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a0a53715295eec50199bfda62eef3adbce1438b70c731f0ccc52f8c09cc3c3e4
MD5 721c126498e8d6bca08c3307eaaa2365
BLAKE2b-256 a1a54109171f26e2a2d4ae7bf92148854d7da46ab258be44d381101c4179a9cf

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