fastmorph


Namefastmorph JSON
Version 1.1.0 PyPI version JSON
download
home_pagehttps://github.com/seung-lab/fastmorph/
SummaryMorphological image processing for 3D multi-label images.
upload_time2023-12-31 07:30:10
maintainer
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": "",
    "docs_url": null,
    "requires_python": ">=3.8.0",
    "maintainer_email": "",
    "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/16/92/ae6873d2cf6e4b0150303c252b7642f540d8c30c693d0a156739a4217d20/fastmorph-1.1.0.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.1.0",
    "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": "1a10aa9ac71a44a5f44e85c072b0ff4e803daaf8f0205a09a0fe82f931d2ad89",
                "md5": "995707d8c16cf348ba56f639cd16d681",
                "sha256": "91c1177f5f42ba62e8805e88cfc61bb875a1baea8604a85dcbcaa26b7e9f5717"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp310-cp310-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "995707d8c16cf348ba56f639cd16d681",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8.0",
            "size": 221887,
            "upload_time": "2023-12-31T07:30:01",
            "upload_time_iso_8601": "2023-12-31T07:30:01.483472Z",
            "url": "https://files.pythonhosted.org/packages/1a/10/aa9ac71a44a5f44e85c072b0ff4e803daaf8f0205a09a0fe82f931d2ad89/fastmorph-1.1.0-cp310-cp310-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "35cfba390251e175a318bdebd1dd845d7d4970c692db905bebc115aceaf7c635",
                "md5": "f87c00f5bb1e2559f9f2fdb2d3884bd9",
                "sha256": "3cbec0720d8b00539e5c342bc1e28f3fa9a2ea876afac10a6f9d2a3e845dce8c"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f87c00f5bb1e2559f9f2fdb2d3884bd9",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8.0",
            "size": 124442,
            "upload_time": "2023-12-31T07:41:11",
            "upload_time_iso_8601": "2023-12-31T07:41:11.564755Z",
            "url": "https://files.pythonhosted.org/packages/35/cf/ba390251e175a318bdebd1dd845d7d4970c692db905bebc115aceaf7c635/fastmorph-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fb1ca1a44654b263af66364af3d06e74a3077914a914c91a0b76dfac554e618d",
                "md5": "384f144d3d435c8c453610768a197c96",
                "sha256": "bbd8d434c92f3aff1593a9c733a37d04426daf7ef138649f7098fe22dfe1dc29"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "384f144d3d435c8c453610768a197c96",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8.0",
            "size": 114715,
            "upload_time": "2023-12-31T07:41:13",
            "upload_time_iso_8601": "2023-12-31T07:41:13.319270Z",
            "url": "https://files.pythonhosted.org/packages/fb/1c/a1a44654b263af66364af3d06e74a3077914a914c91a0b76dfac554e618d/fastmorph-1.1.0-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0ed4955df97bf3478bb505a23d8ceca2079f97917c79a201fc1a091981bcd211",
                "md5": "bf19cca5f73d830ea29b313db3a36f3f",
                "sha256": "72b1d299141c0b2f0b119bafb6312146ed7c4f4eaf24eed9a32e7298c23a7938"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "bf19cca5f73d830ea29b313db3a36f3f",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8.0",
            "size": 170984,
            "upload_time": "2023-12-31T07:41:15",
            "upload_time_iso_8601": "2023-12-31T07:41:15.159153Z",
            "url": "https://files.pythonhosted.org/packages/0e/d4/955df97bf3478bb505a23d8ceca2079f97917c79a201fc1a091981bcd211/fastmorph-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "91fe29c455c2f628864946044667e9fb413650b8fd66c17d1adbfac9baa6de7a",
                "md5": "f4269099c0c87ed8e81169dec18df41e",
                "sha256": "29559f81a712adc9533f54db7549b5f2fbeb5f9868b13728ba299d52bdd22898"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "f4269099c0c87ed8e81169dec18df41e",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8.0",
            "size": 206602,
            "upload_time": "2023-12-31T07:41:16",
            "upload_time_iso_8601": "2023-12-31T07:41:16.801299Z",
            "url": "https://files.pythonhosted.org/packages/91/fe/29c455c2f628864946044667e9fb413650b8fd66c17d1adbfac9baa6de7a/fastmorph-1.1.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "aa22bd4d990ee67c227377751863ed54b9049f218252f4e824f3affc6fa792fe",
                "md5": "04f5bfc55b1b66f3a041b0385256c705",
                "sha256": "99fb1872e9d1412f8e48ae23f35bced16fa28df46a11a7631eec2984a02a9de4"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "04f5bfc55b1b66f3a041b0385256c705",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8.0",
            "size": 172568,
            "upload_time": "2023-12-31T07:41:18",
            "upload_time_iso_8601": "2023-12-31T07:41:18.219551Z",
            "url": "https://files.pythonhosted.org/packages/aa/22/bd4d990ee67c227377751863ed54b9049f218252f4e824f3affc6fa792fe/fastmorph-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6b8ebc704cda991b6e8ce340366304ae63fb9bc8c6bf5d41063065e1103b2062",
                "md5": "9fd0fa4b71f50838cc9f07b5f13d4613",
                "sha256": "65a900115c486b9c802318fba98a5e7e9d1cd931af62f0c8bf236dbc09fcb9d4"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "9fd0fa4b71f50838cc9f07b5f13d4613",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8.0",
            "size": 134321,
            "upload_time": "2023-12-31T07:41:20",
            "upload_time_iso_8601": "2023-12-31T07:41:20.936473Z",
            "url": "https://files.pythonhosted.org/packages/6b/8e/bc704cda991b6e8ce340366304ae63fb9bc8c6bf5d41063065e1103b2062/fastmorph-1.1.0-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2c4cf249886a0f63c099f66ed6bbceb72cc3d09296308cf2b5aba531fc5c4af2",
                "md5": "02517d779f47e32ccc9ae76686b18558",
                "sha256": "cfd9441c9b88b740577107f5015a3fec2f6599a345e9d30b36b734bcfa6737ed"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "02517d779f47e32ccc9ae76686b18558",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8.0",
            "size": 117090,
            "upload_time": "2023-12-31T07:41:22",
            "upload_time_iso_8601": "2023-12-31T07:41:22.884251Z",
            "url": "https://files.pythonhosted.org/packages/2c/4c/f249886a0f63c099f66ed6bbceb72cc3d09296308cf2b5aba531fc5c4af2/fastmorph-1.1.0-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "89de45401bfd333c49672d49789b78b695d061534af85fe31c561a0109c4c802",
                "md5": "fdbff4d5d47bd09ae02e063c1f053643",
                "sha256": "b813ec61cb665daa8f0b3ea6e21fd65e4a3f015bae57438239d2109735293225"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp311-cp311-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "fdbff4d5d47bd09ae02e063c1f053643",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8.0",
            "size": 224498,
            "upload_time": "2023-12-31T07:30:03",
            "upload_time_iso_8601": "2023-12-31T07:30:03.935569Z",
            "url": "https://files.pythonhosted.org/packages/89/de/45401bfd333c49672d49789b78b695d061534af85fe31c561a0109c4c802/fastmorph-1.1.0-cp311-cp311-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f068811d56df62388f65b8e5fa2fe0e868c126b46ca4bb2d39e88116a4fc220b",
                "md5": "60bb0532d1e8d24ffa7b71a48ffb562b",
                "sha256": "becdd87ed67b6d1debdbdc2047157fb99da525d68ce52b5fb7b4247c730c179b"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "60bb0532d1e8d24ffa7b71a48ffb562b",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8.0",
            "size": 125916,
            "upload_time": "2023-12-31T07:41:23",
            "upload_time_iso_8601": "2023-12-31T07:41:23.927652Z",
            "url": "https://files.pythonhosted.org/packages/f0/68/811d56df62388f65b8e5fa2fe0e868c126b46ca4bb2d39e88116a4fc220b/fastmorph-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "54edce74138372b44d5f0ba3a27502c39a6fd301c032558a61419d783ed29d94",
                "md5": "11fd703e6abfe53497a7c4cc6209b6fb",
                "sha256": "af707f14bd48338469b01818ebf58d5c43907af117fdc5cb73f29f684e4b7fad"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "11fd703e6abfe53497a7c4cc6209b6fb",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8.0",
            "size": 116165,
            "upload_time": "2023-12-31T07:41:25",
            "upload_time_iso_8601": "2023-12-31T07:41:25.071472Z",
            "url": "https://files.pythonhosted.org/packages/54/ed/ce74138372b44d5f0ba3a27502c39a6fd301c032558a61419d783ed29d94/fastmorph-1.1.0-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "65647c4cfe2b88207de10888b19820690e2555be1ee72f29740e9a649677f3cf",
                "md5": "c60b9dc574a68ecf105fc1723741f4c0",
                "sha256": "27192745d36f4b00606b415483a6f4042f66ec5d2b596bc7af2ad4bff830cd18"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "c60b9dc574a68ecf105fc1723741f4c0",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8.0",
            "size": 172274,
            "upload_time": "2023-12-31T07:41:26",
            "upload_time_iso_8601": "2023-12-31T07:41:26.698571Z",
            "url": "https://files.pythonhosted.org/packages/65/64/7c4cfe2b88207de10888b19820690e2555be1ee72f29740e9a649677f3cf/fastmorph-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "195fbcb5a51f1d829496d721b75fcb4bb3057611572333e6eedb24b096eee37e",
                "md5": "c4c055b0e7ddf908addcba4b89dd0233",
                "sha256": "86f76eb3467a5d5ce0c0118fcf28b2f54e9c10ae81fc6eff05ee16110bdcfbb2"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "c4c055b0e7ddf908addcba4b89dd0233",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8.0",
            "size": 208219,
            "upload_time": "2023-12-31T07:41:27",
            "upload_time_iso_8601": "2023-12-31T07:41:27.768967Z",
            "url": "https://files.pythonhosted.org/packages/19/5f/bcb5a51f1d829496d721b75fcb4bb3057611572333e6eedb24b096eee37e/fastmorph-1.1.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "647a29b3818b8c36888798238f2567faea3049e385ed3a508f6aa4b8b0b12929",
                "md5": "573d5cf38864bac14bc0b588abf1050a",
                "sha256": "ec2cb32c4647347635e30c65cf17ddb118d031c63aaf89d42ba8642c2e71a48c"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "573d5cf38864bac14bc0b588abf1050a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8.0",
            "size": 173974,
            "upload_time": "2023-12-31T07:41:29",
            "upload_time_iso_8601": "2023-12-31T07:41:29.598318Z",
            "url": "https://files.pythonhosted.org/packages/64/7a/29b3818b8c36888798238f2567faea3049e385ed3a508f6aa4b8b0b12929/fastmorph-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ea96c453986f46b51396ab63f7866b4630316f786ac19e92056f8738af1c85f5",
                "md5": "461bada8deb7ef3beeef5745d4c76d0b",
                "sha256": "c7d27e7b97f5d33165ec0817691f0ca37b228816ee10415e4482a23d4d5d1037"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "461bada8deb7ef3beeef5745d4c76d0b",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8.0",
            "size": 135523,
            "upload_time": "2023-12-31T07:41:31",
            "upload_time_iso_8601": "2023-12-31T07:41:31.047595Z",
            "url": "https://files.pythonhosted.org/packages/ea/96/c453986f46b51396ab63f7866b4630316f786ac19e92056f8738af1c85f5/fastmorph-1.1.0-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "279e44102e8ad9865085ab96e3979a9eba330869613af2d1e109aaac5fab5397",
                "md5": "7bd26aa867cb8f98fe93ee48b8323f8e",
                "sha256": "e18a4ac07ed9845d53d12d6c8a6b9f502c8941a35688ad0016186612f41bedbe"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "7bd26aa867cb8f98fe93ee48b8323f8e",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8.0",
            "size": 117601,
            "upload_time": "2023-12-31T07:41:32",
            "upload_time_iso_8601": "2023-12-31T07:41:32.734598Z",
            "url": "https://files.pythonhosted.org/packages/27/9e/44102e8ad9865085ab96e3979a9eba330869613af2d1e109aaac5fab5397/fastmorph-1.1.0-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8909af064b096919297021c8961dbdf483fc10ad0453b248c1fcd6dfdcd36f3d",
                "md5": "ae854ef4e32d105402f1f25321cd78fb",
                "sha256": "4026b922ab6b69968bdcca1c0aeb71fb755184822a385656704042a25f318e72"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp312-cp312-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "ae854ef4e32d105402f1f25321cd78fb",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8.0",
            "size": 219439,
            "upload_time": "2023-12-31T07:30:05",
            "upload_time_iso_8601": "2023-12-31T07:30:05.686208Z",
            "url": "https://files.pythonhosted.org/packages/89/09/af064b096919297021c8961dbdf483fc10ad0453b248c1fcd6dfdcd36f3d/fastmorph-1.1.0-cp312-cp312-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f227d8915ada331963105724963564027c373167cf5758314c11259437c1c137",
                "md5": "a221669a417bc955a60d37d5edefc704",
                "sha256": "d3902ec88dbc50c4b6b81dd11e67d99ec0b04efed01237d527d755c4ef01c4f6"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp312-cp312-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a221669a417bc955a60d37d5edefc704",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8.0",
            "size": 123361,
            "upload_time": "2023-12-31T07:41:33",
            "upload_time_iso_8601": "2023-12-31T07:41:33.748969Z",
            "url": "https://files.pythonhosted.org/packages/f2/27/d8915ada331963105724963564027c373167cf5758314c11259437c1c137/fastmorph-1.1.0-cp312-cp312-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0d7ba2cc829954d3ce3f1084c7e1f474702eded6ba5518153045b1f231220b90",
                "md5": "510c1256fe809bb222253ca6dd3751f8",
                "sha256": "69519428bd35881af04f46dfc4511a6a4ef3a35a4372e3c64cc4e138df849fcd"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "510c1256fe809bb222253ca6dd3751f8",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8.0",
            "size": 113520,
            "upload_time": "2023-12-31T07:41:35",
            "upload_time_iso_8601": "2023-12-31T07:41:35.400824Z",
            "url": "https://files.pythonhosted.org/packages/0d/7b/a2cc829954d3ce3f1084c7e1f474702eded6ba5518153045b1f231220b90/fastmorph-1.1.0-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4b641cf8260d7db2dcd8720f34310ca682499f32f90c1b58ce8a7469f7a707f5",
                "md5": "c891939cf9011fa945c3cc6883cba553",
                "sha256": "d2067413cafcd6e85165827c02af0cd4cb1dd62abc49b7ac43493451505316d8"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "c891939cf9011fa945c3cc6883cba553",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8.0",
            "size": 171847,
            "upload_time": "2023-12-31T07:41:36",
            "upload_time_iso_8601": "2023-12-31T07:41:36.584631Z",
            "url": "https://files.pythonhosted.org/packages/4b/64/1cf8260d7db2dcd8720f34310ca682499f32f90c1b58ce8a7469f7a707f5/fastmorph-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f362cd90837726c481d92ddae99ce6f25e8566fd3e47eb2448323a380cb2899f",
                "md5": "b573e1100abbe90f520c54ab9c8a34b4",
                "sha256": "bf78f7c9e11aac1f180f8ce286e3727a7d093611c67d020efe4753adc588e7f4"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b573e1100abbe90f520c54ab9c8a34b4",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8.0",
            "size": 173994,
            "upload_time": "2023-12-31T07:41:38",
            "upload_time_iso_8601": "2023-12-31T07:41:38.294474Z",
            "url": "https://files.pythonhosted.org/packages/f3/62/cd90837726c481d92ddae99ce6f25e8566fd3e47eb2448323a380cb2899f/fastmorph-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f6769d7008ebe0e2d600e274fff3e7960b97b72c6c551bc9651716f4faac0bda",
                "md5": "d8a4a0d1339ed05984981bae5f401d55",
                "sha256": "8274ac5469c395e7dda1f6f02708874e167a527432d1efd4998313fded66f47a"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "d8a4a0d1339ed05984981bae5f401d55",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8.0",
            "size": 134612,
            "upload_time": "2023-12-31T07:41:40",
            "upload_time_iso_8601": "2023-12-31T07:41:40.010319Z",
            "url": "https://files.pythonhosted.org/packages/f6/76/9d7008ebe0e2d600e274fff3e7960b97b72c6c551bc9651716f4faac0bda/fastmorph-1.1.0-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "380243e3d66d3c1ae2150494171f03f821f61875fa6c72e37ef467d333946a2b",
                "md5": "06202f973fb122b4f8610727280c6130",
                "sha256": "b6eb5ef88929fda4db1f1aa66d0647b7e7ddd89ddd99129d9db0dc9fdcaba60c"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "06202f973fb122b4f8610727280c6130",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8.0",
            "size": 116086,
            "upload_time": "2023-12-31T07:41:41",
            "upload_time_iso_8601": "2023-12-31T07:41:41.028895Z",
            "url": "https://files.pythonhosted.org/packages/38/02/43e3d66d3c1ae2150494171f03f821f61875fa6c72e37ef467d333946a2b/fastmorph-1.1.0-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4c862bbb08635065c4bbb100914a5c65ee6d461e629f360e07a9a4eb311a1a66",
                "md5": "8966005c24131a9ff4740dd55648016a",
                "sha256": "bdaa236a83c63e7e860ced9a803eb7e88c38862207e3a56af93757b7b3c6d329"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8966005c24131a9ff4740dd55648016a",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8.0",
            "size": 124326,
            "upload_time": "2023-12-31T07:41:42",
            "upload_time_iso_8601": "2023-12-31T07:41:42.014152Z",
            "url": "https://files.pythonhosted.org/packages/4c/86/2bbb08635065c4bbb100914a5c65ee6d461e629f360e07a9a4eb311a1a66/fastmorph-1.1.0-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ce92b28f38ad185ba552884f2724dcf535a4f6cfacb954bf7d8c8c9e492c0c1c",
                "md5": "5c170b40912d759b711221c10097cae3",
                "sha256": "1b750fc5d112c3c63571e97ba4b8fd2045e9562d4d5238774af9462795b5dc46"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp38-cp38-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "5c170b40912d759b711221c10097cae3",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8.0",
            "size": 114591,
            "upload_time": "2023-12-31T07:41:43",
            "upload_time_iso_8601": "2023-12-31T07:41:43.095579Z",
            "url": "https://files.pythonhosted.org/packages/ce/92/b28f38ad185ba552884f2724dcf535a4f6cfacb954bf7d8c8c9e492c0c1c/fastmorph-1.1.0-cp38-cp38-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6bad8d1b3dae878f2f7d804363ea081281afb2308e8e851a1bc88b1dd6e9bedf",
                "md5": "f06afeddf09b2632f5cf727f11dd4075",
                "sha256": "07c2b221fe19533e6a12845d12116a0aa3a90e3d5a006598e14be50aadf1a132"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp38-cp38-macosx_11_0_universal2.whl",
            "has_sig": false,
            "md5_digest": "f06afeddf09b2632f5cf727f11dd4075",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8.0",
            "size": 221511,
            "upload_time": "2023-12-31T07:30:07",
            "upload_time_iso_8601": "2023-12-31T07:30:07.485157Z",
            "url": "https://files.pythonhosted.org/packages/6b/ad/8d1b3dae878f2f7d804363ea081281afb2308e8e851a1bc88b1dd6e9bedf/fastmorph-1.1.0-cp38-cp38-macosx_11_0_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fb8f6c439ea0d3ceaf45592e970b5991dd6206b5411504efd649d0b6ee487ee8",
                "md5": "06d9e83102531ccc07cee010df50d5a8",
                "sha256": "0b3615ec011641ca7fa6dd8c1acaf4c63754a4cae45c391222a1504f3ab33632"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "06d9e83102531ccc07cee010df50d5a8",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8.0",
            "size": 170840,
            "upload_time": "2023-12-31T07:41:44",
            "upload_time_iso_8601": "2023-12-31T07:41:44.721683Z",
            "url": "https://files.pythonhosted.org/packages/fb/8f/6c439ea0d3ceaf45592e970b5991dd6206b5411504efd649d0b6ee487ee8/fastmorph-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "adee7d6cfcd8e8f305b54b23c2391da595def9984c4480808df8a240fbc4cd01",
                "md5": "85dcd27c7107c9da77dfac48b386b6ea",
                "sha256": "4ef7269a2db2c581f0ed9cd1c9de93d4e286ff08dd81a747c6a79b1533bc358a"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "85dcd27c7107c9da77dfac48b386b6ea",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8.0",
            "size": 206317,
            "upload_time": "2023-12-31T07:41:45",
            "upload_time_iso_8601": "2023-12-31T07:41:45.859070Z",
            "url": "https://files.pythonhosted.org/packages/ad/ee/7d6cfcd8e8f305b54b23c2391da595def9984c4480808df8a240fbc4cd01/fastmorph-1.1.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fb6b3748847a55abb8312c87bbc38f80e5b6194038aaf25d5efa1406d4ab100c",
                "md5": "ea1450f11b33b382d3ced94308d2c713",
                "sha256": "43f38c36df417010f7962f33c53218affdf9a0f8096127d9fac10adda94a8899"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ea1450f11b33b382d3ced94308d2c713",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8.0",
            "size": 173103,
            "upload_time": "2023-12-31T07:41:47",
            "upload_time_iso_8601": "2023-12-31T07:41:47.592723Z",
            "url": "https://files.pythonhosted.org/packages/fb/6b/3748847a55abb8312c87bbc38f80e5b6194038aaf25d5efa1406d4ab100c/fastmorph-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "54e7aff52d0caabc1cad4325ab8d1e93d21afc16c257ab3c6c493e3dc69a3230",
                "md5": "ebd3f19b8aa9b4d07081b36de7a380e9",
                "sha256": "279dfd6bd6bc85f390e8d7b447786ecccb5671128751d1eb2946f4e21c33616e"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp38-cp38-win32.whl",
            "has_sig": false,
            "md5_digest": "ebd3f19b8aa9b4d07081b36de7a380e9",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8.0",
            "size": 134434,
            "upload_time": "2023-12-31T07:41:48",
            "upload_time_iso_8601": "2023-12-31T07:41:48.623773Z",
            "url": "https://files.pythonhosted.org/packages/54/e7/aff52d0caabc1cad4325ab8d1e93d21afc16c257ab3c6c493e3dc69a3230/fastmorph-1.1.0-cp38-cp38-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e833ae1f3129eb412cfdfb5b00317ca95c6d5c67872c030b16c7c11e2fbee00b",
                "md5": "e66f5f73673202d618b5b94d24640c94",
                "sha256": "3ef7e3f217cf3970bcb904dcab25c4f4998bc05433027d79054464e1602d2df7"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "e66f5f73673202d618b5b94d24640c94",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8.0",
            "size": 117179,
            "upload_time": "2023-12-31T07:41:49",
            "upload_time_iso_8601": "2023-12-31T07:41:49.740795Z",
            "url": "https://files.pythonhosted.org/packages/e8/33/ae1f3129eb412cfdfb5b00317ca95c6d5c67872c030b16c7c11e2fbee00b/fastmorph-1.1.0-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fee72816f1ecdc210963692341303472cd86c6170025c0f1fa7043bb8a45c252",
                "md5": "cb51a8ce17ae9482be36da063436c1e0",
                "sha256": "152729ec822914a17719422b002e642a5e5fa9c8d40915ed0428a855ecc79080"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp39-cp39-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "cb51a8ce17ae9482be36da063436c1e0",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8.0",
            "size": 222088,
            "upload_time": "2023-12-31T07:30:09",
            "upload_time_iso_8601": "2023-12-31T07:30:09.324475Z",
            "url": "https://files.pythonhosted.org/packages/fe/e7/2816f1ecdc210963692341303472cd86c6170025c0f1fa7043bb8a45c252/fastmorph-1.1.0-cp39-cp39-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6cece55cdff6cd231e4370112e38085ff6f0af1d9ce6d41376c4c369be79fd0f",
                "md5": "0dce196b113c1ce5006bf8a0d35aabe2",
                "sha256": "91f8f32bced3ad50a1bb5bc82c98e71412a355ec6af0cf9694f4232fe28b2273"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0dce196b113c1ce5006bf8a0d35aabe2",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8.0",
            "size": 124591,
            "upload_time": "2023-12-31T07:41:50",
            "upload_time_iso_8601": "2023-12-31T07:41:50.862017Z",
            "url": "https://files.pythonhosted.org/packages/6c/ec/e55cdff6cd231e4370112e38085ff6f0af1d9ce6d41376c4c369be79fd0f/fastmorph-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "29527ac046748298318647d6453b901d1a64bdbe8e8894011749bf631b10739c",
                "md5": "88629dd001cb0fa80ba3e98ad534d9e7",
                "sha256": "4999c10ce210a059a33912d76c36ba57acacf88f5fe4c06a08fa3c9b79a0f64d"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "88629dd001cb0fa80ba3e98ad534d9e7",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8.0",
            "size": 114829,
            "upload_time": "2023-12-31T07:41:52",
            "upload_time_iso_8601": "2023-12-31T07:41:52.509734Z",
            "url": "https://files.pythonhosted.org/packages/29/52/7ac046748298318647d6453b901d1a64bdbe8e8894011749bf631b10739c/fastmorph-1.1.0-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a89f20a78b212e6c8961885f5d835dec25187d7bf53eb7c7271f28f9ff032d58",
                "md5": "610aaac55bf00dcbf4fd53217661bfbd",
                "sha256": "8e97e20b53a105d10d312964a6490b12523c23cc1f41e11e7ce3cbf515f19aad"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "610aaac55bf00dcbf4fd53217661bfbd",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8.0",
            "size": 171225,
            "upload_time": "2023-12-31T07:41:54",
            "upload_time_iso_8601": "2023-12-31T07:41:54.148607Z",
            "url": "https://files.pythonhosted.org/packages/a8/9f/20a78b212e6c8961885f5d835dec25187d7bf53eb7c7271f28f9ff032d58/fastmorph-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "73bb1ef6c637c6bca2afcc2e7b8747134a5b9ee95231d5baccb6d1565b0cdfd0",
                "md5": "1ac36ed683b781cfb4f5e57a1fe8d986",
                "sha256": "cbb28416ac8c2cc836e4900fc56f19467389209073882a5729ddda6ab4873b3a"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "1ac36ed683b781cfb4f5e57a1fe8d986",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8.0",
            "size": 206764,
            "upload_time": "2023-12-31T07:41:55",
            "upload_time_iso_8601": "2023-12-31T07:41:55.285717Z",
            "url": "https://files.pythonhosted.org/packages/73/bb/1ef6c637c6bca2afcc2e7b8747134a5b9ee95231d5baccb6d1565b0cdfd0/fastmorph-1.1.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b7d5c040fd2de713619fc3d863d07e9cef29018b51492745478e9daf9a1945f7",
                "md5": "af9ea69fd25aa64b2c3b14af551343f8",
                "sha256": "4657d49edf4f1e05fce3fa8c4f2a2cfac3a566086a61fc79f172161195d281e3"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "af9ea69fd25aa64b2c3b14af551343f8",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8.0",
            "size": 173405,
            "upload_time": "2023-12-31T07:41:56",
            "upload_time_iso_8601": "2023-12-31T07:41:56.501784Z",
            "url": "https://files.pythonhosted.org/packages/b7/d5/c040fd2de713619fc3d863d07e9cef29018b51492745478e9daf9a1945f7/fastmorph-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f21ba538be65977a6e573ea539b66d7836eb93264036b16b5cd0bdd45743081c",
                "md5": "959e777b20a69b6f0fd1966bd80fce38",
                "sha256": "f11a39586034a03711258357e76fa2dcbd86ba42b669f1b86fbbd1a2f10f9334"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp39-cp39-win32.whl",
            "has_sig": false,
            "md5_digest": "959e777b20a69b6f0fd1966bd80fce38",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8.0",
            "size": 134552,
            "upload_time": "2023-12-31T07:41:57",
            "upload_time_iso_8601": "2023-12-31T07:41:57.537207Z",
            "url": "https://files.pythonhosted.org/packages/f2/1b/a538be65977a6e573ea539b66d7836eb93264036b16b5cd0bdd45743081c/fastmorph-1.1.0-cp39-cp39-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b32ddb13ac285a751259cea7b6f7532ecf1c229a954f60110a2145403c12f134",
                "md5": "0e42ec2362d8af354285f5dd03c522a6",
                "sha256": "64c97a1bf892c82c8d1d2e0330907216cdb04971e41454da1c1f712fcbb1d1dc"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "0e42ec2362d8af354285f5dd03c522a6",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8.0",
            "size": 116938,
            "upload_time": "2023-12-31T07:41:58",
            "upload_time_iso_8601": "2023-12-31T07:41:58.486331Z",
            "url": "https://files.pythonhosted.org/packages/b3/2d/db13ac285a751259cea7b6f7532ecf1c229a954f60110a2145403c12f134/fastmorph-1.1.0-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1692ae6873d2cf6e4b0150303c252b7642f540d8c30c693d0a156739a4217d20",
                "md5": "7dc995ccf4b83a50427c34f180e33c16",
                "sha256": "0dd463d1f692a718e255f451697cd50e198e33d81b834808d89258c0a449d908"
            },
            "downloads": -1,
            "filename": "fastmorph-1.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "7dc995ccf4b83a50427c34f180e33c16",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8.0",
            "size": 25570,
            "upload_time": "2023-12-31T07:30:10",
            "upload_time_iso_8601": "2023-12-31T07:30:10.571061Z",
            "url": "https://files.pythonhosted.org/packages/16/92/ae6873d2cf6e4b0150303c252b7642f540d8c30c693d0a156739a4217d20/fastmorph-1.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-31 07:30:10",
    "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.16245s