{ "info": { "author": "Jordan Matelsky", "author_email": "jordan@matelsky.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "

\n \"substrate\"\n

pytri

\n

\n\n

\n A python wrapper for substrate.
\n \"CircleCI\"\n \"PyPI\n \n \n

\n\n## What is Pytri?\n\nPytri is a data visualization library for 3D rendering in a Jupyter notebook.\n\n### Why not use...?\n\n- **Matplotlib**: 3D support is a second-class citizen; matplotlib's strengths are in 2D.\n- **Plotly**: Plotly is a great, powerful library, but it has a complex, non-ideomatic API.\n- **threejs Python libraries**: These are great, but support basic geometry operations better than high-level data visualization.\n\nUnder the hood, pytri uses [substrate](https://github.com/aplbrain/substrate), a fast, layer-based visualization framework built upon threejs. And importantly, **pytri visualizations persist when you export a jupyter notebook to HTML!**\n\n## Installation and Configuration\n\n### New Hotness:\n\n```shell\npip install -U pytri\n```\n\n### Old and Busted:\n\n- Clone the repository.\n```shell\ngit clone https://github.com/aplbrain/pytri.git\n```\n- Install all dependencies.\n```shell\npip3 install -r requirements.txt\npip3 install -U .\n```\n\n## Usage\n\n```python\nfrom pytri import pytri\n\np = pytri()\n\np.axes()\np.scatter([[1, 2, 3], [4, 5, 6]])\np.show()\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/aplbrain/pytri/tarball/0.5.0", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "viz,substrate,3D,visualization", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "pytri", "package_url": "https://pypi.org/project/pytri/", "platform": "", "project_url": "https://pypi.org/project/pytri/", "project_urls": { "Download": "https://github.com/aplbrain/pytri/tarball/0.5.0" }, "release_url": "https://pypi.org/project/pytri/0.5.0/", "requires_dist": [ "mypy", "typing", "nose", "coverage", "nose-progressive", "IPython", "requests", "networkx", "numpy", "pillow" ], "requires_python": "", "summary": "Visualize using substrate. For Jupyter notebooks.", "version": "0.5.0" }, "last_serial": 4565022, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "2deb05e15a8871cb59ed69397344584b", "sha256": "5a90583145f8ce57d46b71276d164fa3f336dbde829ba93b39448c5c1746c21f" }, "downloads": -1, "filename": "pytri-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2deb05e15a8871cb59ed69397344584b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5266, "upload_time": "2017-10-26T19:40:02", "url": "https://files.pythonhosted.org/packages/a0/bd/e099d42048d974870d05377c0a73aaf9e7bf0d19fea900ed49633f2211e6/pytri-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b3e985a61f9cc741c3fa6d6c94942d51", "sha256": "05b6ffff3a69b403b193391e19dff76210cbd36d049940af784d39970b308aa4" }, "downloads": -1, "filename": "pytri-0.0.1.tar.gz", "has_sig": false, "md5_digest": "b3e985a61f9cc741c3fa6d6c94942d51", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4028, "upload_time": "2017-10-26T19:40:04", "url": "https://files.pythonhosted.org/packages/85/65/af6177fd99f1f206e95a0f2ae21378d852d463662039c581f9226fc23217/pytri-0.0.1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "96634f0c32467fbdbb766628c8898996", "sha256": "26f0d4e3a6e3a35893f07d3a51873c4fed0a6436cb1ae736a37891d5ce63f618" }, "downloads": -1, "filename": "pytri-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "96634f0c32467fbdbb766628c8898996", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5465, "upload_time": "2017-11-03T19:38:37", "url": "https://files.pythonhosted.org/packages/99/51/b519e3c6eae18a05558ef927369053c2619c9495eb845e7efe6c2df3b040/pytri-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f8d5adfc320d62e165a6dbd99cefde26", "sha256": "505686cadf41d49e33ca0273ce0577c8a1394890c6e336576ace69c784ce830f" }, "downloads": -1, "filename": "pytri-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f8d5adfc320d62e165a6dbd99cefde26", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4222, "upload_time": "2017-11-03T19:38:38", "url": "https://files.pythonhosted.org/packages/a3/6b/a9a5b8bc93c67fed9276fef70bdcbdce96ce6af690a03258ecba816cc3a9/pytri-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "6df187a69889686dbcf5bf98d391e051", "sha256": "472ea2f7c0a07b1693964b8b9c0f8b3ac41ba8880c665717cead09a519c1dca0" }, "downloads": -1, "filename": "pytri-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6df187a69889686dbcf5bf98d391e051", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9473, "upload_time": "2017-11-03T20:02:43", "url": "https://files.pythonhosted.org/packages/75/d7/54bd50310826a601823283ab4fb285f11cd1bd4f5c5f80cf226df59f31be/pytri-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3ea3ac0a8ed4bed4cfc0f2624c494247", "sha256": "249eec3777d11879adcc270b341808ccda37fe3598431621e9cb070d3a57683f" }, "downloads": -1, "filename": "pytri-0.1.1.tar.gz", "has_sig": false, "md5_digest": "3ea3ac0a8ed4bed4cfc0f2624c494247", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7010, "upload_time": "2017-11-03T20:02:44", "url": "https://files.pythonhosted.org/packages/10/61/f59e4ba683fb1c14d70f039509221811befefe54d52a0a97fe227f5d4293/pytri-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "3b62a3ea671b7896bcc79ff4f3fd0622", "sha256": "84f1bb5e504ef4254cc4c543317de3e7ddf86135a4d4eb0dd832249e101ff7c7" }, "downloads": -1, "filename": "pytri-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3b62a3ea671b7896bcc79ff4f3fd0622", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10213, "upload_time": "2017-11-20T15:24:14", "url": "https://files.pythonhosted.org/packages/40/7f/bf14ea52355ba9f053a8bb773eb3e457dd905295a7ff332d0ef58eb41083/pytri-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5dae51c8e694727585ed4d69b76cd4bb", "sha256": "9f7c2555a0fe20b8c5582564fb57b2d61033ffe4c13e0793c3fc79c0770b947b" }, "downloads": -1, "filename": "pytri-0.1.2.tar.gz", "has_sig": false, "md5_digest": "5dae51c8e694727585ed4d69b76cd4bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7500, "upload_time": "2017-11-20T15:24:18", "url": "https://files.pythonhosted.org/packages/1e/0c/7b12a9225f83a651634beb7352a7e68c7f142977c602b4780327d0702626/pytri-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "13344a9034b7784891dbf04b26fa0c03", "sha256": "3cebcf5142a044cc5a8ae847921f3cdfab9abb9021165aa0e2d514366afec3f5" }, "downloads": -1, "filename": "pytri-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "13344a9034b7784891dbf04b26fa0c03", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17520, "upload_time": "2018-01-22T17:22:25", "url": "https://files.pythonhosted.org/packages/6b/94/90a845d70dcf822f298c216acc5e8d5b0615f5774bb59d94ad2c2c37e42c/pytri-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "25805b11f2f78938abe74d2b4e5aa645", "sha256": "4ad7a4947b1f85d76edcaff680840c79897d9e080f98cc1240088507f03cfd63" }, "downloads": -1, "filename": "pytri-0.2.0.tar.gz", "has_sig": false, "md5_digest": "25805b11f2f78938abe74d2b4e5aa645", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13972, "upload_time": "2018-01-22T17:22:27", "url": "https://files.pythonhosted.org/packages/3c/31/948a403611b9282b8f52e97414ebceeb24cff8352a7bcba19d4dd738651c/pytri-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "c9a9692cd1b0b643e0935e39ff791435", "sha256": "afc6cf3857aff777dd5fba6965910505f7953c4acf95e8bf7d90735c0eb28db3" }, "downloads": -1, "filename": "pytri-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c9a9692cd1b0b643e0935e39ff791435", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16228, "upload_time": "2018-06-06T18:44:37", "url": "https://files.pythonhosted.org/packages/73/23/01080e082f5dfa48cfb7b05e5d13d77e44e36d2fe8e291ec82f3e78baeaf/pytri-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "41a3dc9510ba956b6e5248df13962b3e", "sha256": "1ccb01f29ceb32e3eb0821e59ffacb2140aeb361402cb9435ea18e8930367299" }, "downloads": -1, "filename": "pytri-0.3.0.tar.gz", "has_sig": false, "md5_digest": "41a3dc9510ba956b6e5248df13962b3e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14067, "upload_time": "2018-06-06T17:40:22", "url": "https://files.pythonhosted.org/packages/71/b8/9115958ff3fff4c72170ccdefb259b416377cd975b289968e5eb97ad8bba/pytri-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "c65a77b95b893df81ec7486334ecc5d4", "sha256": "8c17d672ce4adfaf5c71e82017ddac5a8aab27b29fd7b3b386c591277f14e86b" }, "downloads": -1, "filename": "pytri-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c65a77b95b893df81ec7486334ecc5d4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16190, "upload_time": "2018-07-31T15:45:17", "url": "https://files.pythonhosted.org/packages/43/cb/c0d49500e149dc0c91c0e88cb95e8f696dae553345fbd5a7324ba55b63a9/pytri-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "327219f0a14f9bb8f81d795cab92c25c", "sha256": "3f0684c6432f0b763286638847906f1567c7efe3cb1739cb8bf3ef6c524ffcb7" }, "downloads": -1, "filename": "pytri-0.4.0.tar.gz", "has_sig": false, "md5_digest": "327219f0a14f9bb8f81d795cab92c25c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13250, "upload_time": "2018-07-31T15:45:19", "url": "https://files.pythonhosted.org/packages/5d/6f/351bdc5f8d64ebbcf22950faa347b93cb801c90907c83b992b7db34b9b57/pytri-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "085f9c648923788fe6d4c88b8a49fb09", "sha256": "b345439c9e37c90cec3aa673fec658bcaaa478752bc7a38ba8e1980928eeb62c" }, "downloads": -1, "filename": "pytri-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "085f9c648923788fe6d4c88b8a49fb09", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 292645, "upload_time": "2018-12-05T18:53:45", "url": "https://files.pythonhosted.org/packages/83/6c/6688503db29654e07e12006dda88e3ee9b9ca5c5003a00dfe27a9ae8e02e/pytri-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b57be7dbfe64f7de7ddeff870d9d8333", "sha256": "1c2a4af04be5f74baf28d60d66e7fb076abc9ee9df1196b4fa942eb55e632151" }, "downloads": -1, "filename": "pytri-0.5.0.tar.gz", "has_sig": false, "md5_digest": "b57be7dbfe64f7de7ddeff870d9d8333", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 289172, "upload_time": "2018-12-05T18:53:47", "url": "https://files.pythonhosted.org/packages/79/fd/62b9d15fd3cbc8e3d22534dd5647fa36924fbcd418daf454d9bebbf4d942/pytri-0.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "085f9c648923788fe6d4c88b8a49fb09", "sha256": "b345439c9e37c90cec3aa673fec658bcaaa478752bc7a38ba8e1980928eeb62c" }, "downloads": -1, "filename": "pytri-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "085f9c648923788fe6d4c88b8a49fb09", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 292645, "upload_time": "2018-12-05T18:53:45", "url": "https://files.pythonhosted.org/packages/83/6c/6688503db29654e07e12006dda88e3ee9b9ca5c5003a00dfe27a9ae8e02e/pytri-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b57be7dbfe64f7de7ddeff870d9d8333", "sha256": "1c2a4af04be5f74baf28d60d66e7fb076abc9ee9df1196b4fa942eb55e632151" }, "downloads": -1, "filename": "pytri-0.5.0.tar.gz", "has_sig": false, "md5_digest": "b57be7dbfe64f7de7ddeff870d9d8333", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 289172, "upload_time": "2018-12-05T18:53:47", "url": "https://files.pythonhosted.org/packages/79/fd/62b9d15fd3cbc8e3d22534dd5647fa36924fbcd418daf454d9bebbf4d942/pytri-0.5.0.tar.gz" } ] }