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.0.tar.gz (449.9 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.0-cp314-cp314-win_amd64.whl (685.8 kB view details)

Uploaded CPython 3.14Windows x86-64

mmcfilters-3.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (830.4 kB view details)

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

mmcfilters-3.0.0-cp314-cp314-macosx_11_0_x86_64.whl (775.3 kB view details)

Uploaded CPython 3.14macOS 11.0+ x86-64

mmcfilters-3.0.0-cp314-cp314-macosx_11_0_arm64.whl (726.9 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

mmcfilters-3.0.0-cp313-cp313-win_amd64.whl (675.7 kB view details)

Uploaded CPython 3.13Windows x86-64

mmcfilters-3.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (829.9 kB view details)

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

mmcfilters-3.0.0-cp313-cp313-macosx_11_0_x86_64.whl (774.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

mmcfilters-3.0.0-cp313-cp313-macosx_11_0_arm64.whl (726.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

mmcfilters-3.0.0-cp312-cp312-win_amd64.whl (675.7 kB view details)

Uploaded CPython 3.12Windows x86-64

mmcfilters-3.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (830.1 kB view details)

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

mmcfilters-3.0.0-cp312-cp312-macosx_11_0_x86_64.whl (774.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

mmcfilters-3.0.0-cp312-cp312-macosx_11_0_arm64.whl (726.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

mmcfilters-3.0.0-cp311-cp311-win_amd64.whl (673.3 kB view details)

Uploaded CPython 3.11Windows x86-64

mmcfilters-3.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (827.0 kB view details)

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

mmcfilters-3.0.0-cp311-cp311-macosx_11_0_x86_64.whl (769.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

mmcfilters-3.0.0-cp311-cp311-macosx_11_0_arm64.whl (724.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

mmcfilters-3.0.0-cp310-cp310-win_amd64.whl (672.3 kB view details)

Uploaded CPython 3.10Windows x86-64

mmcfilters-3.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (825.7 kB view details)

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

mmcfilters-3.0.0-cp310-cp310-macosx_11_0_x86_64.whl (767.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

mmcfilters-3.0.0-cp310-cp310-macosx_11_0_arm64.whl (723.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

mmcfilters-3.0.0-cp39-cp39-win_amd64.whl (695.3 kB view details)

Uploaded CPython 3.9Windows x86-64

mmcfilters-3.0.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (825.9 kB view details)

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

mmcfilters-3.0.0-cp39-cp39-macosx_11_0_x86_64.whl (768.2 kB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

mmcfilters-3.0.0-cp39-cp39-macosx_11_0_arm64.whl (723.2 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: mmcfilters-3.0.0.tar.gz
  • Upload date:
  • Size: 449.9 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.0.tar.gz
Algorithm Hash digest
SHA256 3e2f00ec9f61fb80db663d2ab834f99711ed3cc6afca609a13ecf765a582154d
MD5 984b758a756e281012a3a265fb180acd
BLAKE2b-256 4d75efb0a00c6a1312c6e15d8c4f460d75b48cb17ab98bef16e50b04dd51f1a4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mmcfilters-3.0.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 685.8 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.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 265f1b15d65946604b08a24a712162790c5cebf19f7420498bbaffc0538c726d
MD5 14110ab6267de3b8c2363420a5ce962e
BLAKE2b-256 8d4ec276cd8b2fac63b957baced893c32b4933b203cb93a429fe86b9009b507b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7b836089cfc636265df05a643ce7a150e9d6033d7c5114c838d9c90ff04077a1
MD5 513cea573470637eaea2e45918bb5884
BLAKE2b-256 d7940fc9504512072d39899871c18f202cb99bd0e477f320be64c02fbf146fcd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.0-cp314-cp314-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 96c89ac84b970302f1b9adb7a072423bdbc691a158f5fd19f1e2eb2f5e4da2a5
MD5 48ed66d3d009bc6847e9897802f5cb5e
BLAKE2b-256 d463fc4e9396e7add7ebb57468db45c042e98e4e5f10c069297e7b88e6686502

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2376613ef4ed67269360dc0e600e30fd4742214a3edc81b34384e6a7eaec93e7
MD5 104431f3d05017a97268dd231ce1af8c
BLAKE2b-256 ee4d26a8584a0f5404d161991fe726087ea02262e7e16f219760458c4899620b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mmcfilters-3.0.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 675.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.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 b8fec34ed65c13541c2ef51b15bd2fecf0c6ce18759ca3126dd95fb20143d946
MD5 a76ecb9fd3d2e99dcd6b9597c6903579
BLAKE2b-256 f3e3afddca4f5e7461213e34df877bd9d41766e53036ca2ece265b9f0e4a641b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 12aa74360b859faf4d4fc4190e34d34658f324d7e9de51f40af2e3ca621bcbef
MD5 f70fd71060d1460e47ed9a5032d8a7ab
BLAKE2b-256 c51df4cd346bd5c03831e7c2ae48cbb1475b1c76b4f1e63f9551ee8476710e5c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.0-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 c91434fc43d7749710a94e525dd4aab0eb31d3dd0e3084fe8adc98446b9de30f
MD5 6c045f647782f12824468aace699bc2e
BLAKE2b-256 a06c68ec62551c7e58d8aab5af7caf4b3d71dd5b39a56bb121a0bb51c137a41c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b1077cb0917c91e39f9cc0e4ff712c8658a00462504418df695c3730aff5ad35
MD5 40883b3f6410f59fff5894e8cf38464b
BLAKE2b-256 13c449ff40ab76b961f75092a681d84a64ebab95e9c3f18c2a976136fecf59ab

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mmcfilters-3.0.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 675.7 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.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 29a24ff57a9ca091b8bb9ac2b428ed42d3251519eb2e2f4279615c0511affc83
MD5 38cdd28bc53521bc3357dc90d1be139c
BLAKE2b-256 8870b223469d63b900474ee2da2a0ae77f3c740a3837fccc270a1e3ecb1ac703

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fa264f7ed8bda792b18ca441babad085cbcc01dd9ab38cdd09c5c1e0b69e8091
MD5 50a10dbb852a164e7c7f81636460f7ba
BLAKE2b-256 93eb5cc9308ad0675834f9d7141f784b6026a0580123cac20fd7faabe1abe76b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.0-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 23c9d20c71452ceac941b9303b8c6a314056c6d315dfad05333b15f9c63d5ee0
MD5 135a1fbbdd7057cfe63bbe67462468c4
BLAKE2b-256 ea4c34f9312991d7d0d67d8000feb6aad063c7a6b89dde69f53704eaf9bbd3cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a48acad21de64c706800ce8ad1c5b6d8fba5cf3d503dd1c8b619122cdc7cca82
MD5 0f6f17e850fc4583c3b1af8d1a57217e
BLAKE2b-256 77555576224acb04ec8b762b9aa374e5b3e3870ef151bce0d031f98dec4623af

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mmcfilters-3.0.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 673.3 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.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a927639a857f5ff4a41b5d4786c674791d1d8f3ebcf15349c19c7b1e20f9eb1d
MD5 3d621e576ca382d7ac4ec569c36fa7dd
BLAKE2b-256 8cb8172be70008d707e7919648b0b4fb510876e1b36669e4d1cf088d452728a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 593371458ac0afb38591909961d879107a3dfe05ee99e94e06846b54781d1dbf
MD5 76023fd1e3bb5d15589849e244fc9ee9
BLAKE2b-256 5a7d4b862bc57676f84ef4c82bc9b2d1112c0a030551134c2993403d5b39d4e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.0-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 77654235826963a0dc6d988cd53c5b2ef1b9956489789b2a662dab3abc75f3f2
MD5 43c3e2f9aac560d551a53c9a5e0779f0
BLAKE2b-256 452cf741a6de59a21fee4c9c8fc8af19577993ed000058441e4504ff7f2cf530

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 96b48e18f39e73a0783dd4a8d3ffdf356e969d7126d8faaa4fc3fafd57b0eecf
MD5 4f7fb1c0fd57b5aa69ecd26fee428824
BLAKE2b-256 be0905f1eef226e05db08967e6b87e80c0bf9a328190fd9064289bf3e1a71f3d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mmcfilters-3.0.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 672.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.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a3119f2a17e818bb46cbe6f4d03f6ca2da7dbf9223b42baabcd1c596d084e0ea
MD5 3042565c1615903bf5bb68614fceb0b0
BLAKE2b-256 6c79321df49a4934378b2d2f5723edadbe3e5d44aeaa390641e83b2e3a45a662

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d84cd0b4b9963007858ef935f4e42019e3fc12c63c254c64c51104f4e93cc31d
MD5 039fd503409cbb4ec58f266caef269a5
BLAKE2b-256 f91d336810251b08b0f03caafa7332f7c57fee4669ed3649827bd084a97973ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.0-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 69dd202bac145a8aa3d802b2ff412ba99c56fe0b1ab254a60f7ba413ea3fe9c2
MD5 16bbda589b8e89c7b7cb1a604b202b5a
BLAKE2b-256 20cda2e9af7a24e14e1507358f940e17f502a818204110465b6c148185ceb2a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 81d2be06c56c99a081c6834ca558fe1ef5375240bc6f64b15b83b6e812a47ec5
MD5 fdc59a4d995c153ac50d22037a03a70e
BLAKE2b-256 0208248dc48d6ba72b0d0bbd4d375036d8d255d6bd206be0b5e55154ca5cddd7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mmcfilters-3.0.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 695.3 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.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 36d3bb848fbce3103310d2da13d04ba63d6fb9c1fedacaea35362a444dbe0022
MD5 3550be82afb779418687e9d3aa78c510
BLAKE2b-256 02e8d877619d99d8d62ae37579a80bffa15d5a8b8f1ea6b54308ad4a2804534d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4a7061145618d7e4d4fe365af3563b5d775b16689d48eab8ef3e51e09ac11955
MD5 57c52ec3f573d56c79ad5a569a04178e
BLAKE2b-256 426807aced6cc48efbb01b43a3a5ec0cbf75f713c2c125cfd63dc1cc8cbc66fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.0-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 bec02a6914531b85b7414d74dd515ad32f4d765e785b1be60affb52ef955d1b6
MD5 a5f25a725256967791a3316a11e1de79
BLAKE2b-256 3d999f52651c9e28fbd68c11a86b8966c90f949ee6a63afcc091fdc2406668e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mmcfilters-3.0.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 93323245c391db23e7c2835e185fdd8ab001381e083208c98a46a35b7598c3b3
MD5 e6dc2c7c1d85f2450e841f82fd100850
BLAKE2b-256 0c0718807fdff7e510f2b04de93ac5c257f67304af84ecfd82d640d89c41f20e

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