 [](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/bc/7f/cccfe2d802c44edc18bc710f3c75c7d8fec7ceaa96a941976302bcf8c3e7/fastmorph-1.3.0.tar.gz",
"platform": null,
"description": " [](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.3.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": "817ee69095a0e15ef06584dd13b0ac5df4e5ae0a08876c276e4fcbff663bae9f",
"md5": "f77d0c446bb8032f588cd3048b0d09a0",
"sha256": "014bcd3a92beb022c30e9a7c3ca405a3ca67fdc05dadc5a79ad883e31be77486"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp310-cp310-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "f77d0c446bb8032f588cd3048b0d09a0",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8.0",
"size": 194629,
"upload_time": "2025-02-12T17:57:12",
"upload_time_iso_8601": "2025-02-12T17:57:12.035985Z",
"url": "https://files.pythonhosted.org/packages/81/7e/e69095a0e15ef06584dd13b0ac5df4e5ae0a08876c276e4fcbff663bae9f/fastmorph-1.3.0-cp310-cp310-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a685eb4921854c0c5a362310045c2bd517b34153df934c97e982430f3dcbfbef",
"md5": "ec6f7ffd9e2795486819139488de8b81",
"sha256": "40dfb95bfdb5824f9f4e44e96a54863e4aa75b7be45efcc4630bcce100e6a0f5"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "ec6f7ffd9e2795486819139488de8b81",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8.0",
"size": 161360,
"upload_time": "2025-02-12T17:57:13",
"upload_time_iso_8601": "2025-02-12T17:57:13.400718Z",
"url": "https://files.pythonhosted.org/packages/a6/85/eb4921854c0c5a362310045c2bd517b34153df934c97e982430f3dcbfbef/fastmorph-1.3.0-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9a1c14534cf80ba3f8c9e424e65922b4e2129921a8707c2056e223ecb607b0b9",
"md5": "cbde0897ce22e805a0d1d24d43806656",
"sha256": "7d15a1b9ce858e26c59d646acda2ca1216344e2c5e03922af55e70cbf9ea683c"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "cbde0897ce22e805a0d1d24d43806656",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8.0",
"size": 202331,
"upload_time": "2025-02-12T17:57:14",
"upload_time_iso_8601": "2025-02-12T17:57:14.614931Z",
"url": "https://files.pythonhosted.org/packages/9a/1c/14534cf80ba3f8c9e424e65922b4e2129921a8707c2056e223ecb607b0b9/fastmorph-1.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5f03268f5b6407c02a8d7c87e61efba28902fd7f5681881d4a84a32f4c92e792",
"md5": "df1921491c4dacb798790f6ff21a8203",
"sha256": "a237d56b7a4831b039b781a0a03e393e55d3e1ca102c1cc224163a82c44d5bf7"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "df1921491c4dacb798790f6ff21a8203",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8.0",
"size": 254585,
"upload_time": "2025-02-12T17:57:15",
"upload_time_iso_8601": "2025-02-12T17:57:15.752907Z",
"url": "https://files.pythonhosted.org/packages/5f/03/268f5b6407c02a8d7c87e61efba28902fd7f5681881d4a84a32f4c92e792/fastmorph-1.3.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "be589f6fda7d6a03d23891543614918eab6e719841ab4f74d1aab52d55e3edf0",
"md5": "f7cdb99f158c767a81b42c476656c101",
"sha256": "1971b5070144e98eacf12df73f99a4d674e7a5256092784b3c552854b0dc1904"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "f7cdb99f158c767a81b42c476656c101",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8.0",
"size": 212502,
"upload_time": "2025-02-12T17:57:17",
"upload_time_iso_8601": "2025-02-12T17:57:17.777773Z",
"url": "https://files.pythonhosted.org/packages/be/58/9f6fda7d6a03d23891543614918eab6e719841ab4f74d1aab52d55e3edf0/fastmorph-1.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d73dd070b73fede70002f561c1594a8999be23e3b61540fbdf10d3e6b8811779",
"md5": "b436d7ce7f63e10a57744ac7bf6d305b",
"sha256": "d5b043da4681edbfeee8a05f217a9a7f9f6dab77580582e6d4c42edc9bf611d1"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp310-cp310-win32.whl",
"has_sig": false,
"md5_digest": "b436d7ce7f63e10a57744ac7bf6d305b",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8.0",
"size": 161550,
"upload_time": "2025-02-12T17:57:19",
"upload_time_iso_8601": "2025-02-12T17:57:19.091568Z",
"url": "https://files.pythonhosted.org/packages/d7/3d/d070b73fede70002f561c1594a8999be23e3b61540fbdf10d3e6b8811779/fastmorph-1.3.0-cp310-cp310-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "624556ea4e8473488bea91b96f3a42ec3c9f1d4ee674552b4f0a0a81147789c5",
"md5": "ee55f6f00a16abeb1706f66dd2e30fb0",
"sha256": "9907ed9243356d2a6e20ffe58ef51fe1b80f6e69f09f4b93078fb66c46ece5e6"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "ee55f6f00a16abeb1706f66dd2e30fb0",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8.0",
"size": 137199,
"upload_time": "2025-02-12T17:57:20",
"upload_time_iso_8601": "2025-02-12T17:57:20.166125Z",
"url": "https://files.pythonhosted.org/packages/62/45/56ea4e8473488bea91b96f3a42ec3c9f1d4ee674552b4f0a0a81147789c5/fastmorph-1.3.0-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b3b02fa213bafb0fdbf6b06adf33ac6f24013fa0cceef19e16286b5d040c67ca",
"md5": "a356cab33a800adc12a4477c4d033c14",
"sha256": "d6505595be7d22c0b1c67c0d5ef7694f86df82bfbc410fd78278b9d13c31c28e"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp311-cp311-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "a356cab33a800adc12a4477c4d033c14",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8.0",
"size": 196381,
"upload_time": "2025-02-12T17:57:21",
"upload_time_iso_8601": "2025-02-12T17:57:21.965009Z",
"url": "https://files.pythonhosted.org/packages/b3/b0/2fa213bafb0fdbf6b06adf33ac6f24013fa0cceef19e16286b5d040c67ca/fastmorph-1.3.0-cp311-cp311-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b953fcf9b7bc427328f956cf456dcd7e4bef9fbd17e797951081cb2e245f57ab",
"md5": "24711372545d248d4c5868b8b8399fbd",
"sha256": "b24821b66e8d8fcc7dd70df6846de2abbc9107d071932b79fa29be39ce1b9e07"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "24711372545d248d4c5868b8b8399fbd",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8.0",
"size": 162608,
"upload_time": "2025-02-12T17:57:23",
"upload_time_iso_8601": "2025-02-12T17:57:23.132447Z",
"url": "https://files.pythonhosted.org/packages/b9/53/fcf9b7bc427328f956cf456dcd7e4bef9fbd17e797951081cb2e245f57ab/fastmorph-1.3.0-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3fb67bb8990f1b85255f050cbbb5cb9efca45c3213fb882f634fd436d29ef093",
"md5": "3daa5e25531434c5b8126c1e61b47f48",
"sha256": "a6f8ade38f8b1bf194247028112c5e5a47e48c9dd887b415cf5240663dfa1ccc"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "3daa5e25531434c5b8126c1e61b47f48",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8.0",
"size": 204072,
"upload_time": "2025-02-12T17:57:24",
"upload_time_iso_8601": "2025-02-12T17:57:24.166912Z",
"url": "https://files.pythonhosted.org/packages/3f/b6/7bb8990f1b85255f050cbbb5cb9efca45c3213fb882f634fd436d29ef093/fastmorph-1.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "18bcb6112bce927ee1f2ff7841904bc619e3bbab2220a61b1f65e35d4c0db5ba",
"md5": "4f5129843a9612ba3a88d1319ece68f5",
"sha256": "7fc49f0f1dd36e93409ab2d9775e36e00ce936b07ca332c7e5ea9c9efbfd9328"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "4f5129843a9612ba3a88d1319ece68f5",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8.0",
"size": 256699,
"upload_time": "2025-02-12T17:57:25",
"upload_time_iso_8601": "2025-02-12T17:57:25.182961Z",
"url": "https://files.pythonhosted.org/packages/18/bc/b6112bce927ee1f2ff7841904bc619e3bbab2220a61b1f65e35d4c0db5ba/fastmorph-1.3.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c449bb6179bf2743fef6827038440f5c44568f788f1ec91f8277b64f15e376ff",
"md5": "a1f8cfba9f962cf394009a137c4f1f89",
"sha256": "be6f0a7ada20eb2ba829034b006f84b836b6f0b49c3c5db875e4468466726ab5"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "a1f8cfba9f962cf394009a137c4f1f89",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8.0",
"size": 213231,
"upload_time": "2025-02-12T17:57:26",
"upload_time_iso_8601": "2025-02-12T17:57:26.266383Z",
"url": "https://files.pythonhosted.org/packages/c4/49/bb6179bf2743fef6827038440f5c44568f788f1ec91f8277b64f15e376ff/fastmorph-1.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e9f126fd171957c97fb189a27de2ba96829e51faf3661feeb4dc109aef79e1a2",
"md5": "f006d76f8e2a34692659c47f56df5ed1",
"sha256": "cc5b830299c27317ce1de49c8fb98f78c8e6fc1a64022a2435fbb979b9ee1611"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp311-cp311-win32.whl",
"has_sig": false,
"md5_digest": "f006d76f8e2a34692659c47f56df5ed1",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8.0",
"size": 162495,
"upload_time": "2025-02-12T17:57:28",
"upload_time_iso_8601": "2025-02-12T17:57:28.227072Z",
"url": "https://files.pythonhosted.org/packages/e9/f1/26fd171957c97fb189a27de2ba96829e51faf3661feeb4dc109aef79e1a2/fastmorph-1.3.0-cp311-cp311-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e4de0c29dceb3aac20dd3075ae26b686384ecb3552e2df4c9799c7c99db9f7bf",
"md5": "5fac819857d2999bc345d5d468cd7b86",
"sha256": "c8f5619eaa0a83ec03977eb6dbaaa6af435d0763e0b1f2e90d660907a1d0d9b7"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "5fac819857d2999bc345d5d468cd7b86",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8.0",
"size": 137847,
"upload_time": "2025-02-12T17:57:29",
"upload_time_iso_8601": "2025-02-12T17:57:29.997896Z",
"url": "https://files.pythonhosted.org/packages/e4/de/0c29dceb3aac20dd3075ae26b686384ecb3552e2df4c9799c7c99db9f7bf/fastmorph-1.3.0-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4e1be5e102654fc14392f54df3c2418a9baae6f0746679c9dc300c252b9be156",
"md5": "378cd4a9d8daebf39f8750e4f82a6a3c",
"sha256": "9b779a37f99371809d882965adc3c7a6d9834af7c3c83772ece4e14327aa896d"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp312-cp312-macosx_10_13_x86_64.whl",
"has_sig": false,
"md5_digest": "378cd4a9d8daebf39f8750e4f82a6a3c",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8.0",
"size": 195236,
"upload_time": "2025-02-12T17:57:31",
"upload_time_iso_8601": "2025-02-12T17:57:31.979124Z",
"url": "https://files.pythonhosted.org/packages/4e/1b/e5e102654fc14392f54df3c2418a9baae6f0746679c9dc300c252b9be156/fastmorph-1.3.0-cp312-cp312-macosx_10_13_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7fae4bd5497a8375168bfece9cf8420efeb8904ae623c21b43a6a2b188525306",
"md5": "f84fee0a71e11457ed2600d4fe339f4a",
"sha256": "ab098a5695bda616576a6da6e007203b436d8d8a8ecc50270c84e35c74d8255d"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "f84fee0a71e11457ed2600d4fe339f4a",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8.0",
"size": 161866,
"upload_time": "2025-02-12T17:57:33",
"upload_time_iso_8601": "2025-02-12T17:57:33.782339Z",
"url": "https://files.pythonhosted.org/packages/7f/ae/4bd5497a8375168bfece9cf8420efeb8904ae623c21b43a6a2b188525306/fastmorph-1.3.0-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9d24953ee79deb9b073dc0b8ac255967b8138e8ba9ae4bf386b415b15c8574ae",
"md5": "decc28705e613b8c12e08b7ec1e06224",
"sha256": "03a9c0bb7fe6be8f0b5be18b4c2d3f34967723741aa6913dd534a16b320c5cca"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "decc28705e613b8c12e08b7ec1e06224",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8.0",
"size": 203608,
"upload_time": "2025-02-12T17:57:36",
"upload_time_iso_8601": "2025-02-12T17:57:36.311806Z",
"url": "https://files.pythonhosted.org/packages/9d/24/953ee79deb9b073dc0b8ac255967b8138e8ba9ae4bf386b415b15c8574ae/fastmorph-1.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ccda40a7830e1b91f0a450ecac58df615a88c47231c2c87de8fc3be714f69ea4",
"md5": "3efa891704165b9229dea63318d49c45",
"sha256": "e50991f03babcb102b6fb5ebf9fe8ea5410a8728380ab148a7fc4f42b1db1df0"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "3efa891704165b9229dea63318d49c45",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8.0",
"size": 212770,
"upload_time": "2025-02-12T17:57:38",
"upload_time_iso_8601": "2025-02-12T17:57:38.581590Z",
"url": "https://files.pythonhosted.org/packages/cc/da/40a7830e1b91f0a450ecac58df615a88c47231c2c87de8fc3be714f69ea4/fastmorph-1.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8643b4885b3e6b700c14121a14021b3a3082388154e09519e880cdb89f3d027e",
"md5": "f670d805c019e03884bf8d09f1d8814a",
"sha256": "fbe0e52053a7727bf00d7087b83560f8ded95d448da16a1570ac969a78bb222e"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp312-cp312-win32.whl",
"has_sig": false,
"md5_digest": "f670d805c019e03884bf8d09f1d8814a",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8.0",
"size": 163239,
"upload_time": "2025-02-12T17:57:39",
"upload_time_iso_8601": "2025-02-12T17:57:39.615430Z",
"url": "https://files.pythonhosted.org/packages/86/43/b4885b3e6b700c14121a14021b3a3082388154e09519e880cdb89f3d027e/fastmorph-1.3.0-cp312-cp312-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3a47015148d523c658641d3d14300a2019aa451e1d77f6f9911d5e7eb13ce938",
"md5": "25827cb543dafaaa20077968a221b875",
"sha256": "a8d7844d82132503afb0e32e480a822236d76113f1d3d933532c346b686005d0"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "25827cb543dafaaa20077968a221b875",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8.0",
"size": 138356,
"upload_time": "2025-02-12T17:57:40",
"upload_time_iso_8601": "2025-02-12T17:57:40.798481Z",
"url": "https://files.pythonhosted.org/packages/3a/47/015148d523c658641d3d14300a2019aa451e1d77f6f9911d5e7eb13ce938/fastmorph-1.3.0-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bba340d547603b875542a1c23a5a98a7d023e7c64b02a2b3451fee5d3a910e3f",
"md5": "84a7a543c13440b886bb180849b33bda",
"sha256": "bd877f7826e309d593674156f8464197dda81bf7b225edceabb7ddbc75302829"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp313-cp313-macosx_10_13_x86_64.whl",
"has_sig": false,
"md5_digest": "84a7a543c13440b886bb180849b33bda",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8.0",
"size": 195271,
"upload_time": "2025-02-12T17:57:41",
"upload_time_iso_8601": "2025-02-12T17:57:41.894540Z",
"url": "https://files.pythonhosted.org/packages/bb/a3/40d547603b875542a1c23a5a98a7d023e7c64b02a2b3451fee5d3a910e3f/fastmorph-1.3.0-cp313-cp313-macosx_10_13_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "eb2fcf3401f4c875282dd4d2108739e3f89f38ccba39759110976edb8a2f4c3c",
"md5": "65a4bcd6e501aec7bb828d18b8d52fe7",
"sha256": "fe2e5dcb29ab96fc5c61ff0cca333def6629d2461e57f145cba899507eb56533"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp313-cp313-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "65a4bcd6e501aec7bb828d18b8d52fe7",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8.0",
"size": 161910,
"upload_time": "2025-02-12T17:57:44",
"upload_time_iso_8601": "2025-02-12T17:57:44.477640Z",
"url": "https://files.pythonhosted.org/packages/eb/2f/cf3401f4c875282dd4d2108739e3f89f38ccba39759110976edb8a2f4c3c/fastmorph-1.3.0-cp313-cp313-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "54a7d3b9cb6941e0b1c3ab8b3425f3d3ce032ceb8e05b3728923131646e338e3",
"md5": "1011bc0e18d4989be7a08db733f0217e",
"sha256": "2665fd629132cefbea4dd686f9d6952254f22627b0c10e1f16f658649dcd6d39"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "1011bc0e18d4989be7a08db733f0217e",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8.0",
"size": 203583,
"upload_time": "2025-02-12T17:57:45",
"upload_time_iso_8601": "2025-02-12T17:57:45.961686Z",
"url": "https://files.pythonhosted.org/packages/54/a7/d3b9cb6941e0b1c3ab8b3425f3d3ce032ceb8e05b3728923131646e338e3/fastmorph-1.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fb50c3318298b15f30f75148587ce8ed8fc743dd2c0bb6c766b2bb6962f96977",
"md5": "d49333fa9dce06c88c0562b63ff35381",
"sha256": "2189992293a417102f430e5cdf5f7a5a06d5c26f4f63fdea529c23f06884207f"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "d49333fa9dce06c88c0562b63ff35381",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8.0",
"size": 256105,
"upload_time": "2025-02-12T17:57:47",
"upload_time_iso_8601": "2025-02-12T17:57:47.194399Z",
"url": "https://files.pythonhosted.org/packages/fb/50/c3318298b15f30f75148587ce8ed8fc743dd2c0bb6c766b2bb6962f96977/fastmorph-1.3.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "83ca192ad3e2ce407d6fc25c5b08d2ba0bd3986885e8e2051092fc9247459c75",
"md5": "ce8b30849c098585b09760fdba0d5605",
"sha256": "328fa003b83ace02b9b9338114fef35bf5ec207b8e074307611c2d137dd40397"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "ce8b30849c098585b09760fdba0d5605",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8.0",
"size": 212646,
"upload_time": "2025-02-12T17:57:49",
"upload_time_iso_8601": "2025-02-12T17:57:49.138399Z",
"url": "https://files.pythonhosted.org/packages/83/ca/192ad3e2ce407d6fc25c5b08d2ba0bd3986885e8e2051092fc9247459c75/fastmorph-1.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4e899503cf5524820daa94ac9566bb14b01ae48faab66789462a5dc64d09994e",
"md5": "6b538dbbc49f35dfac14b463d00350c4",
"sha256": "de9797bae60662399131a25c0c264dd37439ce0d83a961e45f61cc070b222737"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp313-cp313-win32.whl",
"has_sig": false,
"md5_digest": "6b538dbbc49f35dfac14b463d00350c4",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8.0",
"size": 163330,
"upload_time": "2025-02-12T17:57:51",
"upload_time_iso_8601": "2025-02-12T17:57:51.263954Z",
"url": "https://files.pythonhosted.org/packages/4e/89/9503cf5524820daa94ac9566bb14b01ae48faab66789462a5dc64d09994e/fastmorph-1.3.0-cp313-cp313-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6763470611fc630994ee1e197db3ce1f693db98e33dc815cb65cae9045bcd202",
"md5": "cfaebae146654eb92a5afa5521de91ab",
"sha256": "de384fdf5d088d736cd833fa5271e30651768457e2bfd511c31fad68bc14490a"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "cfaebae146654eb92a5afa5521de91ab",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8.0",
"size": 138371,
"upload_time": "2025-02-12T17:57:53",
"upload_time_iso_8601": "2025-02-12T17:57:53.149750Z",
"url": "https://files.pythonhosted.org/packages/67/63/470611fc630994ee1e197db3ce1f693db98e33dc815cb65cae9045bcd202/fastmorph-1.3.0-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "49f2e61d45526d16841039574e23fa1f9e1eeb3083aa07f0106e70068c8967c4",
"md5": "2774d9a017724fe9440aa30041f770a9",
"sha256": "0e4f35da37ac50337737b80afef9ce7784456a211cea6b78cc80e17f3ab01f3c"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp38-cp38-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "2774d9a017724fe9440aa30041f770a9",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8.0",
"size": 194431,
"upload_time": "2025-02-12T17:57:54",
"upload_time_iso_8601": "2025-02-12T17:57:54.335136Z",
"url": "https://files.pythonhosted.org/packages/49/f2/e61d45526d16841039574e23fa1f9e1eeb3083aa07f0106e70068c8967c4/fastmorph-1.3.0-cp38-cp38-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "73e54f99524aad167f59f1090d7becedc48d4445a5e35e84c99eb3e12b936a6d",
"md5": "e7fd2af1c92c3afffc1d90ad189f2905",
"sha256": "6c0a27419de0bf431f40d70e6bcc7027ece93369e711ae56087ffe1a046a3c9c"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp38-cp38-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "e7fd2af1c92c3afffc1d90ad189f2905",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8.0",
"size": 161204,
"upload_time": "2025-02-12T17:57:55",
"upload_time_iso_8601": "2025-02-12T17:57:55.551356Z",
"url": "https://files.pythonhosted.org/packages/73/e5/4f99524aad167f59f1090d7becedc48d4445a5e35e84c99eb3e12b936a6d/fastmorph-1.3.0-cp38-cp38-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bc6988ee611344cae085702cb805be8c0e3aa4b72476201f3d3ad73fda160267",
"md5": "7304d59025988307d8983704d41a060f",
"sha256": "46e61add243c8ece4b15b015a103dc5766a1ad2a76ff9cedaf238b1650002550"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "7304d59025988307d8983704d41a060f",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8.0",
"size": 201997,
"upload_time": "2025-02-12T17:57:56",
"upload_time_iso_8601": "2025-02-12T17:57:56.640844Z",
"url": "https://files.pythonhosted.org/packages/bc/69/88ee611344cae085702cb805be8c0e3aa4b72476201f3d3ad73fda160267/fastmorph-1.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a463b03d9c6f55b151fe05fcd33ba22d17f5894624ddad07b0a3c9a76f2b4360",
"md5": "9050785299a7096c76467cfa277bb7d4",
"sha256": "6784430d52a8e25ad9ccafa1f464e0e37cfe96711a36542079600e0109368955"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "9050785299a7096c76467cfa277bb7d4",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8.0",
"size": 254345,
"upload_time": "2025-02-12T17:57:58",
"upload_time_iso_8601": "2025-02-12T17:57:58.513899Z",
"url": "https://files.pythonhosted.org/packages/a4/63/b03d9c6f55b151fe05fcd33ba22d17f5894624ddad07b0a3c9a76f2b4360/fastmorph-1.3.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a8d4cc8687c01f3500286d79759c68d0116c00eea8b3e0b2440156504145a74e",
"md5": "93cfdeb1c05e2842c0171347974ae47d",
"sha256": "9184e37d7d4422d09a1de071a8178cbb30b8dd77e4d9a9111153173c1823d509"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "93cfdeb1c05e2842c0171347974ae47d",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8.0",
"size": 212381,
"upload_time": "2025-02-12T17:57:59",
"upload_time_iso_8601": "2025-02-12T17:57:59.684226Z",
"url": "https://files.pythonhosted.org/packages/a8/d4/cc8687c01f3500286d79759c68d0116c00eea8b3e0b2440156504145a74e/fastmorph-1.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5add7f4bf39e0ab33695fd0c8857d1588b877b449e1d48043e91de25a08ecc70",
"md5": "083f2eb49e53cd56455bd494ad46d310",
"sha256": "fc0fb44772d0de90129ecd48afffebd5fb6c6e516c25de2dbdf3f642c7e733af"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp38-cp38-win32.whl",
"has_sig": false,
"md5_digest": "083f2eb49e53cd56455bd494ad46d310",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8.0",
"size": 161535,
"upload_time": "2025-02-12T17:58:01",
"upload_time_iso_8601": "2025-02-12T17:58:01.081347Z",
"url": "https://files.pythonhosted.org/packages/5a/dd/7f4bf39e0ab33695fd0c8857d1588b877b449e1d48043e91de25a08ecc70/fastmorph-1.3.0-cp38-cp38-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4290af12fe148cd8198d98182be76aae699856a021463fb046a2e62b47000be2",
"md5": "53a7e07c688f8e909ce4a1f86bb17992",
"sha256": "12694d2bd3d1f3a3336c2b8e1802c32cb23d5d161944d6a6008ddd1e9bebf7ef"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp38-cp38-win_amd64.whl",
"has_sig": false,
"md5_digest": "53a7e07c688f8e909ce4a1f86bb17992",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8.0",
"size": 137223,
"upload_time": "2025-02-12T17:58:03",
"upload_time_iso_8601": "2025-02-12T17:58:03.026097Z",
"url": "https://files.pythonhosted.org/packages/42/90/af12fe148cd8198d98182be76aae699856a021463fb046a2e62b47000be2/fastmorph-1.3.0-cp38-cp38-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c3a8f8ec60501b58803e8bdb6df601153da636e341c9904ceaf5e2259aafbcf0",
"md5": "04ce15e5a317e3e3fbe17f99dca1fd10",
"sha256": "7ec7f5b4572c1bbf9def1d825f0a08375a9eee48065ad8e7f3d0168e3b2a3fad"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp39-cp39-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "04ce15e5a317e3e3fbe17f99dca1fd10",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8.0",
"size": 194773,
"upload_time": "2025-02-12T17:58:04",
"upload_time_iso_8601": "2025-02-12T17:58:04.912432Z",
"url": "https://files.pythonhosted.org/packages/c3/a8/f8ec60501b58803e8bdb6df601153da636e341c9904ceaf5e2259aafbcf0/fastmorph-1.3.0-cp39-cp39-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5468b5e630c21d2c0c6fc90d264554883bdb027bb41f7a710cd350ac47b1f047",
"md5": "bff8c5b0f450a1f62d3b1dfa21fd9242",
"sha256": "93c70a799f15c485bd160a2566dbbc8a573c58b4bc2c6165997e1d6bb655e5b8"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp39-cp39-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "bff8c5b0f450a1f62d3b1dfa21fd9242",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8.0",
"size": 161488,
"upload_time": "2025-02-12T17:58:06",
"upload_time_iso_8601": "2025-02-12T17:58:06.213467Z",
"url": "https://files.pythonhosted.org/packages/54/68/b5e630c21d2c0c6fc90d264554883bdb027bb41f7a710cd350ac47b1f047/fastmorph-1.3.0-cp39-cp39-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "728aae3b0b85bfa92d1d049906c499833f31f1c39a63b7131c90e3553d1c80cf",
"md5": "342bef13a70fa48a5aa9fcfc37ce4fc7",
"sha256": "2baad43fa445d4bdfd128642d954746ee145301b0eefee3fee5d30feb8aa7500"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "342bef13a70fa48a5aa9fcfc37ce4fc7",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8.0",
"size": 202241,
"upload_time": "2025-02-12T17:58:08",
"upload_time_iso_8601": "2025-02-12T17:58:08.079555Z",
"url": "https://files.pythonhosted.org/packages/72/8a/ae3b0b85bfa92d1d049906c499833f31f1c39a63b7131c90e3553d1c80cf/fastmorph-1.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1cde6573efd6721378c1e68a7e417e4fff90ba4315fa3581c9a9175caab7a08d",
"md5": "b6c0ba74cc332223a5d3143bda46b89d",
"sha256": "0b18148b38e73ee3aea4398d60ae59bee378d1de326413bcf8a81e1f715d90bc"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "b6c0ba74cc332223a5d3143bda46b89d",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8.0",
"size": 256405,
"upload_time": "2025-02-12T17:58:09",
"upload_time_iso_8601": "2025-02-12T17:58:09.311185Z",
"url": "https://files.pythonhosted.org/packages/1c/de/6573efd6721378c1e68a7e417e4fff90ba4315fa3581c9a9175caab7a08d/fastmorph-1.3.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a8ad07b2af0480775616265d6c0523603a18720a5d09b979a5f91c1dcca656fc",
"md5": "2ab025c1b8955b46e851886e0b589970",
"sha256": "63232767c3d181e13b3da2ec66669cf31212b7ec3d40817994481bcef6019431"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "2ab025c1b8955b46e851886e0b589970",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8.0",
"size": 212863,
"upload_time": "2025-02-12T17:58:10",
"upload_time_iso_8601": "2025-02-12T17:58:10.414754Z",
"url": "https://files.pythonhosted.org/packages/a8/ad/07b2af0480775616265d6c0523603a18720a5d09b979a5f91c1dcca656fc/fastmorph-1.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b354f4fba2745fe28e5edeedf9606db2e911039bcdcc347f2c00486f167ed4e6",
"md5": "b9aa5101ee4d1c94d9407f73e1067134",
"sha256": "878da9894b13d79c294bd33299b48ab7201822f24de05584ce08a5ac245301f7"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp39-cp39-win32.whl",
"has_sig": false,
"md5_digest": "b9aa5101ee4d1c94d9407f73e1067134",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8.0",
"size": 161748,
"upload_time": "2025-02-12T17:58:11",
"upload_time_iso_8601": "2025-02-12T17:58:11.647423Z",
"url": "https://files.pythonhosted.org/packages/b3/54/f4fba2745fe28e5edeedf9606db2e911039bcdcc347f2c00486f167ed4e6/fastmorph-1.3.0-cp39-cp39-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "92939d83550b09a40909240805cafb1e0bfa90e0c4a4193d1310a25f7089e434",
"md5": "0b642bb44daf4a7ee9ab7ca57ae6c0ef",
"sha256": "cbdff9bfc8384917a6c876e4eb8090fd274eaa62ba5d9b5186e374fa25b1eb0a"
},
"downloads": -1,
"filename": "fastmorph-1.3.0-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "0b642bb44daf4a7ee9ab7ca57ae6c0ef",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8.0",
"size": 137071,
"upload_time": "2025-02-12T17:58:13",
"upload_time_iso_8601": "2025-02-12T17:58:13.483971Z",
"url": "https://files.pythonhosted.org/packages/92/93/9d83550b09a40909240805cafb1e0bfa90e0c4a4193d1310a25f7089e434/fastmorph-1.3.0-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bc7fcccfe2d802c44edc18bc710f3c75c7d8fec7ceaa96a941976302bcf8c3e7",
"md5": "1d89067991caa9f991c279a811958b21",
"sha256": "727cc1062358eb26a0836637fa2e763d3fd98d2d675df0e3e1c98589f7c7751b"
},
"downloads": -1,
"filename": "fastmorph-1.3.0.tar.gz",
"has_sig": false,
"md5_digest": "1d89067991caa9f991c279a811958b21",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8.0",
"size": 26630,
"upload_time": "2025-02-12T17:58:14",
"upload_time_iso_8601": "2025-02-12T17:58:14.481936Z",
"url": "https://files.pythonhosted.org/packages/bc/7f/cccfe2d802c44edc18bc710f3c75c7d8fec7ceaa96a941976302bcf8c3e7/fastmorph-1.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-12 17:58:14",
"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"
}