Name | polyphy-testing JSON |
Version |
0.0.2
JSON |
| download |
home_page | https://github.com/PolyPhyHub/PolyPhy |
Summary | description for polyphy testing |
upload_time | 2023-10-28 16:26:42 |
maintainer | |
docs_url | None |
author | Oskar Elek |
requires_python | >=3.7 |
license | MIT License Copyright (c) 2022 PolyPhyHub Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
keywords |
polyphy
|
VCS |
|
bugtrack_url |
|
requirements |
Sphinx
coverage
flake8
isort
matplotlib
nbmake
numpy
pytest-cov
pytest-xdist
pytest
scipy
setuptools
sphinx
taichi
toml
tox
yapf
ipywidgets
pyvista
trimesh
PyMCubes
scikit-image
path
|
Travis-CI |
No Travis.
|
coveralls test coverage |
|
![header_narrow](https://user-images.githubusercontent.com/26778894/215681761-68adbc1c-4cfa-445d-a745-79a6c09118b2.jpg)
[![PolyPhyHub - PolyPhy](https://img.shields.io/static/v1?label=PolyPhyHub&message=PolyPhy&color=blue&logo=github)](https://github.com/PolyPhyHub/PolyPhy "Go to GitHub repo")
[![License](http://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/PolyPhyHub/PolyPhy/main/LICENSE)
[![issues - PolyPhy](https://img.shields.io/github/issues/PolyPhyHub/PolyPhy)](https://github.com/PolyPhyHub/PolyPhy/issues)
[![Python
Package](https://github.com/PolyPhyHub/PolyPhy/actions/workflows/python-package.yml/badge.svg?branch=main)](https://github.com/PolyPhyHub/PolyPhy/actions/workflows/python-package.yml)
[![image](https://ci.appveyor.com/api/projects/status/ynv14em7nm0tvjso/branch/main?svg=true)](https://ci.appveyor.com/project/PatriceJada/polyphy-uyogg/branch/main)
[![Documentation
Status](https://readthedocs.org/projects/polyphy/badge/?version=latest)](https://polyphy.readthedocs.io/en/latest/?badge=latest)
[![REUSE
status](https://api.reuse.software/badge/git.fsfe.org/reuse/api)](https://api.reuse.software/info/git.fsfe.org/reuse/api)
<!-- [![image](https://codecov.io/gh/PolyPhyHub/PolyPhy/branch/main/graph/badge.svg?token=D933raYfrG)](https://codecov.io/gh/PolyPhyHub/PolyPhy) -->
# PolyPhy
*PolyPhy* is an unconventional toolkit for reconstructing continuous networks out of sparse 2D or 3D data. Such data can be defined as collections of discrete points, or a continuous sparse scalar field. *PolyPhy* produces a scalar density field that defines the recovered network structure. With the help of GPU-accelerated simulation and visualization, *PolyPhy* provides domain experts an interactive way to reconstruct discrete geometric data with an underlying network structure. The reconstruction is driven by the *Monte Carlo Physarum Machine* algorithm, a metaheuristic inspired by the morphology and dynamics of Physarum polycephalum aka 'slime mold'.
## Related Resources
- *PolyPhy* is a successor of [Polyphorm](https://github.com/CreativeCodingLab/Polyphorm)
- Main GitHub page: [PolyPhy Hub](https://github.com/PolyPhyHub)
- Official website: [polyphy.io](https://polyphy.io)
- Underlying research: [overview](https://elek.pub/projects/Rhizome-Cosmology/) and [publications](https://elek.pub/research.html)
- Email list: [Google Groups](https://groups.google.com/g/polyphy-news)
## System Requirements
- Decent GPU, recommended a mid-range discrete one
- currently running best on NVIDIA GPUs, other brands supported as well (subject to the current capabilities of the [Taichi API](https://github.com/taichi-dev/taichi))
- CPU fallback available for debugging purposes
- Recent Windows, Linux or Mac OS
- Python 3.x, Anaconda recommended
## Repository
The main repository is located at the following GitHub URL:<br/>
<https://github.com/PolyPhyHub/PolyPhy.git>
The other repositories are linked from the following "org" page:<br/>
<https://github.com/PolyPhyHub/>
## Running PolyPhy
Please note the project is currently undergoing a significant refactoring in order to streamline the use of the software in CLI, improve its modularity (making it easier to implement custom pipelines and extend the existing ones), and add new features (such as the recent addition of batch mode).
To **install** PolyPhy, clone this repository, open a Python console, navigate to the root of the repo, and run
```
pip install -r requirements.txt
```
Afterwards, navigate to the **./experiments/jupyter/production/** and run
```
python polyphy_2DDiscrete.py -f "data/csv/sample_2D_linW.csv"
```
for the standard 2D pipeline, or
```
python polyphy_3DDiscrete.py -f "data/csv/sample_3D_linW.csv"
```
to invoke the standard 3D discrete pipeline on sample data. You can also specify a custom CSV file (see the sample data for the format details, typically the data are tuples with 2 or 3 spatial coorinates followed by weights for each data point). The functionality of these pipelines is described below.
To display help on the available CLI parameters, simply run the respective command without any arguments.
There is also a number of notebooks implementing various pipelines (some of which are documented below). These are updated to different degrees, and we are in the process of porting them to the refactored class structure. Updates coming soon.
## Functionality
The use-cases currently supported by *PolyPhy* are divided according to the data workflow they are built around. Each use-case has a corresponding Jupyter notebook that implements it located in **./experiments/Jupyter**. This section reviews them case by case, and the following section provides an extensive tutorial recorded at the recent OSPO Symposium 2022.
- **2D self-patterning** is the most basic use-case implemented within the **./experiments/Jupyter/PolyPhy_2D_discrete_data** notebook. The ability of MCPM to generate a diversity of patterns with network characteristics is achieved by disabling the data marker deposition, leaving only the MCPM agents to generate the marker responsible for maintaining structure.<p>
![2D_self-patterning](https://user-images.githubusercontent.com/26778894/215976261-d9509124-e3bf-4b82-9cc8-b96a40ab3db2.jpg)
</p>
- **2D procedural pipeline** provide an easy environment to experiment with the behavior of *PolyPhy* in the presence of discrete data with different spatial frequencies. Editing (adding new data points) is also supported. This pipeline is implemented in the **./experiments/Jupyter/PolyPhy_2D_discrete_data** notebook.<p>
![2D_discrete_procedural](https://user-images.githubusercontent.com/26778894/215980005-f927d227-0090-46dd-8ec6-fde9b800dfa0.jpg)
</p>
- **2D discrete pipeline** implements the canonical way of working with custom data defined by a CSV file. The example below demonstrates fitting to a 2D projection of the SDSS galaxy dataset. This pipeline is implemented in the **./experiments/Jupyter/PolyPhy_2D_discrete_data** notebook.<p>
![2D_discrete_explicit](https://user-images.githubusercontent.com/26778894/215980486-f77da2ec-8780-4a23-bacc-a03c164ebe2a.jpg)
</p>
- **2D continuous pipeline** demonstrates the workflow with a continuous user-provided dataset. Instead of a discrete set of points as in the previous use-cases, the data is defined by a scalar field, which in 2D amounts to a grayscale image. The example below approximates the US road network using only a sparse population density map as the input. This pipeline is implemented in the **./experiments/Jupyter/PolyPhy_2D_continuous_data** notebook.<p>
![2D_continuous](https://user-images.githubusercontent.com/26778894/215981222-6fa4b334-45d2-498f-8c5a-c150137574ac.jpg)
</p>
- **3D discrete pipeline** represents an equivalent functionality to the original *Polyphorm* implementation. The dataset consists of SDSS galaxies defined as a weighted collection of 3D points. THe visualization is based on volumetric ray marching simultaneously fetching the deposit and the trace fields. This pipeline is implemented in the **./experiments/Jupyter/PolyPhy_3D_discrete_data** notebook.<p>
![3D_discrete_explicit](https://user-images.githubusercontent.com/26778894/215981925-96ed3322-0068-497d-a2e7-4543c7ef8e41.jpg)
</p>
## How to Use PolyPhy
Below is a recording of the [PolyPhy Workshop](https://elek.pub/workshop_cross2022.html) given as part of the [OSPO Symposium 2022](https://ospo.ucsc.edu/event/20220927/).<br/>
This 93-minute workshop covers *PolyPhy*'s research background, all of the 5 above usecases, and extended technical discussion.
[![](http://i3.ytimg.com/vi/3-hm7iTqz0U/hqdefault.jpg)](https://www.youtube.com/watch?v=3-hm7iTqz0U "PolyPhy Workshop")
## Services
#### Tox
Tox is a virtual environment management and test tool that allows you to define and run custom tasks that call executables from Python packages. Tox will download the dependencies you have specified, build the package, install it in a virtual environment and run the tests using pytest. Make sure to install tox in the root of your project if you intend to work on the development.
``` pycon
tox # download dependencies, build and install package, run tests
tox -e docs # to build your documentation
tox -e build # to build your package distribution
tox -e publish # to test your project uploads correctly in test.pypi.org
tox -e publish --repository pypi # to release your package to PyPI
tox -av # to list all the tasks available
```
#### GitHub Actions
GitHub Actions is being used to test on MacOs as well as Linux. It allows for the automation of the building, testing, and deployment pipline.
#### Codecov
A service that generates a visual report of how much code has been tested. All configuration settings can be found in the codecov.yml file.
#### Appveyor
A service that can be used to test Windows. All configuration settings can be found in the appveyor.yml file.
Raw data
{
"_id": null,
"home_page": "https://github.com/PolyPhyHub/PolyPhy",
"name": "polyphy-testing",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "maintainers_name <maintainers@example.com>",
"keywords": "polyphy",
"author": "Oskar Elek",
"author_email": "author_name <author@example.com>",
"download_url": "https://files.pythonhosted.org/packages/14/34/45c8e272091c9dcb454c2fa878a6be6abc319d17300f64e53348c6f6362e/polyphy-testing-0.0.2.tar.gz",
"platform": "any",
"description": "![header_narrow](https://user-images.githubusercontent.com/26778894/215681761-68adbc1c-4cfa-445d-a745-79a6c09118b2.jpg)\n\n[![PolyPhyHub - PolyPhy](https://img.shields.io/static/v1?label=PolyPhyHub&message=PolyPhy&color=blue&logo=github)](https://github.com/PolyPhyHub/PolyPhy \"Go to GitHub repo\")\n[![License](http://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/PolyPhyHub/PolyPhy/main/LICENSE)\n[![issues - PolyPhy](https://img.shields.io/github/issues/PolyPhyHub/PolyPhy)](https://github.com/PolyPhyHub/PolyPhy/issues)\n[![Python\nPackage](https://github.com/PolyPhyHub/PolyPhy/actions/workflows/python-package.yml/badge.svg?branch=main)](https://github.com/PolyPhyHub/PolyPhy/actions/workflows/python-package.yml)\n[![image](https://ci.appveyor.com/api/projects/status/ynv14em7nm0tvjso/branch/main?svg=true)](https://ci.appveyor.com/project/PatriceJada/polyphy-uyogg/branch/main)\n[![Documentation\nStatus](https://readthedocs.org/projects/polyphy/badge/?version=latest)](https://polyphy.readthedocs.io/en/latest/?badge=latest)\n[![REUSE\nstatus](https://api.reuse.software/badge/git.fsfe.org/reuse/api)](https://api.reuse.software/info/git.fsfe.org/reuse/api)\n<!-- [![image](https://codecov.io/gh/PolyPhyHub/PolyPhy/branch/main/graph/badge.svg?token=D933raYfrG)](https://codecov.io/gh/PolyPhyHub/PolyPhy) -->\n\n# PolyPhy\n*PolyPhy* is an unconventional toolkit for reconstructing continuous networks out of sparse 2D or 3D data. Such data can be defined as collections of discrete points, or a continuous sparse scalar field. *PolyPhy* produces a scalar density field that defines the recovered network structure. With the help of GPU-accelerated simulation and visualization, *PolyPhy* provides domain experts an interactive way to reconstruct discrete geometric data with an underlying network structure. The reconstruction is driven by the *Monte Carlo Physarum Machine* algorithm, a metaheuristic inspired by the morphology and dynamics of Physarum polycephalum aka 'slime mold'.\n\n## Related Resources\n- *PolyPhy* is a successor of [Polyphorm](https://github.com/CreativeCodingLab/Polyphorm)\n- Main GitHub page: [PolyPhy Hub](https://github.com/PolyPhyHub)\n- Official website: [polyphy.io](https://polyphy.io)\n- Underlying research: [overview](https://elek.pub/projects/Rhizome-Cosmology/) and [publications](https://elek.pub/research.html)\n- Email list: [Google Groups](https://groups.google.com/g/polyphy-news)\n\n## System Requirements\n- Decent GPU, recommended a mid-range discrete one\n - currently running best on NVIDIA GPUs, other brands supported as well (subject to the current capabilities of the [Taichi API](https://github.com/taichi-dev/taichi))\n - CPU fallback available for debugging purposes\n- Recent Windows, Linux or Mac OS\n- Python 3.x, Anaconda recommended\n\n## Repository\nThe main repository is located at the following GitHub URL:<br/>\n<https://github.com/PolyPhyHub/PolyPhy.git>\n\nThe other repositories are linked from the following \"org\" page:<br/>\n<https://github.com/PolyPhyHub/>\n\n## Running PolyPhy\nPlease note the project is currently undergoing a significant refactoring in order to streamline the use of the software in CLI, improve its modularity (making it easier to implement custom pipelines and extend the existing ones), and add new features (such as the recent addition of batch mode).\n\nTo **install** PolyPhy, clone this repository, open a Python console, navigate to the root of the repo, and run\n```\npip install -r requirements.txt\n```\nAfterwards, navigate to the **./experiments/jupyter/production/** and run\n```\npython polyphy_2DDiscrete.py -f \"data/csv/sample_2D_linW.csv\"\n```\nfor the standard 2D pipeline, or\n```\npython polyphy_3DDiscrete.py -f \"data/csv/sample_3D_linW.csv\"\n```\nto invoke the standard 3D discrete pipeline on sample data. You can also specify a custom CSV file (see the sample data for the format details, typically the data are tuples with 2 or 3 spatial coorinates followed by weights for each data point). The functionality of these pipelines is described below.\n\nTo display help on the available CLI parameters, simply run the respective command without any arguments.\n\nThere is also a number of notebooks implementing various pipelines (some of which are documented below). These are updated to different degrees, and we are in the process of porting them to the refactored class structure. Updates coming soon.\n\n## Functionality\nThe use-cases currently supported by *PolyPhy* are divided according to the data workflow they are built around. Each use-case has a corresponding Jupyter notebook that implements it located in **./experiments/Jupyter**. This section reviews them case by case, and the following section provides an extensive tutorial recorded at the recent OSPO Symposium 2022.\n\n- **2D self-patterning** is the most basic use-case implemented within the **./experiments/Jupyter/PolyPhy_2D_discrete_data** notebook. The ability of MCPM to generate a diversity of patterns with network characteristics is achieved by disabling the data marker deposition, leaving only the MCPM agents to generate the marker responsible for maintaining structure.<p>\n ![2D_self-patterning](https://user-images.githubusercontent.com/26778894/215976261-d9509124-e3bf-4b82-9cc8-b96a40ab3db2.jpg)\n</p>\n\n- **2D procedural pipeline** provide an easy environment to experiment with the behavior of *PolyPhy* in the presence of discrete data with different spatial frequencies. Editing (adding new data points) is also supported. This pipeline is implemented in the **./experiments/Jupyter/PolyPhy_2D_discrete_data** notebook.<p>\n ![2D_discrete_procedural](https://user-images.githubusercontent.com/26778894/215980005-f927d227-0090-46dd-8ec6-fde9b800dfa0.jpg)\n</p>\n\n- **2D discrete pipeline** implements the canonical way of working with custom data defined by a CSV file. The example below demonstrates fitting to a 2D projection of the SDSS galaxy dataset. This pipeline is implemented in the **./experiments/Jupyter/PolyPhy_2D_discrete_data** notebook.<p>\n ![2D_discrete_explicit](https://user-images.githubusercontent.com/26778894/215980486-f77da2ec-8780-4a23-bacc-a03c164ebe2a.jpg)\n</p>\n\n- **2D continuous pipeline** demonstrates the workflow with a continuous user-provided dataset. Instead of a discrete set of points as in the previous use-cases, the data is defined by a scalar field, which in 2D amounts to a grayscale image. The example below approximates the US road network using only a sparse population density map as the input. This pipeline is implemented in the **./experiments/Jupyter/PolyPhy_2D_continuous_data** notebook.<p>\n ![2D_continuous](https://user-images.githubusercontent.com/26778894/215981222-6fa4b334-45d2-498f-8c5a-c150137574ac.jpg)\n</p>\n\n- **3D discrete pipeline** represents an equivalent functionality to the original *Polyphorm* implementation. The dataset consists of SDSS galaxies defined as a weighted collection of 3D points. THe visualization is based on volumetric ray marching simultaneously fetching the deposit and the trace fields. This pipeline is implemented in the **./experiments/Jupyter/PolyPhy_3D_discrete_data** notebook.<p>\n ![3D_discrete_explicit](https://user-images.githubusercontent.com/26778894/215981925-96ed3322-0068-497d-a2e7-4543c7ef8e41.jpg)\n</p>\n\n## How to Use PolyPhy\nBelow is a recording of the [PolyPhy Workshop](https://elek.pub/workshop_cross2022.html) given as part of the [OSPO Symposium 2022](https://ospo.ucsc.edu/event/20220927/).<br/>\nThis 93-minute workshop covers *PolyPhy*'s research background, all of the 5 above usecases, and extended technical discussion.\n\n[![](http://i3.ytimg.com/vi/3-hm7iTqz0U/hqdefault.jpg)](https://www.youtube.com/watch?v=3-hm7iTqz0U \"PolyPhy Workshop\")\n\n## Services\n\n#### Tox\nTox is a virtual environment management and test tool that allows you to define and run custom tasks that call executables from Python packages. Tox will download the dependencies you have specified, build the package, install it in a virtual environment and run the tests using pytest. Make sure to install tox in the root of your project if you intend to work on the development.\n\n``` pycon\ntox # download dependencies, build and install package, run tests\ntox -e docs # to build your documentation\ntox -e build # to build your package distribution\ntox -e publish # to test your project uploads correctly in test.pypi.org\ntox -e publish --repository pypi # to release your package to PyPI\ntox -av # to list all the tasks available\n```\n\n#### GitHub Actions\nGitHub Actions is being used to test on MacOs as well as Linux. It allows for the automation of the building, testing, and deployment pipline.\n\n#### Codecov\nA service that generates a visual report of how much code has been tested. All configuration settings can be found in the codecov.yml file.\n\n#### Appveyor\nA service that can be used to test Windows. All configuration settings can be found in the appveyor.yml file.\n",
"bugtrack_url": null,
"license": "MIT License Copyright (c) 2022 PolyPhyHub Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
"summary": "description for polyphy testing",
"version": "0.0.2",
"project_urls": {
"Documentation": "https://github.com/PolyPhyHub/PolyPhy",
"Homepage": "https://github.com/PolyPhyHub/PolyPhy",
"Source": "https://github.com/PolyPhyHub/PolyPhy"
},
"split_keywords": [
"polyphy"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0c0c7fd5e5556cd36ed107e11a0221e9f7fbada74ffb7fdd42dcca4466dc11e4",
"md5": "26e80fa13058285103cb20a46a2ee0d0",
"sha256": "2b01e7a1376aee619d68b0744b7fe7bf93499a0e3504be034f8360e42b19ff92"
},
"downloads": -1,
"filename": "polyphy_testing-0.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "26e80fa13058285103cb20a46a2ee0d0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 29617,
"upload_time": "2023-10-28T16:26:40",
"upload_time_iso_8601": "2023-10-28T16:26:40.609713Z",
"url": "https://files.pythonhosted.org/packages/0c/0c/7fd5e5556cd36ed107e11a0221e9f7fbada74ffb7fdd42dcca4466dc11e4/polyphy_testing-0.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "143445c8e272091c9dcb454c2fa878a6be6abc319d17300f64e53348c6f6362e",
"md5": "b3055c5ed5cff1195a8eb662803bad12",
"sha256": "6860c6f474f40646a0c2de4b2dec7a2cbd9e8551f75e06ff17715943972773d3"
},
"downloads": -1,
"filename": "polyphy-testing-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "b3055c5ed5cff1195a8eb662803bad12",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 10201583,
"upload_time": "2023-10-28T16:26:42",
"upload_time_iso_8601": "2023-10-28T16:26:42.347961Z",
"url": "https://files.pythonhosted.org/packages/14/34/45c8e272091c9dcb454c2fa878a6be6abc319d17300f64e53348c6f6362e/polyphy-testing-0.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-28 16:26:42",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "PolyPhyHub",
"github_project": "PolyPhy",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"appveyor": true,
"requirements": [
{
"name": "Sphinx",
"specs": [
[
"==",
"4.5.0"
]
]
},
{
"name": "coverage",
"specs": []
},
{
"name": "flake8",
"specs": []
},
{
"name": "isort",
"specs": []
},
{
"name": "matplotlib",
"specs": [
[
"==",
"3.5.3"
]
]
},
{
"name": "nbmake",
"specs": []
},
{
"name": "numpy",
"specs": [
[
"<=",
"1.22.0"
]
]
},
{
"name": "pytest-cov",
"specs": []
},
{
"name": "pytest-xdist",
"specs": []
},
{
"name": "pytest",
"specs": [
[
"==",
"7.1.2"
]
]
},
{
"name": "scipy",
"specs": []
},
{
"name": "setuptools",
"specs": [
[
"==",
"65.5.1"
]
]
},
{
"name": "sphinx",
"specs": []
},
{
"name": "taichi",
"specs": [
[
"==",
"1.6.0"
]
]
},
{
"name": "toml",
"specs": []
},
{
"name": "tox",
"specs": []
},
{
"name": "yapf",
"specs": []
},
{
"name": "ipywidgets",
"specs": []
},
{
"name": "pyvista",
"specs": []
},
{
"name": "trimesh",
"specs": []
},
{
"name": "PyMCubes",
"specs": []
},
{
"name": "scikit-image",
"specs": []
},
{
"name": "path",
"specs": []
}
],
"tox": true,
"lcname": "polyphy-testing"
}