Created
March 17, 2021 20:18
-
-
Save neuromusic/274a662c15d54d3fafec624e3659ebf5 to your computer and use it in GitHub Desktop.
script to pull napari plugin info from pypi
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"packages = [\n", | |
" 'napari-aicsimageio',\n", | |
" 'affinder',\n", | |
" 'napping',\n", | |
" 'napari-pyclesperanto-assistant',\n", | |
" 'napari-cellfinder',\n", | |
" 'napari-btrack-reader',\n", | |
" 'napari-nikon-nd2',\n", | |
" 'napari-hdf5-labels-io',\n", | |
" 'napari-demo',\n", | |
" 'brainreg-segment',\n", | |
" 'cellfinder-napari',\n", | |
" 'napari-compressed-labels-io',\n", | |
" 'napari-console',\n", | |
" 'brainglobe-napari-io',\n", | |
" 'napari-em-reader',\n", | |
" 'napari-brainreg',\n", | |
" 'napari-czifile2',\n", | |
" 'napari-lazy-openslide',\n", | |
" 'PartSeg',\n", | |
" 'napari-dv',\n", | |
" 'napari-dzi-zarr',\n", | |
" 'napari_video',\n", | |
" 'nd2-dask',\n", | |
" 'ome-zarr',\n", | |
" 'napari-imc'\n", | |
"]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"25" | |
] | |
}, | |
"execution_count": 6, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"len(packages)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 84, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"package = packages[0]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 85, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"url_template = \"https://pypi.org/pypi/{}/json\"" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 86, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'https://pypi.org/pypi/napari-aicsimageio/json'" | |
] | |
}, | |
"execution_count": 86, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"url_template.format(package)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 87, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"{\n", | |
" \"info\": {\n", | |
" \"author\": \"Jackson Maxfield Brown\",\n", | |
" \"author_email\": \"[email protected]\",\n", | |
" \"bugtrack_url\": null,\n", | |
" \"classifiers\": [\n", | |
" \"Development Status :: 5 - Production/Stable\",\n", | |
" \"Framework :: napari\",\n", | |
" \"Intended Audience :: Science/Research\",\n", | |
" \"License :: OSI Approved :: BSD License\",\n", | |
" \"Natural Language :: English\",\n", | |
" \"Programming Language :: Python :: 3.7\",\n", | |
" \"Programming Language :: Python :: 3.8\",\n", | |
" \"Programming Language :: Python :: 3.9\",\n", | |
" \"Topic :: Scientific/Engineering\",\n", | |
" \"Topic :: Scientific/Engineering :: Bio-Informatics\",\n", | |
" \"Topic :: Scientific/Engineering :: Information Analysis\",\n", | |
" \"Topic :: Scientific/Engineering :: Visualization\"\n", | |
" ],\n", | |
" \"description\": \"# napari-aicsimageio\\n\\n[](https://github.com/AllenCellModeling/napari-aicsimageio/actions)\\n[](https://codecov.io/gh/AllenCellModeling/napari-aicsimageio)\\n\\nAICSImageIO bindings for napari\\n\\n---\\n\\n## Features\\n* Supports reading metadata and imaging data for:\\n * `CZI`\\n * `OME-TIFF`\\n * `TIFF`\\n * Any formats supported by [aicsimageio](https://github.com/AllenCellModeling/aicsimageio)\\n * Any additional format supported by [imageio](https://github.com/imageio/imageio)\\n* Two variants of the AICSImageIO bindings:\\n * `aicsimageio`, which reads the image fully into memory\\n * `aicsimageio-delayed`, which delays reading YX planes until requested for large file support\\n\\n## Installation\\n**Stable Release:** `pip install napari-aicsimageio`<br>\\n**Development Head:** `pip install git+https://github.com/AllenCellModeling/napari-aicsimageio.git`\\n\\n## Development\\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for information related to developing the code.\\n\\n***Free software: BSD-3-Clause***\\n\\n\\n\",\n", | |
" \"description_content_type\": \"text/markdown\",\n", | |
" \"docs_url\": null,\n", | |
" \"download_url\": \"\",\n", | |
" \"downloads\": {\n", | |
" \"last_day\": -1,\n", | |
" \"last_month\": -1,\n", | |
" \"last_week\": -1\n", | |
" },\n", | |
" \"home_page\": \"https://github.com/AllenCellModeling/napari-aicsimageio\",\n", | |
" \"keywords\": \"napari,aicsimageio,imaging\",\n", | |
" \"license\": \"BSD-3-Clause\",\n", | |
" \"maintainer\": \"\",\n", | |
" \"maintainer_email\": \"\",\n", | |
" \"name\": \"napari-aicsimageio\",\n", | |
" \"package_url\": \"https://pypi.org/project/napari-aicsimageio/\",\n", | |
" \"platform\": \"\",\n", | |
" \"project_url\": \"https://pypi.org/project/napari-aicsimageio/\",\n", | |
" \"project_urls\": {\n", | |
" \"Homepage\": \"https://github.com/AllenCellModeling/napari-aicsimageio\"\n", | |
" },\n", | |
" \"release_url\": \"https://pypi.org/project/napari-aicsimageio/0.2.0/\",\n", | |
" \"requires_dist\": [\n", | |
" \"aicsimageio (>=3.3.3)\",\n", | |
" \"napari-plugin-engine (>=0.1.4)\",\n", | |
" \"aicsimageio (>=3.3.3) ; extra == 'all'\",\n", | |
" \"napari-plugin-engine (>=0.1.4) ; extra == 'all'\",\n", | |
" \"pytest-runner (>=5.2) ; extra == 'all'\",\n", | |
" \"black (>=19.10b0) ; extra == 'all'\",\n", | |
" \"codecov (>=2.1.4) ; extra == 'all'\",\n", | |
" \"flake8 (>=3.8.3) ; extra == 'all'\",\n", | |
" \"flake8-debugger (>=3.2.1) ; extra == 'all'\",\n", | |
" \"napari[pyqt5] (>=0.3.0) ; extra == 'all'\",\n", | |
" \"pytest (>=5.4.3) ; extra == 'all'\",\n", | |
" \"pytest-cov (>=2.9.0) ; extra == 'all'\",\n", | |
" \"pytest-raises (>=0.11) ; extra == 'all'\",\n", | |
" \"bumpversion (>=0.6.0) ; extra == 'all'\",\n", | |
" \"coverage (>=5.1) ; extra == 'all'\",\n", | |
" \"ipython (>=7.15.0) ; extra == 'all'\",\n", | |
" \"m2r (>=0.2.1) ; extra == 'all'\",\n", | |
" \"Sphinx (<3,>=2.0.0b1) ; extra == 'all'\",\n", | |
" \"sphinx-rtd-theme (>=0.4.3) ; extra == 'all'\",\n", | |
" \"tox (>=3.15.2) ; extra == 'all'\",\n", | |
" \"twine (>=3.1.1) ; extra == 'all'\",\n", | |
" \"wheel (>=0.34.2) ; extra == 'all'\",\n", | |
" \"pytest-runner (>=5.2) ; extra == 'dev'\",\n", | |
" \"black (>=19.10b0) ; extra == 'dev'\",\n", | |
" \"codecov (>=2.1.4) ; extra == 'dev'\",\n", | |
" \"flake8 (>=3.8.3) ; extra == 'dev'\",\n", | |
" \"flake8-debugger (>=3.2.1) ; extra == 'dev'\",\n", | |
" \"napari[pyqt5] (>=0.3.0) ; extra == 'dev'\",\n", | |
" \"pytest (>=5.4.3) ; extra == 'dev'\",\n", | |
" \"pytest-cov (>=2.9.0) ; extra == 'dev'\",\n", | |
" \"pytest-raises (>=0.11) ; extra == 'dev'\",\n", | |
" \"bumpversion (>=0.6.0) ; extra == 'dev'\",\n", | |
" \"coverage (>=5.1) ; extra == 'dev'\",\n", | |
" \"ipython (>=7.15.0) ; extra == 'dev'\",\n", | |
" \"m2r (>=0.2.1) ; extra == 'dev'\",\n", | |
" \"Sphinx (<3,>=2.0.0b1) ; extra == 'dev'\",\n", | |
" \"sphinx-rtd-theme (>=0.4.3) ; extra == 'dev'\",\n", | |
" \"tox (>=3.15.2) ; extra == 'dev'\",\n", | |
" \"twine (>=3.1.1) ; extra == 'dev'\",\n", | |
" \"wheel (>=0.34.2) ; extra == 'dev'\",\n", | |
" \"pytest-runner (>=5.2) ; extra == 'setup'\",\n", | |
" \"black (>=19.10b0) ; extra == 'test'\",\n", | |
" \"codecov (>=2.1.4) ; extra == 'test'\",\n", | |
" \"flake8 (>=3.8.3) ; extra == 'test'\",\n", | |
" \"flake8-debugger (>=3.2.1) ; extra == 'test'\",\n", | |
" \"napari[pyqt5] (>=0.3.0) ; extra == 'test'\",\n", | |
" \"pytest (>=5.4.3) ; extra == 'test'\",\n", | |
" \"pytest-cov (>=2.9.0) ; extra == 'test'\",\n", | |
" \"pytest-raises (>=0.11) ; extra == 'test'\"\n", | |
" ],\n", | |
" \"requires_python\": \">=3.7\",\n", | |
" \"summary\": \"AICSImageIO bindings for napari\",\n", | |
" \"version\": \"0.2.0\",\n", | |
" \"yanked\": false,\n", | |
" \"yanked_reason\": null\n", | |
" },\n", | |
" \"last_serial\": 8893371,\n", | |
" \"releases\": {\n", | |
" \"0.1.0\": [\n", | |
" {\n", | |
" \"comment_text\": \"\",\n", | |
" \"digests\": {\n", | |
" \"md5\": \"0d557e84dab5589fe4ee7b897d1a32cb\",\n", | |
" \"sha256\": \"824dfceccc436d3f589ceb77c49df3a9bd04851e62aa3c171901f19401b0a4b3\"\n", | |
" },\n", | |
" \"downloads\": -1,\n", | |
" \"filename\": \"napari_aicsimageio-0.1.0-py2.py3-none-any.whl\",\n", | |
" \"has_sig\": false,\n", | |
" \"md5_digest\": \"0d557e84dab5589fe4ee7b897d1a32cb\",\n", | |
" \"packagetype\": \"bdist_wheel\",\n", | |
" \"python_version\": \"py2.py3\",\n", | |
" \"requires_python\": \">=3.6\",\n", | |
" \"size\": 6530,\n", | |
" \"upload_time\": \"2020-03-26T20:10:54\",\n", | |
" \"upload_time_iso_8601\": \"2020-03-26T20:10:54.889461Z\",\n", | |
" \"url\": \"https://files.pythonhosted.org/packages/d4/66/bf0c7912cc7a6ff099b8a1f98c6ffe0727e79c12bd5f4e389d745862e35d/napari_aicsimageio-0.1.0-py2.py3-none-any.whl\",\n", | |
" \"yanked\": false,\n", | |
" \"yanked_reason\": null\n", | |
" },\n", | |
" {\n", | |
" \"comment_text\": \"\",\n", | |
" \"digests\": {\n", | |
" \"md5\": \"22ab10e0b0481352a85f26730b971b59\",\n", | |
" \"sha256\": \"4374eda8bf6a2a60b3bdd5ca580cff8a747262f1c338e40401a986d6e0e32e05\"\n", | |
" },\n", | |
" \"downloads\": -1,\n", | |
" \"filename\": \"napari-aicsimageio-0.1.0.tar.gz\",\n", | |
" \"has_sig\": false,\n", | |
" \"md5_digest\": \"22ab10e0b0481352a85f26730b971b59\",\n", | |
" \"packagetype\": \"sdist\",\n", | |
" \"python_version\": \"source\",\n", | |
" \"requires_python\": \">=3.6\",\n", | |
" \"size\": 6257,\n", | |
" \"upload_time\": \"2020-03-26T20:10:57\",\n", | |
" \"upload_time_iso_8601\": \"2020-03-26T20:10:57.858112Z\",\n", | |
" \"url\": \"https://files.pythonhosted.org/packages/d4/1b/c4f9006396c3935226fe294696e8e72b8e629731f008a5c8b4602bda8f19/napari-aicsimageio-0.1.0.tar.gz\",\n", | |
" \"yanked\": false,\n", | |
" \"yanked_reason\": null\n", | |
" }\n", | |
" ],\n", | |
" \"0.1.1\": [\n", | |
" {\n", | |
" \"comment_text\": \"\",\n", | |
" \"digests\": {\n", | |
" \"md5\": \"93faead6eaf30ea1f5ecb9d64775da5a\",\n", | |
" \"sha256\": \"72e8a4ac4d3dff569686d39ea6bdcd60158dbe64eab0d83685f799a7999e870e\"\n", | |
" },\n", | |
" \"downloads\": -1,\n", | |
" \"filename\": \"napari_aicsimageio-0.1.1-py2.py3-none-any.whl\",\n", | |
" \"has_sig\": false,\n", | |
" \"md5_digest\": \"93faead6eaf30ea1f5ecb9d64775da5a\",\n", | |
" \"packagetype\": \"bdist_wheel\",\n", | |
" \"python_version\": \"py2.py3\",\n", | |
" \"requires_python\": \">=3.6\",\n", | |
" \"size\": 6565,\n", | |
" \"upload_time\": \"2020-04-28T19:51:47\",\n", | |
" \"upload_time_iso_8601\": \"2020-04-28T19:51:47.729723Z\",\n", | |
" \"url\": \"https://files.pythonhosted.org/packages/c3/8e/12638b457f8a4223bf3c34d0ac9b2d8a36b9dd098e02685c8f0928514155/napari_aicsimageio-0.1.1-py2.py3-none-any.whl\",\n", | |
" \"yanked\": false,\n", | |
" \"yanked_reason\": null\n", | |
" },\n", | |
" {\n", | |
" \"comment_text\": \"\",\n", | |
" \"digests\": {\n", | |
" \"md5\": \"1059ee4ce0d85ab9729a80f5e566dd46\",\n", | |
" \"sha256\": \"66d68a04cb1e5b3758a5cef02e91eaf77019d73f3194d64b11ee810d8f7dd6cc\"\n", | |
" },\n", | |
" \"downloads\": -1,\n", | |
" \"filename\": \"napari-aicsimageio-0.1.1.tar.gz\",\n", | |
" \"has_sig\": false,\n", | |
" \"md5_digest\": \"1059ee4ce0d85ab9729a80f5e566dd46\",\n", | |
" \"packagetype\": \"sdist\",\n", | |
" \"python_version\": \"source\",\n", | |
" \"requires_python\": \">=3.6\",\n", | |
" \"size\": 6408,\n", | |
" \"upload_time\": \"2020-04-28T19:51:48\",\n", | |
" \"upload_time_iso_8601\": \"2020-04-28T19:51:48.692757Z\",\n", | |
" \"url\": \"https://files.pythonhosted.org/packages/31/6e/f270a5668b74a155dbeb7ee3e4a6c18797714961fd87bce81b40c577ceff/napari-aicsimageio-0.1.1.tar.gz\",\n", | |
" \"yanked\": false,\n", | |
" \"yanked_reason\": null\n", | |
" }\n", | |
" ],\n", | |
" \"0.1.2\": [\n", | |
" {\n", | |
" \"comment_text\": \"\",\n", | |
" \"digests\": {\n", | |
" \"md5\": \"4393cbdb7fe6dfb0a7b2697fb2cda1c1\",\n", | |
" \"sha256\": \"ee60bc3d982583edf7a92abd3c5568c01e33d88d1ffc70d669b88e53868343e9\"\n", | |
" },\n", | |
" \"downloads\": -1,\n", | |
" \"filename\": \"napari_aicsimageio-0.1.2-py2.py3-none-any.whl\",\n", | |
" \"has_sig\": false,\n", | |
" \"md5_digest\": \"4393cbdb7fe6dfb0a7b2697fb2cda1c1\",\n", | |
" \"packagetype\": \"bdist_wheel\",\n", | |
" \"python_version\": \"py2.py3\",\n", | |
" \"requires_python\": \">=3.6\",\n", | |
" \"size\": 6664,\n", | |
" \"upload_time\": \"2020-06-23T19:52:34\",\n", | |
" \"upload_time_iso_8601\": \"2020-06-23T19:52:34.211176Z\",\n", | |
" \"url\": \"https://files.pythonhosted.org/packages/8d/4b/5504d12b937358c321cc66e2268a0aa562b1aa5651f5bcd31d9540f9b29c/napari_aicsimageio-0.1.2-py2.py3-none-any.whl\",\n", | |
" \"yanked\": false,\n", | |
" \"yanked_reason\": null\n", | |
" },\n", | |
" {\n", | |
" \"comment_text\": \"\",\n", | |
" \"digests\": {\n", | |
" \"md5\": \"d1dea35874a3bab84e0909005c916aaf\",\n", | |
" \"sha256\": \"52da28c7c19b3593adec00c8bee1f991f379205586449d30c33fc56b1ed89bae\"\n", | |
" },\n", | |
" \"downloads\": -1,\n", | |
" \"filename\": \"napari-aicsimageio-0.1.2.tar.gz\",\n", | |
" \"has_sig\": false,\n", | |
" \"md5_digest\": \"d1dea35874a3bab84e0909005c916aaf\",\n", | |
" \"packagetype\": \"sdist\",\n", | |
" \"python_version\": \"source\",\n", | |
" \"requires_python\": \">=3.6\",\n", | |
" \"size\": 6890,\n", | |
" \"upload_time\": \"2020-06-23T19:52:37\",\n", | |
" \"upload_time_iso_8601\": \"2020-06-23T19:52:37.021462Z\",\n", | |
" \"url\": \"https://files.pythonhosted.org/packages/99/d4/2108f5ffde75e7cf44844c8a751e632d4ceafb3162c14932d1437d3bbd71/napari-aicsimageio-0.1.2.tar.gz\",\n", | |
" \"yanked\": false,\n", | |
" \"yanked_reason\": null\n", | |
" }\n", | |
" ],\n", | |
" \"0.1.3\": [\n", | |
" {\n", | |
" \"comment_text\": \"\",\n", | |
" \"digests\": {\n", | |
" \"md5\": \"6fba278a4706d1bc8dbed8e97b623f84\",\n", | |
" \"sha256\": \"270d5fb9b59b36bb9a52aced90c89ff9369c4c695ef5c8e11208f795bf1d96ab\"\n", | |
" },\n", | |
" \"downloads\": -1,\n", | |
" \"filename\": \"napari_aicsimageio-0.1.3-py2.py3-none-any.whl\",\n", | |
" \"has_sig\": false,\n", | |
" \"md5_digest\": \"6fba278a4706d1bc8dbed8e97b623f84\",\n", | |
" \"packagetype\": \"bdist_wheel\",\n", | |
" \"python_version\": \"py2.py3\",\n", | |
" \"requires_python\": \">=3.6\",\n", | |
" \"size\": 6686,\n", | |
" \"upload_time\": \"2020-06-24T22:49:20\",\n", | |
" \"upload_time_iso_8601\": \"2020-06-24T22:49:20.228058Z\",\n", | |
" \"url\": \"https://files.pythonhosted.org/packages/c4/00/4b1bfa125d0212c2b8f3f3332ebdc3e10435143d541d173b0739866a81a1/napari_aicsimageio-0.1.3-py2.py3-none-any.whl\",\n", | |
" \"yanked\": false,\n", | |
" \"yanked_reason\": null\n", | |
" },\n", | |
" {\n", | |
" \"comment_text\": \"\",\n", | |
" \"digests\": {\n", | |
" \"md5\": \"c2c4f25927740ac5b777906fbe41cdc1\",\n", | |
" \"sha256\": \"92b655170fc9677644be02a4f4933e107cc6a9fcc0ea51976a307a410defba54\"\n", | |
" },\n", | |
" \"downloads\": -1,\n", | |
" \"filename\": \"napari-aicsimageio-0.1.3.tar.gz\",\n", | |
" \"has_sig\": false,\n", | |
" \"md5_digest\": \"c2c4f25927740ac5b777906fbe41cdc1\",\n", | |
" \"packagetype\": \"sdist\",\n", | |
" \"python_version\": \"source\",\n", | |
" \"requires_python\": \">=3.6\",\n", | |
" \"size\": 6913,\n", | |
" \"upload_time\": \"2020-06-24T22:49:21\",\n", | |
" \"upload_time_iso_8601\": \"2020-06-24T22:49:21.423297Z\",\n", | |
" \"url\": \"https://files.pythonhosted.org/packages/8b/c7/14ac84229cf127ee9627d46e4a3645ebb8a530ef7d18e44cd30666b7cdfe/napari-aicsimageio-0.1.3.tar.gz\",\n", | |
" \"yanked\": false,\n", | |
" \"yanked_reason\": null\n", | |
" }\n", | |
" ],\n", | |
" \"0.2.0\": [\n", | |
" {\n", | |
" \"comment_text\": \"\",\n", | |
" \"digests\": {\n", | |
" \"md5\": \"d2140c4b74f71af45afa46e0defecea7\",\n", | |
" \"sha256\": \"fa87d611da53daa5051a244db39b49883917990c12f3a8f5e01b8451a01fbf22\"\n", | |
" },\n", | |
" \"downloads\": -1,\n", | |
" \"filename\": \"napari_aicsimageio-0.2.0-py2.py3-none-any.whl\",\n", | |
" \"has_sig\": false,\n", | |
" \"md5_digest\": \"d2140c4b74f71af45afa46e0defecea7\",\n", | |
" \"packagetype\": \"bdist_wheel\",\n", | |
" \"python_version\": \"py2.py3\",\n", | |
" \"requires_python\": \">=3.7\",\n", | |
" \"size\": 6015,\n", | |
" \"upload_time\": \"2020-12-14T07:30:26\",\n", | |
" \"upload_time_iso_8601\": \"2020-12-14T07:30:26.366917Z\",\n", | |
" \"url\": \"https://files.pythonhosted.org/packages/c5/25/86011a70876e75632d17c2525d48d7221c7cff468cf67dcdd320ed58734b/napari_aicsimageio-0.2.0-py2.py3-none-any.whl\",\n", | |
" \"yanked\": false,\n", | |
" \"yanked_reason\": null\n", | |
" },\n", | |
" {\n", | |
" \"comment_text\": \"\",\n", | |
" \"digests\": {\n", | |
" \"md5\": \"e0f45c041c0101d63528c42f9564a931\",\n", | |
" \"sha256\": \"7df8b9756afd92b608f959437814d823d1395242e67ad275b44b105845df2675\"\n", | |
" },\n", | |
" \"downloads\": -1,\n", | |
" \"filename\": \"napari-aicsimageio-0.2.0.tar.gz\",\n", | |
" \"has_sig\": false,\n", | |
" \"md5_digest\": \"e0f45c041c0101d63528c42f9564a931\",\n", | |
" \"packagetype\": \"sdist\",\n", | |
" \"python_version\": \"source\",\n", | |
" \"requires_python\": \">=3.7\",\n", | |
" \"size\": 6272,\n", | |
" \"upload_time\": \"2020-12-14T07:30:27\",\n", | |
" \"upload_time_iso_8601\": \"2020-12-14T07:30:27.357730Z\",\n", | |
" \"url\": \"https://files.pythonhosted.org/packages/74/ea/ec991c7a00366e93de3f2333e999a6db67923d68d541704482269c3826e1/napari-aicsimageio-0.2.0.tar.gz\",\n", | |
" \"yanked\": false,\n", | |
" \"yanked_reason\": null\n", | |
" }\n", | |
" ]\n", | |
" },\n", | |
" \"urls\": [\n", | |
" {\n", | |
" \"comment_text\": \"\",\n", | |
" \"digests\": {\n", | |
" \"md5\": \"d2140c4b74f71af45afa46e0defecea7\",\n", | |
" \"sha256\": \"fa87d611da53daa5051a244db39b49883917990c12f3a8f5e01b8451a01fbf22\"\n", | |
" },\n", | |
" \"downloads\": -1,\n", | |
" \"filename\": \"napari_aicsimageio-0.2.0-py2.py3-none-any.whl\",\n", | |
" \"has_sig\": false,\n", | |
" \"md5_digest\": \"d2140c4b74f71af45afa46e0defecea7\",\n", | |
" \"packagetype\": \"bdist_wheel\",\n", | |
" \"python_version\": \"py2.py3\",\n", | |
" \"requires_python\": \">=3.7\",\n", | |
" \"size\": 6015,\n", | |
" \"upload_time\": \"2020-12-14T07:30:26\",\n", | |
" \"upload_time_iso_8601\": \"2020-12-14T07:30:26.366917Z\",\n", | |
" \"url\": \"https://files.pythonhosted.org/packages/c5/25/86011a70876e75632d17c2525d48d7221c7cff468cf67dcdd320ed58734b/napari_aicsimageio-0.2.0-py2.py3-none-any.whl\",\n", | |
" \"yanked\": false,\n", | |
" \"yanked_reason\": null\n", | |
" },\n", | |
" {\n", | |
" \"comment_text\": \"\",\n", | |
" \"digests\": {\n", | |
" \"md5\": \"e0f45c041c0101d63528c42f9564a931\",\n", | |
" \"sha256\": \"7df8b9756afd92b608f959437814d823d1395242e67ad275b44b105845df2675\"\n", | |
" },\n", | |
" \"downloads\": -1,\n", | |
" \"filename\": \"napari-aicsimageio-0.2.0.tar.gz\",\n", | |
" \"has_sig\": false,\n", | |
" \"md5_digest\": \"e0f45c041c0101d63528c42f9564a931\",\n", | |
" \"packagetype\": \"sdist\",\n", | |
" \"python_version\": \"source\",\n", | |
" \"requires_python\": \">=3.7\",\n", | |
" \"size\": 6272,\n", | |
" \"upload_time\": \"2020-12-14T07:30:27\",\n", | |
" \"upload_time_iso_8601\": \"2020-12-14T07:30:27.357730Z\",\n", | |
" \"url\": \"https://files.pythonhosted.org/packages/74/ea/ec991c7a00366e93de3f2333e999a6db67923d68d541704482269c3826e1/napari-aicsimageio-0.2.0.tar.gz\",\n", | |
" \"yanked\": false,\n", | |
" \"yanked_reason\": null\n", | |
" }\n", | |
" ]\n", | |
"}\n" | |
] | |
} | |
], | |
"source": [ | |
"import json\n", | |
"from urllib import request\n", | |
"\n", | |
"def pprint(data):\n", | |
" print(json.dumps(data, indent=4, sort_keys=True))\n", | |
"\n", | |
" \n", | |
"def get_package_data(package):\n", | |
" url = url_template.format(package)\n", | |
"\n", | |
" with request.urlopen(url) as f:\n", | |
" response = f.read()\n", | |
" data = json.loads(response)\n", | |
" return data\n", | |
"\n", | |
"data = get_package_data(package)\n", | |
"pprint(data)\n", | |
" " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 88, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"queries = {}" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 89, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'napari-aicsimageio'" | |
] | |
}, | |
"execution_count": 89, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"def get_name(data):\n", | |
" return data['info'].get('name',None)\n", | |
"queries['name'] = get_name\n", | |
"queries['name'](data)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 90, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'AICSImageIO bindings for napari'" | |
] | |
}, | |
"execution_count": 90, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"def get_summary(data):\n", | |
" return data['info'].get('summary',None)\n", | |
"queries['summary'] = get_summary\n", | |
"queries['summary'](data)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 91, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'# napari-aicsimageio\\n\\n[](https://github.com/AllenCellModeling/napari-aicsimageio/actions)\\n[](https://codecov.io/gh/AllenCellModeling/napari-aicsimageio)\\n\\nAICSImageIO bindings for napari\\n\\n---\\n\\n## Features\\n* Supports reading metadata and imaging data for:\\n * `CZI`\\n * `OME-TIFF`\\n * `TIFF`\\n * Any formats supported by [aicsimageio](https://github.com/AllenCellModeling/aicsimageio)\\n * Any additional format supported by [imageio](https://github.com/imageio/imageio)\\n* Two variants of the AICSImageIO bindings:\\n * `aicsimageio`, which reads the image fully into memory\\n * `aicsimageio-delayed`, which delays reading YX planes until requested for large file support\\n\\n## Installation\\n**Stable Release:** `pip install napari-aicsimageio`<br>\\n**Development Head:** `pip install git+https://github.com/AllenCellModeling/napari-aicsimageio.git`\\n\\n## Development\\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for information related to developing the code.\\n\\n***Free software: BSD-3-Clause***\\n\\n\\n'" | |
] | |
}, | |
"execution_count": 91, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"def get_description(data):\n", | |
" return data['info'].get('description',None)\n", | |
"queries['description'] = get_description\n", | |
"queries['description'](data)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 92, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'text/markdown'" | |
] | |
}, | |
"execution_count": 92, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"def get_description_content_type(data):\n", | |
" return data['info'].get('description_content_type',None)\n", | |
"queries['description_content_type'] = get_description_content_type\n", | |
"queries['description_content_type'](data)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 93, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'Jackson Maxfield Brown'" | |
] | |
}, | |
"execution_count": 93, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"def get_author(data):\n", | |
" return data['info'].get('author',None)\n", | |
"queries['author'] = get_author\n", | |
"queries['author'](data)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 94, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'[email protected]'" | |
] | |
}, | |
"execution_count": 94, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"def get_author_email(data):\n", | |
" return data['info'].get('author_email',None)\n", | |
"queries['author_email'] = get_author_email\n", | |
"queries['author_email'](data)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 95, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'BSD-3-Clause'" | |
] | |
}, | |
"execution_count": 95, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"def get_license(data):\n", | |
" return data['info']['license']\n", | |
"queries['license'] = get_license\n", | |
"queries['license'](data)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 96, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'>=3.7'" | |
] | |
}, | |
"execution_count": 96, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"def get_python_versions(data):\n", | |
" return data['info'].get('requires_python',None)\n", | |
"queries['requires_python'] = get_python_versions\n", | |
"queries['requires_python'](data)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 97, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# operating system" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 98, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"['Scientific/Engineering',\n", | |
" 'Scientific/Engineering :: Bio-Informatics',\n", | |
" 'Scientific/Engineering :: Information Analysis',\n", | |
" 'Scientific/Engineering :: Visualization']" | |
] | |
}, | |
"execution_count": 98, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# topics\n", | |
"\n", | |
"def get_topics(data):\n", | |
" return [cl[9:] for cl in data['info']['classifiers'] if cl.startswith('Topic')]\n", | |
" \n", | |
"queries['topics'] = get_topics\n", | |
"queries['topics'](data)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 99, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"['aicsimageio',\n", | |
" 'napari-plugin-engine',\n", | |
" 'aicsimageio',\n", | |
" 'napari-plugin-engine',\n", | |
" 'pytest-runner',\n", | |
" 'black',\n", | |
" 'codecov',\n", | |
" 'flake8',\n", | |
" 'flake8-debugger',\n", | |
" 'napari[pyqt5]',\n", | |
" 'pytest',\n", | |
" 'pytest-cov',\n", | |
" 'pytest-raises',\n", | |
" 'bumpversion',\n", | |
" 'coverage',\n", | |
" 'ipython',\n", | |
" 'm2r',\n", | |
" 'Sphinx',\n", | |
" 'sphinx-rtd-theme',\n", | |
" 'tox',\n", | |
" 'twine',\n", | |
" 'wheel',\n", | |
" 'pytest-runner',\n", | |
" 'black',\n", | |
" 'codecov',\n", | |
" 'flake8',\n", | |
" 'flake8-debugger',\n", | |
" 'napari[pyqt5]',\n", | |
" 'pytest',\n", | |
" 'pytest-cov',\n", | |
" 'pytest-raises',\n", | |
" 'bumpversion',\n", | |
" 'coverage',\n", | |
" 'ipython',\n", | |
" 'm2r',\n", | |
" 'Sphinx',\n", | |
" 'sphinx-rtd-theme',\n", | |
" 'tox',\n", | |
" 'twine',\n", | |
" 'wheel',\n", | |
" 'pytest-runner',\n", | |
" 'black',\n", | |
" 'codecov',\n", | |
" 'flake8',\n", | |
" 'flake8-debugger',\n", | |
" 'napari[pyqt5]',\n", | |
" 'pytest',\n", | |
" 'pytest-cov',\n", | |
" 'pytest-raises']" | |
] | |
}, | |
"execution_count": 99, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"def get_requirements(data):\n", | |
" return [req.split(' ')[0] for req in data['info'].get('requires_dist',[])]\n", | |
"queries['requirements'] = get_requirements\n", | |
"queries['requirements'](data)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 103, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'https://github.com/AllenCellModeling/napari-aicsimageio'" | |
] | |
}, | |
"execution_count": 103, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"def get_homepage(data):\n", | |
" return data['info'].get('home_page',None)\n", | |
"queries['homepage'] = get_homepage\n", | |
"queries['homepage'](data)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 112, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"False" | |
] | |
}, | |
"execution_count": 112, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"'1' < ''" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 131, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'2020-12-14T07:30:26.366917Z'" | |
] | |
}, | |
"execution_count": 131, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"def get_latest_release(data):\n", | |
" latest = {}\n", | |
" for version, release in data['releases'].items():\n", | |
" upload_time = release[0]['upload_time_iso_8601']\n", | |
" if upload_time > latest.get('datetime', ''):\n", | |
" latest['datetime'] = upload_time\n", | |
" latest['version'] = version\n", | |
" return latest\n", | |
"\n", | |
"def get_release_date(data):\n", | |
" return get_latest_release(data)['datetime']\n", | |
"\n", | |
"\n", | |
"queries['release_date'] = get_release_date\n", | |
"queries['release_date'](data)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 132, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'0.2.0'" | |
] | |
}, | |
"execution_count": 132, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"def get_version(data):\n", | |
" return get_latest_release(data)['version']\n", | |
"\n", | |
"queries['version'] = get_version\n", | |
"queries['version'](data)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 133, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'2020-03-26T20:10:54.889461Z'" | |
] | |
}, | |
"execution_count": 133, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"def get_first_released(data): \n", | |
" first = {}\n", | |
" for version, release in data['releases'].items():\n", | |
" upload_time = release[0]['upload_time_iso_8601']\n", | |
" if upload_time < first.get('datetime', 'X'):\n", | |
" first['datetime'] = upload_time\n", | |
" first['verstion'] = version\n", | |
" return first['datetime']\n", | |
"\n", | |
"queries['first_released'] = get_first_released\n", | |
"queries['first_released'](data)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 138, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"{\n", | |
" \"author\": \"Jackson Maxfield Brown\",\n", | |
" \"author_email\": \"[email protected]\",\n", | |
" \"description\": \"# napari-aicsimageio\\n\\n[](https://github.com/AllenCellModeling/napari-aicsimageio/actions)\\n[](https://codecov.io/gh/AllenCellModeling/napari-aicsimageio)\\n\\nAICSImageIO bindings for napari\\n\\n---\\n\\n## Features\\n* Supports reading metadata and imaging data for:\\n * `CZI`\\n * `OME-TIFF`\\n * `TIFF`\\n * Any formats supported by [aicsimageio](https://github.com/AllenCellModeling/aicsimageio)\\n * Any additional format supported by [imageio](https://github.com/imageio/imageio)\\n* Two variants of the AICSImageIO bindings:\\n * `aicsimageio`, which reads the image fully into memory\\n * `aicsimageio-delayed`, which delays reading YX planes until requested for large file support\\n\\n## Installation\\n**Stable Release:** `pip install napari-aicsimageio`<br>\\n**Development Head:** `pip install git+https://github.com/AllenCellModeling/napari-aicsimageio.git`\\n\\n## Development\\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for information related to developing the code.\\n\\n***Free software: BSD-3-Clause***\\n\\n\\n\",\n", | |
" \"description_content_type\": \"text/markdown\",\n", | |
" \"first_released\": \"2020-03-26T20:10:54.889461Z\",\n", | |
" \"homepage\": \"https://github.com/AllenCellModeling/napari-aicsimageio\",\n", | |
" \"license\": \"BSD-3-Clause\",\n", | |
" \"name\": \"napari-aicsimageio\",\n", | |
" \"release_date\": \"2020-12-14T07:30:26.366917Z\",\n", | |
" \"requirements\": [\n", | |
" \"aicsimageio\",\n", | |
" \"napari-plugin-engine\",\n", | |
" \"aicsimageio\",\n", | |
" \"napari-plugin-engine\",\n", | |
" \"pytest-runner\",\n", | |
" \"black\",\n", | |
" \"codecov\",\n", | |
" \"flake8\",\n", | |
" \"flake8-debugger\",\n", | |
" \"napari[pyqt5]\",\n", | |
" \"pytest\",\n", | |
" \"pytest-cov\",\n", | |
" \"pytest-raises\",\n", | |
" \"bumpversion\",\n", | |
" \"coverage\",\n", | |
" \"ipython\",\n", | |
" \"m2r\",\n", | |
" \"Sphinx\",\n", | |
" \"sphinx-rtd-theme\",\n", | |
" \"tox\",\n", | |
" \"twine\",\n", | |
" \"wheel\",\n", | |
" \"pytest-runner\",\n", | |
" \"black\",\n", | |
" \"codecov\",\n", | |
" \"flake8\",\n", | |
" \"flake8-debugger\",\n", | |
" \"napari[pyqt5]\",\n", | |
" \"pytest\",\n", | |
" \"pytest-cov\",\n", | |
" \"pytest-raises\",\n", | |
" \"bumpversion\",\n", | |
" \"coverage\",\n", | |
" \"ipython\",\n", | |
" \"m2r\",\n", | |
" \"Sphinx\",\n", | |
" \"sphinx-rtd-theme\",\n", | |
" \"tox\",\n", | |
" \"twine\",\n", | |
" \"wheel\",\n", | |
" \"pytest-runner\",\n", | |
" \"black\",\n", | |
" \"codecov\",\n", | |
" \"flake8\",\n", | |
" \"flake8-debugger\",\n", | |
" \"napari[pyqt5]\",\n", | |
" \"pytest\",\n", | |
" \"pytest-cov\",\n", | |
" \"pytest-raises\"\n", | |
" ],\n", | |
" \"requires_python\": \">=3.7\",\n", | |
" \"summary\": \"AICSImageIO bindings for napari\",\n", | |
" \"topics\": [\n", | |
" \"Scientific/Engineering\",\n", | |
" \"Scientific/Engineering :: Bio-Informatics\",\n", | |
" \"Scientific/Engineering :: Information Analysis\",\n", | |
" \"Scientific/Engineering :: Visualization\"\n", | |
" ],\n", | |
" \"version\": \"0.2.0\"\n", | |
"}\n" | |
] | |
} | |
], | |
"source": [ | |
"def etl(package):\n", | |
" data = get_package_data(package)\n", | |
" extracted = {}\n", | |
" for key, func in queries.items():\n", | |
" extracted[key] = func(data)\n", | |
" return extracted\n", | |
"\n", | |
"extracted = etl(package)\n", | |
"pprint(extracted)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 141, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import pandas as pd" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 142, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>name</th>\n", | |
" <th>summary</th>\n", | |
" <th>description</th>\n", | |
" <th>description_content_type</th>\n", | |
" <th>author</th>\n", | |
" <th>author_email</th>\n", | |
" <th>license</th>\n", | |
" <th>requires_python</th>\n", | |
" <th>topics</th>\n", | |
" <th>requirements</th>\n", | |
" <th>homepage</th>\n", | |
" <th>release_date</th>\n", | |
" <th>version</th>\n", | |
" <th>first_released</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>napari-aicsimageio</td>\n", | |
" <td>AICSImageIO bindings for napari</td>\n", | |
" <td># napari-aicsimageio\\n\\n[ for package in packages])\n", | |
"df.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 147, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"df.to_csv('napari_plugins.csv')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.8.5" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 4 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment