fastmorph


Namefastmorph JSON
Version 1.2.1 PyPI version JSON
download
home_pagehttps://github.com/seung-lab/fastmorph/
SummaryMorphological image processing for 3D multi-label images.
upload_time2024-11-21 06:18:32
maintainerNone
docs_urlNone
authorWilliam Silversmith
requires_python>=3.8.0
licenseLicense :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
keywords morphological dialate erode dilation erosion close open fill image processing
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![Automated Tests](https://github.com/seung-lab/fastmorph/actions/workflows/run_tests.yml/badge.svg) [![PyPI version](https://badge.fury.io/py/fastmorph.svg)](https://badge.fury.io/py/fastmorph)

# fastmorph: multilabel 3D morphological image processing functions.

This is a collection of morphological 3D image operations that are tuned for working with dense 3D labeled images. 

We provide the following multithreaded (except where noted) operations:

- Multi-Label Stenciled Dilation, Erosion, Opening, Closing
- Grayscale Stenciled Dilation, Erosion, Opening, Closing
- Multi-Label Spherical Erosion
- Binary Spherical Dilation, Opening, and Closing
- Multi-Label Fill Voids (single threaded)

Highlights compared to other libraries:

- Handles multi-labeled images
- Multithreaded
- High performance single-threaded
- Low memory usage
- Dilate computes mode of surrounding labels

Disadvantages versus other libraries:

- Stencil (structuring element) is fixed size 3x3x3 and all on.


```python
import fastmorph

# may be binary or unsigned integer 2D or 3D image
labels = np.load("my_labels.npy")


# multi-label capable morphological operators
# they use a 3x3x3 all on structuring element
# dilate picks the mode of surrounding labels

# by default only background (0) labels are filled
morphed = fastmorph.dilate(labels, parallel=2)
# processes every voxel
morphed = fastmorph.dilate(labels, background_only=False, parallel=2)

morphed = fastmorph.erode(labels)
morphed = fastmorph.opening(labels, parallel=2)
morphed = fastmorph.closing(labels, parallel=2)

# You can select grayscale dilation, erosion, opening, and 
# closing by passing in a different Mode enum.
# The options are Mode.grey and Mode.multilabel
morphed = fastmorph.dilate(labels, mode=fastmorph.Mode.grey)
morphed = fastmorph.erode(labels, mode=fastmorph.Mode.grey)

# Dilate only supports binary images at this time.
# Radius is specified in physical units, but
# by default anisotropy = (1,1,1) so it is the 
# same as voxels.
morphed = fastmorph.spherical_dilate(labels, radius=1, parallel=2, anisotropy=(1,1,1))

# open and close require dialate to work and so are binary only for now
morphed = fastmorph.spherical_open(labels, radius=1, parallel=2, anisotropy=(1,1,1))
morphed = fastmorph.spherical_close(labels, radius=1, parallel=2, anisotropy=(1,1,1))

# The rest support multilabel images.
morphed = fastmorph.spherical_erode(labels, radius=1, parallel=2, anisotropy=(1,1,1))

# Note: for boolean images, this function will directly call fill_voids
# and return a scalar for ct 
# For integer images, more processing will be done to deal with multiple labels.
# A dict of { label: num_voxels_filled } for integer images will be returned.
# Note that for multilabel images, by default, if a label is totally enclosed by another,
# a FillError will be raised. If remove_enclosed is True, the label will be overwritten.
filled_labels, ct = fastmorph.fill_holes(labels, return_fill_count=True, remove_enclosed=False)
```

## Performance

A test run on an M1 Macbook Pro on `connectomics.npy.ckl`, a 512<sup>3</sup> volume with over 2000 dense labels had the following results for multilabel processing.

```
erode / 1 thread: 1.553 sec
erode / 2 threads: 0.885 sec
erode / 4 threads: 0.651 sec
dilate / background_only=True / 1 thread: 1.100 sec
dilate / background_only=True / 2 threads: 0.632 sec
dilate / background_only=True / 4 threads: 0.441 sec
dilate / background_only=False / 1 thread: 11.783 sec
dilate / background_only=False / 2 threads: 5.944 sec
dilate / background_only=False / 4 threads: 4.291 sec
dilate / background_only=False / 8 threads: 3.298 sec
scipy grey_dilation / 1 thread 14.648 sec
scipy grey_erode / 1 thread: 14.412 sec
skimage expand_labels / 1 thread: 62.248 sec
```

Test run on an M1 Macbook Pro with `ws.npy.ckl` a 512<sup>3</sup> volume with tens of thousands of components for multilabel processing.

```
erode / 1 thread: 2.380 sec
erode / 2 threads: 1.479 sec
erode / 4 threads: 1.164 sec
dilate / background_only=True / 1 thread: 1.598 sec
dilate / background_only=True / 2 threads: 1.011 sec
dilate / background_only=True / 4 threads: 0.805 sec
dilate / background_only=False / 1 thread: 25.182 sec
dilate / background_only=False / 2 threads: 13.513 sec
dilate / background_only=False / 4 threads: 8.749 sec
dilate / background_only=False / 8 threads: 6.640 sec
scipy grey_dilation / 1 thread 21.109 sec
scipy grey_erode / 1 thread: 20.305 sec
skimage expand_labels / 1 thread: 63.247 sec
```

Here is the performance on a completely zeroed 512<sup>3</sup> volume for multilabel processing.

```
erode / 1 thread: 0.462 sec
erode / 2 threads: 0.289 sec
erode / 4 threads: 0.229 sec
dilate / background_only=True / 1 thread: 2.337 sec
dilate / background_only=True / 2 threads: 1.344 sec
dilate / background_only=True / 4 threads: 1.021 sec
dilate / background_only=False / 1 thread: 2.267 sec
dilate / background_only=False / 2 threads: 1.251 sec
dilate / background_only=False / 4 threads: 0.944 sec
dilate / background_only=False / 8 threads: 0.718 sec
scipy grey_dilation / 1 thread 13.516 sec
scipy grey_erode / 1 thread: 13.326 sec
skimage expand_labels / 1 thread: 35.243 sec
```

### Memory Profiles

<center>
<img src="https://github.com/seung-lab/fastmorph/blob/15c4c27ad3255c8ef959ceb67facd65e18eff2e4/memory-profile-dilate-bg-only-false.jpg" />
</center>

<center>
<img src="https://github.com/seung-lab/fastmorph/blob/15c4c27ad3255c8ef959ceb67facd65e18eff2e4/memory-profile-dilate-bg-only-true.jpg" />
</center>

<center>
<img src="https://github.com/seung-lab/fastmorph/blob/15c4c27ad3255c8ef959ceb67facd65e18eff2e4/memory-profile-skimage-expand_labels.jpg" />
</center>

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/seung-lab/fastmorph/",
    "name": "fastmorph",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8.0",
    "maintainer_email": null,
    "keywords": "morphological dialate erode dilation erosion close open fill image processing",
    "author": "William Silversmith",
    "author_email": "ws9@princeton.edu",
    "download_url": "https://files.pythonhosted.org/packages/cd/de/3c8c519d435ca743a4befe7fbe90c6e9975d46a3f635be3d53236a799fbd/fastmorph-1.2.1.tar.gz",
    "platform": null,
    "description": "![Automated Tests](https://github.com/seung-lab/fastmorph/actions/workflows/run_tests.yml/badge.svg) [![PyPI version](https://badge.fury.io/py/fastmorph.svg)](https://badge.fury.io/py/fastmorph)\n\n# fastmorph: multilabel 3D morphological image processing functions.\n\nThis is a collection of morphological 3D image operations that are tuned for working with dense 3D labeled images. \n\nWe provide the following multithreaded (except where noted) operations:\n\n- Multi-Label Stenciled Dilation, Erosion, Opening, Closing\n- Grayscale Stenciled Dilation, Erosion, Opening, Closing\n- Multi-Label Spherical Erosion\n- Binary Spherical Dilation, Opening, and Closing\n- Multi-Label Fill Voids (single threaded)\n\nHighlights compared to other libraries:\n\n- Handles multi-labeled images\n- Multithreaded\n- High performance single-threaded\n- Low memory usage\n- Dilate computes mode of surrounding labels\n\nDisadvantages versus other libraries:\n\n- Stencil (structuring element) is fixed size 3x3x3 and all on.\n\n\n```python\nimport fastmorph\n\n# may be binary or unsigned integer 2D or 3D image\nlabels = np.load(\"my_labels.npy\")\n\n\n# multi-label capable morphological operators\n# they use a 3x3x3 all on structuring element\n# dilate picks the mode of surrounding labels\n\n# by default only background (0) labels are filled\nmorphed = fastmorph.dilate(labels, parallel=2)\n# processes every voxel\nmorphed = fastmorph.dilate(labels, background_only=False, parallel=2)\n\nmorphed = fastmorph.erode(labels)\nmorphed = fastmorph.opening(labels, parallel=2)\nmorphed = fastmorph.closing(labels, parallel=2)\n\n# You can select grayscale dilation, erosion, opening, and \n# closing by passing in a different Mode enum.\n# The options are Mode.grey and Mode.multilabel\nmorphed = fastmorph.dilate(labels, mode=fastmorph.Mode.grey)\nmorphed = fastmorph.erode(labels, mode=fastmorph.Mode.grey)\n\n# Dilate only supports binary images at this time.\n# Radius is specified in physical units, but\n# by default anisotropy = (1,1,1) so it is the \n# same as voxels.\nmorphed = fastmorph.spherical_dilate(labels, radius=1, parallel=2, anisotropy=(1,1,1))\n\n# open and close require dialate to work and so are binary only for now\nmorphed = fastmorph.spherical_open(labels, radius=1, parallel=2, anisotropy=(1,1,1))\nmorphed = fastmorph.spherical_close(labels, radius=1, parallel=2, anisotropy=(1,1,1))\n\n# The rest support multilabel images.\nmorphed = fastmorph.spherical_erode(labels, radius=1, parallel=2, anisotropy=(1,1,1))\n\n# Note: for boolean images, this function will directly call fill_voids\n# and return a scalar for ct \n# For integer images, more processing will be done to deal with multiple labels.\n# A dict of { label: num_voxels_filled } for integer images will be returned.\n# Note that for multilabel images, by default, if a label is totally enclosed by another,\n# a FillError will be raised. If remove_enclosed is True, the label will be overwritten.\nfilled_labels, ct = fastmorph.fill_holes(labels, return_fill_count=True, remove_enclosed=False)\n```\n\n## Performance\n\nA test run on an M1 Macbook Pro on `connectomics.npy.ckl`, a 512<sup>3</sup> volume with over 2000 dense labels had the following results for multilabel processing.\n\n```\nerode / 1 thread: 1.553 sec\nerode / 2 threads: 0.885 sec\nerode / 4 threads: 0.651 sec\ndilate / background_only=True / 1 thread: 1.100 sec\ndilate / background_only=True / 2 threads: 0.632 sec\ndilate / background_only=True / 4 threads: 0.441 sec\ndilate / background_only=False / 1 thread: 11.783 sec\ndilate / background_only=False / 2 threads: 5.944 sec\ndilate / background_only=False / 4 threads: 4.291 sec\ndilate / background_only=False / 8 threads: 3.298 sec\nscipy grey_dilation / 1 thread 14.648 sec\nscipy grey_erode / 1 thread: 14.412 sec\nskimage expand_labels / 1 thread: 62.248 sec\n```\n\nTest run on an M1 Macbook Pro with `ws.npy.ckl` a 512<sup>3</sup> volume with tens of thousands of components for multilabel processing.\n\n```\nerode / 1 thread: 2.380 sec\nerode / 2 threads: 1.479 sec\nerode / 4 threads: 1.164 sec\ndilate / background_only=True / 1 thread: 1.598 sec\ndilate / background_only=True / 2 threads: 1.011 sec\ndilate / background_only=True / 4 threads: 0.805 sec\ndilate / background_only=False / 1 thread: 25.182 sec\ndilate / background_only=False / 2 threads: 13.513 sec\ndilate / background_only=False / 4 threads: 8.749 sec\ndilate / background_only=False / 8 threads: 6.640 sec\nscipy grey_dilation / 1 thread 21.109 sec\nscipy grey_erode / 1 thread: 20.305 sec\nskimage expand_labels / 1 thread: 63.247 sec\n```\n\nHere is the performance on a completely zeroed 512<sup>3</sup> volume for multilabel processing.\n\n```\nerode / 1 thread: 0.462 sec\nerode / 2 threads: 0.289 sec\nerode / 4 threads: 0.229 sec\ndilate / background_only=True / 1 thread: 2.337 sec\ndilate / background_only=True / 2 threads: 1.344 sec\ndilate / background_only=True / 4 threads: 1.021 sec\ndilate / background_only=False / 1 thread: 2.267 sec\ndilate / background_only=False / 2 threads: 1.251 sec\ndilate / background_only=False / 4 threads: 0.944 sec\ndilate / background_only=False / 8 threads: 0.718 sec\nscipy grey_dilation / 1 thread 13.516 sec\nscipy grey_erode / 1 thread: 13.326 sec\nskimage expand_labels / 1 thread: 35.243 sec\n```\n\n### Memory Profiles\n\n<center>\n<img src=\"https://github.com/seung-lab/fastmorph/blob/15c4c27ad3255c8ef959ceb67facd65e18eff2e4/memory-profile-dilate-bg-only-false.jpg\" />\n</center>\n\n<center>\n<img src=\"https://github.com/seung-lab/fastmorph/blob/15c4c27ad3255c8ef959ceb67facd65e18eff2e4/memory-profile-dilate-bg-only-true.jpg\" />\n</center>\n\n<center>\n<img src=\"https://github.com/seung-lab/fastmorph/blob/15c4c27ad3255c8ef959ceb67facd65e18eff2e4/memory-profile-skimage-expand_labels.jpg\" />\n</center>\n",
    "bugtrack_url": null,
    "license": "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
    "summary": "Morphological image processing for 3D multi-label images.",
    "version": "1.2.1",
    "project_urls": {
        "Homepage": "https://github.com/seung-lab/fastmorph/"
    },
    "split_keywords": [
        "morphological",
        "dialate",
        "erode",
        "dilation",
        "erosion",
        "close",
        "open",
        "fill",
        "image",
        "processing"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4ff3356713e572997010e5f027cbeb139b2c7dfd147190a7d27784ae67a7236f",
                "md5": "98402912207c9ca30246b5863e0c084c",
                "sha256": "8ac2fc7db986b6333a15c1011aa2caa708e0deab8a33486ed3082eefcaf31646"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "98402912207c9ca30246b5863e0c084c",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8.0",
            "size": 194383,
            "upload_time": "2024-11-21T06:17:36",
            "upload_time_iso_8601": "2024-11-21T06:17:36.401850Z",
            "url": "https://files.pythonhosted.org/packages/4f/f3/356713e572997010e5f027cbeb139b2c7dfd147190a7d27784ae67a7236f/fastmorph-1.2.1-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fbdf0c8b2e4989e4cb3b03b2edb4b35aee060133e7efe0eec96d9513ef21041e",
                "md5": "a56cde8ce33d5793c9ae861f79acf42b",
                "sha256": "99c36bfa83b9ad354984ff0403989d6c40d52c9415901f9bd2b7b681d050b3aa"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "a56cde8ce33d5793c9ae861f79acf42b",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8.0",
            "size": 161115,
            "upload_time": "2024-11-21T06:17:38",
            "upload_time_iso_8601": "2024-11-21T06:17:38.957640Z",
            "url": "https://files.pythonhosted.org/packages/fb/df/0c8b2e4989e4cb3b03b2edb4b35aee060133e7efe0eec96d9513ef21041e/fastmorph-1.2.1-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0eb21fc603b5e9adda50df32bf9f81414031049c8354dc7f91c82f34e1af17a9",
                "md5": "86592a42accd09d467d6b14f957d808c",
                "sha256": "4ec7c9f916cd2dcb08879e3a360e1d80d0fa30b5d8b8c4c78cbb2e81f1025f70"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "86592a42accd09d467d6b14f957d808c",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8.0",
            "size": 202086,
            "upload_time": "2024-11-21T06:17:40",
            "upload_time_iso_8601": "2024-11-21T06:17:40.554303Z",
            "url": "https://files.pythonhosted.org/packages/0e/b2/1fc603b5e9adda50df32bf9f81414031049c8354dc7f91c82f34e1af17a9/fastmorph-1.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7a903fcae995d369938581c3a84bcf32cce92048b837e56dce540228150b7360",
                "md5": "999d6b7abd63f69dfb49a2362641eb59",
                "sha256": "0784ef6d6da193c7e6acbccd92af15570d061b77ab1ec5b2166c768a7a257bb8"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "999d6b7abd63f69dfb49a2362641eb59",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8.0",
            "size": 254343,
            "upload_time": "2024-11-21T06:17:42",
            "upload_time_iso_8601": "2024-11-21T06:17:42.072785Z",
            "url": "https://files.pythonhosted.org/packages/7a/90/3fcae995d369938581c3a84bcf32cce92048b837e56dce540228150b7360/fastmorph-1.2.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "156f7225e76dd6ade3785c2437612e1974e4a8967ffd32ae290b238af87b8935",
                "md5": "ed4030d34f09a036e722f1f455412091",
                "sha256": "578f550925d142b3ee93627f0d3a616e606b01eae8277ac49ee37bb34dd6c3ab"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ed4030d34f09a036e722f1f455412091",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8.0",
            "size": 212256,
            "upload_time": "2024-11-21T06:17:43",
            "upload_time_iso_8601": "2024-11-21T06:17:43.892529Z",
            "url": "https://files.pythonhosted.org/packages/15/6f/7225e76dd6ade3785c2437612e1974e4a8967ffd32ae290b238af87b8935/fastmorph-1.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d1c6adcf0dc355aff4200fb83281070fef19036274e53d4749fa18299ca8b0a6",
                "md5": "eb38a1de4c283528f5df5a97f4f1e968",
                "sha256": "a7aaf473372490e69d79c0773e7f24363aeebf4401a85ffbebebcb6d93fb18dc"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "eb38a1de4c283528f5df5a97f4f1e968",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8.0",
            "size": 161303,
            "upload_time": "2024-11-21T06:17:45",
            "upload_time_iso_8601": "2024-11-21T06:17:45.563190Z",
            "url": "https://files.pythonhosted.org/packages/d1/c6/adcf0dc355aff4200fb83281070fef19036274e53d4749fa18299ca8b0a6/fastmorph-1.2.1-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "11c03936331394133a8145e84eb5bb57327abc39a43ad73bb84ee801c14de0d3",
                "md5": "a0e69e705c7537f2f2acb495089ae3bb",
                "sha256": "21b90fdf58a0f996b081b69404063c0b8274a02c83856e8fefe593338eff8028"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "a0e69e705c7537f2f2acb495089ae3bb",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8.0",
            "size": 136942,
            "upload_time": "2024-11-21T06:17:46",
            "upload_time_iso_8601": "2024-11-21T06:17:46.652093Z",
            "url": "https://files.pythonhosted.org/packages/11/c0/3936331394133a8145e84eb5bb57327abc39a43ad73bb84ee801c14de0d3/fastmorph-1.2.1-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6b75cd8f62033b2b154a7c169d6492b08c222fd256cbf2f1bc58c388ed8bacfd",
                "md5": "d4ea6ed3b84a2585b4e56f76b8420cdc",
                "sha256": "6ceb69f52fc06c6fe1408d372251cb5579362d92d8970484137bc2262384038e"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d4ea6ed3b84a2585b4e56f76b8420cdc",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8.0",
            "size": 196138,
            "upload_time": "2024-11-21T06:17:47",
            "upload_time_iso_8601": "2024-11-21T06:17:47.672457Z",
            "url": "https://files.pythonhosted.org/packages/6b/75/cd8f62033b2b154a7c169d6492b08c222fd256cbf2f1bc58c388ed8bacfd/fastmorph-1.2.1-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "83d2f0fa96b551dd0bf441385193f24fb77ea766be7491e496f39590107f8fea",
                "md5": "87cb45369bead1266323267b720c111e",
                "sha256": "8a8e87a6c67105a6a24e535fc0fe1b0ac598951319d2d3208980d6e156c7fb95"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "87cb45369bead1266323267b720c111e",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8.0",
            "size": 162362,
            "upload_time": "2024-11-21T06:17:48",
            "upload_time_iso_8601": "2024-11-21T06:17:48.859129Z",
            "url": "https://files.pythonhosted.org/packages/83/d2/f0fa96b551dd0bf441385193f24fb77ea766be7491e496f39590107f8fea/fastmorph-1.2.1-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b945ef4953b0f5da68334dc093c55be835c317979b1cfb537831f540267aae36",
                "md5": "472a7e495028726afe264f3e0ffd1816",
                "sha256": "9ebc7195d770da421b811419b74a66dcf2b8150b5e26cfd3c7d28f59b0a29338"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "472a7e495028726afe264f3e0ffd1816",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8.0",
            "size": 203830,
            "upload_time": "2024-11-21T06:17:50",
            "upload_time_iso_8601": "2024-11-21T06:17:50.528281Z",
            "url": "https://files.pythonhosted.org/packages/b9/45/ef4953b0f5da68334dc093c55be835c317979b1cfb537831f540267aae36/fastmorph-1.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "942014e10d17b80b7b1675ddd60d4b6d9f60fddb1584210c5c916d36f2086f04",
                "md5": "a8a8ef093c8c60a67ccad13a2239f38f",
                "sha256": "e69b4909116fcf721d25611d95b3e4c0570b89a6e1238dfed7175d92b7530ae5"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "a8a8ef093c8c60a67ccad13a2239f38f",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8.0",
            "size": 256454,
            "upload_time": "2024-11-21T06:17:51",
            "upload_time_iso_8601": "2024-11-21T06:17:51.762482Z",
            "url": "https://files.pythonhosted.org/packages/94/20/14e10d17b80b7b1675ddd60d4b6d9f60fddb1584210c5c916d36f2086f04/fastmorph-1.2.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "91e328ad03e4ed303a5284971cd276c07fd532be78bcf0cd3f5ae59478226a7c",
                "md5": "4398c471731a48f3226785c2706ba8e1",
                "sha256": "081ca003347135fdcb99e08a59b360659d37d44e42d7487e4ee9089d2eaac4f3"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4398c471731a48f3226785c2706ba8e1",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8.0",
            "size": 212984,
            "upload_time": "2024-11-21T06:17:53",
            "upload_time_iso_8601": "2024-11-21T06:17:53.454147Z",
            "url": "https://files.pythonhosted.org/packages/91/e3/28ad03e4ed303a5284971cd276c07fd532be78bcf0cd3f5ae59478226a7c/fastmorph-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f9fea7c558c4cd6b154b203cd35bb28e956a67abe3677a6f2f912d1e4666d510",
                "md5": "ce302a0b0736f5710323bcd2d0ffc477",
                "sha256": "606ccec71e78b0a7f05857d87a436d1291d2c91f2d71c3080df3c8752127781f"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "ce302a0b0736f5710323bcd2d0ffc477",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8.0",
            "size": 162241,
            "upload_time": "2024-11-21T06:17:54",
            "upload_time_iso_8601": "2024-11-21T06:17:54.624377Z",
            "url": "https://files.pythonhosted.org/packages/f9/fe/a7c558c4cd6b154b203cd35bb28e956a67abe3677a6f2f912d1e4666d510/fastmorph-1.2.1-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "48babe07c22207a3b4c607b6a755799bd374f27cc3d6d5343fce309b32528eea",
                "md5": "eef80fca4732801fdb83d8ee7d254449",
                "sha256": "f678e41c822a4d427bb95adc09c50921fce2010f355375b4fb1e86ff3db41fac"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "eef80fca4732801fdb83d8ee7d254449",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8.0",
            "size": 137591,
            "upload_time": "2024-11-21T06:17:55",
            "upload_time_iso_8601": "2024-11-21T06:17:55.639528Z",
            "url": "https://files.pythonhosted.org/packages/48/ba/be07c22207a3b4c607b6a755799bd374f27cc3d6d5343fce309b32528eea/fastmorph-1.2.1-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "61324bc700daa35178d2403ffb77e55df39666e9c177b0bd6b6f34c1f8725a36",
                "md5": "a42d2da544c473dc0290002ecd9f50ec",
                "sha256": "5e57cbf732ecd877f4c8c6486d9912a13787e7ec03ebe4803d5a765b0a18c303"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp312-cp312-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a42d2da544c473dc0290002ecd9f50ec",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8.0",
            "size": 194990,
            "upload_time": "2024-11-21T06:17:56",
            "upload_time_iso_8601": "2024-11-21T06:17:56.582479Z",
            "url": "https://files.pythonhosted.org/packages/61/32/4bc700daa35178d2403ffb77e55df39666e9c177b0bd6b6f34c1f8725a36/fastmorph-1.2.1-cp312-cp312-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "970822b7469dd5d991d6a4cf79e969a4643c8081c8a8070532b0a1d09b1536f8",
                "md5": "60503a383440ab10044d7ef786f06b36",
                "sha256": "bbecf2f88171111d9da19fe42d1cb5488b3edc6cd9e88cbc4cb1bcf4e8fbfc17"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp312-cp312-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "60503a383440ab10044d7ef786f06b36",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8.0",
            "size": 339298,
            "upload_time": "2024-11-21T06:17:58",
            "upload_time_iso_8601": "2024-11-21T06:17:58.977970Z",
            "url": "https://files.pythonhosted.org/packages/97/08/22b7469dd5d991d6a4cf79e969a4643c8081c8a8070532b0a1d09b1536f8/fastmorph-1.2.1-cp312-cp312-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "da337d265adef1abb2822b396cf32ad1fe291b2c6a2af825206f5c6b6596008d",
                "md5": "425efd168a26c26c89f31a82fb97478c",
                "sha256": "a391c457c3c3b13aa3f4671d4e54d7100d8b6e28b533d1d9f05cf01d56dd60f3"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "425efd168a26c26c89f31a82fb97478c",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8.0",
            "size": 161619,
            "upload_time": "2024-11-21T06:18:00",
            "upload_time_iso_8601": "2024-11-21T06:18:00.717016Z",
            "url": "https://files.pythonhosted.org/packages/da/33/7d265adef1abb2822b396cf32ad1fe291b2c6a2af825206f5c6b6596008d/fastmorph-1.2.1-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f471f74b55ebfa5c8f36822dffa56bcd5921c1a0cf637373cdaca96e471f8522",
                "md5": "74e992efdaa817b52d24e626ec8d3481",
                "sha256": "ccb6c48c26c881133ecfd1482f1b93b37a71783fc9003fd9c8a521df808227fd"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "74e992efdaa817b52d24e626ec8d3481",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8.0",
            "size": 203364,
            "upload_time": "2024-11-21T06:18:01",
            "upload_time_iso_8601": "2024-11-21T06:18:01.797904Z",
            "url": "https://files.pythonhosted.org/packages/f4/71/f74b55ebfa5c8f36822dffa56bcd5921c1a0cf637373cdaca96e471f8522/fastmorph-1.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "91dd435f6104b1cc22f763d15b9016cb7d261dfebabd0150922ab6791219625d",
                "md5": "45edc0fd5d5aa2455df42881cff2b287",
                "sha256": "07235ac7db1fd0d2fc1c6b5156311b27b162269558d5139a60dd27e65c9e34f7"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "45edc0fd5d5aa2455df42881cff2b287",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8.0",
            "size": 212523,
            "upload_time": "2024-11-21T06:18:02",
            "upload_time_iso_8601": "2024-11-21T06:18:02.827428Z",
            "url": "https://files.pythonhosted.org/packages/91/dd/435f6104b1cc22f763d15b9016cb7d261dfebabd0150922ab6791219625d/fastmorph-1.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c8792db51c288e6ad70c35d5612d324c79517a7873f7d1000eba47c958ecd136",
                "md5": "c6d49224bc6256c7571193b0b3e6e72b",
                "sha256": "14bc12051835273586728821d136b06cebffb14502466aea5271e2b297c4e52f"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "c6d49224bc6256c7571193b0b3e6e72b",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8.0",
            "size": 162984,
            "upload_time": "2024-11-21T06:18:03",
            "upload_time_iso_8601": "2024-11-21T06:18:03.809558Z",
            "url": "https://files.pythonhosted.org/packages/c8/79/2db51c288e6ad70c35d5612d324c79517a7873f7d1000eba47c958ecd136/fastmorph-1.2.1-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bc10ff7289ddf6c7820e0e66ef13ff6a2982d2b260011585698b83f5c53c0372",
                "md5": "c3c6de79bf548870ac14a75bfe010776",
                "sha256": "91c3c962088eb68858327e6acf7df2f071863b915783b62e0467fd0c89ee92d3"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "c3c6de79bf548870ac14a75bfe010776",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8.0",
            "size": 138102,
            "upload_time": "2024-11-21T06:18:04",
            "upload_time_iso_8601": "2024-11-21T06:18:04.964248Z",
            "url": "https://files.pythonhosted.org/packages/bc/10/ff7289ddf6c7820e0e66ef13ff6a2982d2b260011585698b83f5c53c0372/fastmorph-1.2.1-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f05a62d45d4eac46b456791c33f291772f0dd1e8e1de81569c9ec0a489183d60",
                "md5": "a65153d645c2413ca2ec7bd7cfedfd95",
                "sha256": "193c7455b847552b35fdaaa83503838ab1d52674caae559b91da874b6e286580"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp313-cp313-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a65153d645c2413ca2ec7bd7cfedfd95",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.8.0",
            "size": 195025,
            "upload_time": "2024-11-21T06:18:06",
            "upload_time_iso_8601": "2024-11-21T06:18:06.135725Z",
            "url": "https://files.pythonhosted.org/packages/f0/5a/62d45d4eac46b456791c33f291772f0dd1e8e1de81569c9ec0a489183d60/fastmorph-1.2.1-cp313-cp313-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3a9adcf4edaefaa6ae07641c47cdbebef765005580ae2590395ddffbbce54f89",
                "md5": "552a245c00d9c02e66c7472a47e6a667",
                "sha256": "6a3f9b10e35872f8f63009a644278caafde50f361c1aaf4a7c0c7fe05883ad66"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp313-cp313-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "552a245c00d9c02e66c7472a47e6a667",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.8.0",
            "size": 161666,
            "upload_time": "2024-11-21T06:18:09",
            "upload_time_iso_8601": "2024-11-21T06:18:09.266368Z",
            "url": "https://files.pythonhosted.org/packages/3a/9a/dcf4edaefaa6ae07641c47cdbebef765005580ae2590395ddffbbce54f89/fastmorph-1.2.1-cp313-cp313-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e17ab514a8b06caddfeada032edc21c077f6a9ae557fb31010adffe2f76a9cab",
                "md5": "f1328160ee039fa8922f4653e50260a0",
                "sha256": "a8e228d1bb20e9c7d237b4c89f33adced9ad46e86b8ce693d66be2129bd23707"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "f1328160ee039fa8922f4653e50260a0",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.8.0",
            "size": 203338,
            "upload_time": "2024-11-21T06:18:10",
            "upload_time_iso_8601": "2024-11-21T06:18:10.299515Z",
            "url": "https://files.pythonhosted.org/packages/e1/7a/b514a8b06caddfeada032edc21c077f6a9ae557fb31010adffe2f76a9cab/fastmorph-1.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "abf0a31a6bf860cb551c24549bdd9d1cc7d570d602d802fd7802b61a57730743",
                "md5": "23a8e953b5495e032514ddac4490abe4",
                "sha256": "d2c6b68f0c271173dcd4c0af976b8a69192873a13955be8d2d36269b7ffc781b"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "23a8e953b5495e032514ddac4490abe4",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.8.0",
            "size": 255859,
            "upload_time": "2024-11-21T06:18:11",
            "upload_time_iso_8601": "2024-11-21T06:18:11.522405Z",
            "url": "https://files.pythonhosted.org/packages/ab/f0/a31a6bf860cb551c24549bdd9d1cc7d570d602d802fd7802b61a57730743/fastmorph-1.2.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7aebd7a3799cb7b23e262824151c72482af94aa6e88a62610ec693e3e5695353",
                "md5": "293823b144780e0e13c88085321817b9",
                "sha256": "4192cff85d85afaabbdfa954dee7af51720da3d6c011a691affa304b5d0d533c"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "293823b144780e0e13c88085321817b9",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.8.0",
            "size": 212398,
            "upload_time": "2024-11-21T06:18:12",
            "upload_time_iso_8601": "2024-11-21T06:18:12.861904Z",
            "url": "https://files.pythonhosted.org/packages/7a/eb/d7a3799cb7b23e262824151c72482af94aa6e88a62610ec693e3e5695353/fastmorph-1.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7e1b934e084c5d6b97485c8cfb56d27b58dc4760e4a57dc305778a07237cf935",
                "md5": "4b78b277457089e0de111ba7d882c727",
                "sha256": "2ef823d43b11cc80c7d83fe48825e411b0579ad85782ddeb458ca1119b07724a"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp313-cp313-win32.whl",
            "has_sig": false,
            "md5_digest": "4b78b277457089e0de111ba7d882c727",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.8.0",
            "size": 163082,
            "upload_time": "2024-11-21T06:18:13",
            "upload_time_iso_8601": "2024-11-21T06:18:13.899642Z",
            "url": "https://files.pythonhosted.org/packages/7e/1b/934e084c5d6b97485c8cfb56d27b58dc4760e4a57dc305778a07237cf935/fastmorph-1.2.1-cp313-cp313-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d5d989b852fd44a800ebe717782511724d58f01eff551cb8ea6ba9384b9bfcc6",
                "md5": "3020e4f223cc195ac18ee5db24ac61f8",
                "sha256": "0f7955ef043a4ab04a767104f5a322023c38ea002d43325e100d5af68ad89e89"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "3020e4f223cc195ac18ee5db24ac61f8",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.8.0",
            "size": 138119,
            "upload_time": "2024-11-21T06:18:14",
            "upload_time_iso_8601": "2024-11-21T06:18:14.913585Z",
            "url": "https://files.pythonhosted.org/packages/d5/d9/89b852fd44a800ebe717782511724d58f01eff551cb8ea6ba9384b9bfcc6/fastmorph-1.2.1-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8a594f64eaaeeb27405b50779ca3bacf0b07fe2f47179c162ae1fe7dd89db465",
                "md5": "26e98d9d7dc2d13cbb62f88b6af99950",
                "sha256": "4f90eacd665f87fd7e4a05e2eae116c6a63fccd5a1c8e400c9859f188ddd6e04"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "26e98d9d7dc2d13cbb62f88b6af99950",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8.0",
            "size": 194249,
            "upload_time": "2024-11-21T06:18:15",
            "upload_time_iso_8601": "2024-11-21T06:18:15.925630Z",
            "url": "https://files.pythonhosted.org/packages/8a/59/4f64eaaeeb27405b50779ca3bacf0b07fe2f47179c162ae1fe7dd89db465/fastmorph-1.2.1-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f49b109b1d76de1c86507372bd0f3a8e15f683f78e4900ef282ae95ef2dea7dc",
                "md5": "d15a280494c0c43d46578d70c0582d89",
                "sha256": "336721f257787b9f0c92210a2ddc60dc163420cc3d6b91e5c8b6e91de40ba6b5"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp38-cp38-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "d15a280494c0c43d46578d70c0582d89",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8.0",
            "size": 161024,
            "upload_time": "2024-11-21T06:18:17",
            "upload_time_iso_8601": "2024-11-21T06:18:17.044052Z",
            "url": "https://files.pythonhosted.org/packages/f4/9b/109b1d76de1c86507372bd0f3a8e15f683f78e4900ef282ae95ef2dea7dc/fastmorph-1.2.1-cp38-cp38-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "05594cf347f43a6201138ad9060e9e4e063bcc1bd315bfea0dd9d90e3ea2eb3d",
                "md5": "ce1b0ca3c3b0594a8dbdb2bbadd4315e",
                "sha256": "6b6c8bb6a00d04d2900112ba9cbab81ff8becace2541439b60ab07b9188d111b"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "ce1b0ca3c3b0594a8dbdb2bbadd4315e",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8.0",
            "size": 201816,
            "upload_time": "2024-11-21T06:18:18",
            "upload_time_iso_8601": "2024-11-21T06:18:18.023328Z",
            "url": "https://files.pythonhosted.org/packages/05/59/4cf347f43a6201138ad9060e9e4e063bcc1bd315bfea0dd9d90e3ea2eb3d/fastmorph-1.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b186f8d41972fb41c68ebd54ceb7b46c3f0ac3e5963ef836c2ea635a5cb1801c",
                "md5": "cda6087658e296b29b7e5c66854b6dda",
                "sha256": "daddd86afb351cf5560a6593ed4cc604b66efcf1812d6fa8171f02e06ee98598"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "cda6087658e296b29b7e5c66854b6dda",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8.0",
            "size": 254164,
            "upload_time": "2024-11-21T06:18:19",
            "upload_time_iso_8601": "2024-11-21T06:18:19.719419Z",
            "url": "https://files.pythonhosted.org/packages/b1/86/f8d41972fb41c68ebd54ceb7b46c3f0ac3e5963ef836c2ea635a5cb1801c/fastmorph-1.2.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "90a65bc8b0d32204e4ff9765cb38bbf0243104b2bb8a7838747dd5f5b984c12c",
                "md5": "2ddebc540913f3c0e14a8453d52f6796",
                "sha256": "50bf6ba66afb47bf8e47dd5c9534b4bc206bdf814aac7425b4d5e522b29c11ac"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2ddebc540913f3c0e14a8453d52f6796",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8.0",
            "size": 212203,
            "upload_time": "2024-11-21T06:18:21",
            "upload_time_iso_8601": "2024-11-21T06:18:21.367487Z",
            "url": "https://files.pythonhosted.org/packages/90/a6/5bc8b0d32204e4ff9765cb38bbf0243104b2bb8a7838747dd5f5b984c12c/fastmorph-1.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a07bbcb99442dcdb7435da950d57f2f5ccf3f1409476388dc2fb3164d6db408d",
                "md5": "51a249d64c951c9c41217ab23c41a17a",
                "sha256": "a9d8028ff0bf44fc6c2668b79349fc2cf454539280319d2afe0e15735b3e996e"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp38-cp38-win32.whl",
            "has_sig": false,
            "md5_digest": "51a249d64c951c9c41217ab23c41a17a",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8.0",
            "size": 161345,
            "upload_time": "2024-11-21T06:18:22",
            "upload_time_iso_8601": "2024-11-21T06:18:22.633629Z",
            "url": "https://files.pythonhosted.org/packages/a0/7b/bcb99442dcdb7435da950d57f2f5ccf3f1409476388dc2fb3164d6db408d/fastmorph-1.2.1-cp38-cp38-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "45db40ea520664ab9a16cbc1d1426909380b3a6e5278f2697d3cd90cf4fa4d6b",
                "md5": "bce333eb73669834f694a0eea0be2c0b",
                "sha256": "0d54f229f667dccd35875dd600efd3fb7ecbaabd50343e8c6014754b83bd7e86"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "bce333eb73669834f694a0eea0be2c0b",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8.0",
            "size": 137036,
            "upload_time": "2024-11-21T06:18:24",
            "upload_time_iso_8601": "2024-11-21T06:18:24.305383Z",
            "url": "https://files.pythonhosted.org/packages/45/db/40ea520664ab9a16cbc1d1426909380b3a6e5278f2697d3cd90cf4fa4d6b/fastmorph-1.2.1-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1b48633d93a34a690b6e4601e5b836bf16abe65b6b67cd78ec56c96bc29b4039",
                "md5": "df3960644e88f4d531e1ae612b0a3f74",
                "sha256": "a3669eeda06cd1d93b5453cee574b7a3b6ed6e294f91ecb6419cf62b716a2be3"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "df3960644e88f4d531e1ae612b0a3f74",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8.0",
            "size": 194523,
            "upload_time": "2024-11-21T06:18:25",
            "upload_time_iso_8601": "2024-11-21T06:18:25.344275Z",
            "url": "https://files.pythonhosted.org/packages/1b/48/633d93a34a690b6e4601e5b836bf16abe65b6b67cd78ec56c96bc29b4039/fastmorph-1.2.1-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e717aef5aedad33c88cf3ea4d9473d409174e9d9b9fc9ed5f3e443e62934380d",
                "md5": "f609413abe089f31c07f7db2c33da896",
                "sha256": "8adb772b27b2b49cde7648c633a1ac1f673730269819b81a7dcc4d81635df5b7"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "f609413abe089f31c07f7db2c33da896",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8.0",
            "size": 161243,
            "upload_time": "2024-11-21T06:18:26",
            "upload_time_iso_8601": "2024-11-21T06:18:26.346626Z",
            "url": "https://files.pythonhosted.org/packages/e7/17/aef5aedad33c88cf3ea4d9473d409174e9d9b9fc9ed5f3e443e62934380d/fastmorph-1.2.1-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c9cca4e4e85c5557bf6ba275fedf72be6380f4fcb44995c98dac7486e420bfb9",
                "md5": "b3bf71c2e2140f53b6320e8f58674c22",
                "sha256": "8ac1e8d72ea1fb34af8bcfedf1e979170f048f2be2ab1addfe346e6930f883e7"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "b3bf71c2e2140f53b6320e8f58674c22",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8.0",
            "size": 201998,
            "upload_time": "2024-11-21T06:18:27",
            "upload_time_iso_8601": "2024-11-21T06:18:27.385595Z",
            "url": "https://files.pythonhosted.org/packages/c9/cc/a4e4e85c5557bf6ba275fedf72be6380f4fcb44995c98dac7486e420bfb9/fastmorph-1.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8eede4e28f57357d98e2dbbf20899fb416020a2657d84ac74bfd812dc9e2f4d2",
                "md5": "1b257e9487de0e1e32348fd683f51fc6",
                "sha256": "94ed472a0d8ff79a75733a324aeae9139566924d7bb5cbad0d14d8781f4db51f"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "1b257e9487de0e1e32348fd683f51fc6",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8.0",
            "size": 256157,
            "upload_time": "2024-11-21T06:18:28",
            "upload_time_iso_8601": "2024-11-21T06:18:28.411879Z",
            "url": "https://files.pythonhosted.org/packages/8e/ed/e4e28f57357d98e2dbbf20899fb416020a2657d84ac74bfd812dc9e2f4d2/fastmorph-1.2.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "00796ff6e89e8362a8eaab894338b02817394ee15876d2e3bb60d42728f4a813",
                "md5": "cb33b01118242deb0c73681918bdb7dd",
                "sha256": "987aca59b19a02785a25e911f0a182df56dffb3fa56aa144d7076ad02db0314b"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cb33b01118242deb0c73681918bdb7dd",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8.0",
            "size": 212619,
            "upload_time": "2024-11-21T06:18:29",
            "upload_time_iso_8601": "2024-11-21T06:18:29.440962Z",
            "url": "https://files.pythonhosted.org/packages/00/79/6ff6e89e8362a8eaab894338b02817394ee15876d2e3bb60d42728f4a813/fastmorph-1.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6a8aa47c6e44e3c53e89e23576dfebb6de8c7c9e3dd15c1f4867339ecabfea9a",
                "md5": "e3e1ac65da422a9a4d57c45d75f025dc",
                "sha256": "914dbc26e555855884fcedaa9b4a8b7ee24b2418e909aa67b898d1e08ca6b479"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp39-cp39-win32.whl",
            "has_sig": false,
            "md5_digest": "e3e1ac65da422a9a4d57c45d75f025dc",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8.0",
            "size": 161494,
            "upload_time": "2024-11-21T06:18:30",
            "upload_time_iso_8601": "2024-11-21T06:18:30.485847Z",
            "url": "https://files.pythonhosted.org/packages/6a/8a/a47c6e44e3c53e89e23576dfebb6de8c7c9e3dd15c1f4867339ecabfea9a/fastmorph-1.2.1-cp39-cp39-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b1537f84c762ea72f8139f2bd88d7e07eb230e027345fa68f1550a8ce15bdecb",
                "md5": "b685dc8b125fbf094534a344aaf7e53c",
                "sha256": "06bb59866f0d421463ec3e62d1bc7b56e6a3e75fcc3367a977904213de01ff6a"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "b685dc8b125fbf094534a344aaf7e53c",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8.0",
            "size": 136816,
            "upload_time": "2024-11-21T06:18:31",
            "upload_time_iso_8601": "2024-11-21T06:18:31.635770Z",
            "url": "https://files.pythonhosted.org/packages/b1/53/7f84c762ea72f8139f2bd88d7e07eb230e027345fa68f1550a8ce15bdecb/fastmorph-1.2.1-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cdde3c8c519d435ca743a4befe7fbe90c6e9975d46a3f635be3d53236a799fbd",
                "md5": "a6f875b6cd4a927f482e24bf88189e4f",
                "sha256": "cdd4da43e9362bf2c13bd9611b7c1249cd902d0340e8cc4394d98fbe44574e53"
            },
            "downloads": -1,
            "filename": "fastmorph-1.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "a6f875b6cd4a927f482e24bf88189e4f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8.0",
            "size": 26408,
            "upload_time": "2024-11-21T06:18:32",
            "upload_time_iso_8601": "2024-11-21T06:18:32.815966Z",
            "url": "https://files.pythonhosted.org/packages/cd/de/3c8c519d435ca743a4befe7fbe90c6e9975d46a3f635be3d53236a799fbd/fastmorph-1.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-21 06:18:32",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "seung-lab",
    "github_project": "fastmorph",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "fastmorph"
}
        
Elapsed time: 0.55800s