{ "info": { "author": "Bobby Norton", "author_email": "bobby@testedminds.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3 :: Only", "Topic :: Scientific/Engineering", "Topic :: Utilities" ], "description": "SAND\n----\n\nPython code and notebooks to model System Architecture as a Network of Dependencies\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSAND uses Python and Jupyter Notebooks to explore applications of\nrepresenting system architecture as a directed graph, or network, of\nengineered artifacts and their relationships to one another.\n\nEngineered artifacts are vertices in the graph. For a software library,\nthe artifacts are functions and the dependencies are function calls. For\nRESTful microservices, an artifact is a service and the dependencies are\nAPI calls.\n\nDirected edges represent the dependencies and their transpose, impact.\n\nImagine we have two microservices, A and B.\n\nIf B calls A, then B has a dependency on A. The creator of A might not\nknow that B is a client, so the dependency relationship is directed.\n\nThe transpose of this relationship is that A impacts or influences B:\nNon backwards-compatible changes in A\u2019s interface that B calls can break\nB. Changes in B do not impact A, so once again, the edge is directed.\n\nThis simple model proves to be extremely powerful in describing\narbitrarily complicated system architectures. The SAND library and\naccompanying Jupyter Notebooks provide working examples of visualization\nand analysis.\n\nInstallation\n------------\n\n``pip install sand``\n\nYou might also want to clone this git repo to follow along with the\nexamples below:\n\n.. code:: bash\n\n git clone git@github.com:testedminds/sand.git\n cd sand\n\nGetting Started\n---------------\n\nSAND is documented with a series of Jupyter Notebooks:\n\n- `Loading Network Data <./docs/Loading%20network%20data.ipynb>`__\n- `Matrix Visualization with\n Bokeh <./docs/Matrix%20visualization%20with%20Bokeh.ipynb>`__\n- `Network Visualization with\n Cytoscape <./docs/Visualization%20with%20Cytoscape.ipynb>`__\n\nRunning in Docker\n~~~~~~~~~~~~~~~~~\n\nYou can run these notebooks via Docker to experiment. Assuming you have\na ``docker-machine`` running and you\u2019ve cloned the ``sand`` repo:\n\n.. code:: bash\n\n git clone git@github.com:testedminds/sand.git\n docker pull testedminds/sand\n make docker-docs\n # And after the container starts...\n make docker-open\n\nWhen the notebook opens in your browser, you will see the Notebook\nDashboard, which will show a list of the notebooks and data in the\n``docs`` directory.\n\nThese commands translate to:\n\n::\n\n docker run -d -p 80:8888 -v `pwd`/docs:/opt/sand --rm --name sand testedminds/sand:latest \\\n jupyter notebook --allow-root --ip 0.0.0.0 --no-browser --NotebookApp.token=''\n\n open http://192.168.99.100\n\nThis is a useful technique to quickly explore network data anywhere on\nyour local filesystem.\n\nRunning locally\n~~~~~~~~~~~~~~~\n\nTo run the notebooks locally without Docker:\n\n.. code:: bash\n\n pip install -r requirements.txt\n cd docs\n jupyter notebook\n\n- `Install Cytoscape `__ to run the optional\n Cytoscape examples. Start Cytoscape up and close the welcome screen.\n You probably want to check \u201cDon\u2019t show again\u201d in the lower left.\n\nLearn More\n----------\n\nSee a presentation from Bobby Norton at `Windy City\nGraphDB `__\nfor a more detailed introduction to the concept.\n\nThe Notebooks leverage `Cytoscape\u2019s RESTful\nAPI `__ and\n`python-igraph `__.\n\nLicense\n-------\n\nCopyright \u00a9 Bobby Norton and `Tested Minds,\nLLC `__.\n\nReleased under the `Apache License, Version 2.0 <./LICENSE.txt>`__\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/testedminds/sand", "keywords": "Architecture,Network,Graph", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "sand", "package_url": "https://pypi.org/project/sand/", "platform": "", "project_url": "https://pypi.org/project/sand/", "project_urls": { "Homepage": "https://github.com/testedminds/sand" }, "release_url": "https://pypi.org/project/sand/0.2.0/", "requires_dist": [ "bokeh (<2.0.0,>=1.0.0)", "pandas (<1.0.0,>=0.23.0)", "py2cytoscape (==0.7.0)", "cairocffi (<1.0.0,>=0.9.0)", "python-igraph (==0.7.1.post6)" ], "requires_python": "", "summary": "SAND: System Architecture as a Network of Dependencies", "version": "0.2.0" }, "last_serial": 4906899, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "926c1290d8b43338e1717d2139edd8ee", "sha256": "0a9a7a7ef4b0a7f64e7d83214abfb9e2de877a9841a3d725efa82603bd5b3e1b" }, "downloads": -1, "filename": "sand-0.1.0-py3-none-any.whl", "has_sig": true, "md5_digest": "926c1290d8b43338e1717d2139edd8ee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8630, "upload_time": "2017-07-10T21:53:46", "url": "https://files.pythonhosted.org/packages/c4/c5/3048b3be5c298a1a5a225a028657c61d8c8600eaba426fb0e1256502ff46/sand-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e36a93f399f5ba3f23e6c1036238258c", "sha256": "5d91457d4c4c211d5e1f183b55e455fa74a0026b1f341ad25bdfa27dcb48871a" }, "downloads": -1, "filename": "sand-0.1.0.tar.gz", "has_sig": true, "md5_digest": "e36a93f399f5ba3f23e6c1036238258c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5569, "upload_time": "2017-07-10T21:53:59", "url": "https://files.pythonhosted.org/packages/3b/27/cc0bd23e753b5e9c99b0d977898218e67ee579091165b018e615c3bed8b8/sand-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "559f55ceebbde1f97f6918ac83e5f37a", "sha256": "df19b8419679732993314a0836737b3181eb1497927625427856480fb0cebcc0" }, "downloads": -1, "filename": "sand-0.1.1-py3-none-any.whl", "has_sig": true, "md5_digest": "559f55ceebbde1f97f6918ac83e5f37a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8628, "upload_time": "2017-07-11T03:05:05", "url": "https://files.pythonhosted.org/packages/d0/13/5a8ccb55be59528b083b8f8bbea9a636151636a455d0b39e5332185ae970/sand-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "40e5d55a0747cbe4599361441e277cec", "sha256": "8d49e3073c13d5c0c15b09ac5686e0433aef599081cb355f9bbe2194c6e8aefa" }, "downloads": -1, "filename": "sand-0.1.1.tar.gz", "has_sig": true, "md5_digest": "40e5d55a0747cbe4599361441e277cec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5542, "upload_time": "2017-07-11T03:05:16", "url": "https://files.pythonhosted.org/packages/e5/b9/a43b094b65e997ebdaaf4da614d4ed255f707621de00415e4ab4fd35d223/sand-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "3723c6222f8baffeab77da795868d393", "sha256": "b5621c19f0eccaa399514fbfd0c442e11f926f417939f652d0f99fa1eda062b3" }, "downloads": -1, "filename": "sand-0.1.2-py3-none-any.whl", "has_sig": true, "md5_digest": "3723c6222f8baffeab77da795868d393", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12289, "upload_time": "2017-08-25T22:38:00", "url": "https://files.pythonhosted.org/packages/6a/6d/f399232d53113d3e389539b5f780ed873f07123754bcbe7ddb92f692cd27/sand-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9ad7272b8c35018910f64a9728d925a2", "sha256": "422b5bbcdfcca5eef4ebcde47f3e56d42e3ad36a430dbef0a6e5983dbab9e313" }, "downloads": -1, "filename": "sand-0.1.2.tar.gz", "has_sig": true, "md5_digest": "9ad7272b8c35018910f64a9728d925a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7659, "upload_time": "2017-08-25T22:38:09", "url": "https://files.pythonhosted.org/packages/cf/2f/b162940b1ad2ef20805852d29d23e3805195fb9c583d01d6061e4510cd44/sand-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "5ac8a4083c8a03ad39258894c751428f", "sha256": "6c4174f11ab3c9c39490f46216a43eaa108e8c0c198617bdb38471968c1e6ec9" }, "downloads": -1, "filename": "sand-0.2.0-py3-none-any.whl", "has_sig": true, "md5_digest": "5ac8a4083c8a03ad39258894c751428f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15704, "upload_time": "2019-03-06T19:39:23", "url": "https://files.pythonhosted.org/packages/ea/89/71aeb8c4608a51915a7650f34119ab80e8c0f0d01f836141b9f3ab5e2d7c/sand-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d6a308926b700602e9af5b27d98e00ff", "sha256": "68bd4863947c14e2d626ebd962723413fe083b9177ce8554077425005a51e3bf" }, "downloads": -1, "filename": "sand-0.2.0.tar.gz", "has_sig": true, "md5_digest": "d6a308926b700602e9af5b27d98e00ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10859, "upload_time": "2019-03-06T19:39:30", "url": "https://files.pythonhosted.org/packages/3d/12/ac9e4fcac97091e0731c03c665c5e64ba62c6dd0d02bf76e4073226609ab/sand-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5ac8a4083c8a03ad39258894c751428f", "sha256": "6c4174f11ab3c9c39490f46216a43eaa108e8c0c198617bdb38471968c1e6ec9" }, "downloads": -1, "filename": "sand-0.2.0-py3-none-any.whl", "has_sig": true, "md5_digest": "5ac8a4083c8a03ad39258894c751428f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15704, "upload_time": "2019-03-06T19:39:23", "url": "https://files.pythonhosted.org/packages/ea/89/71aeb8c4608a51915a7650f34119ab80e8c0f0d01f836141b9f3ab5e2d7c/sand-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d6a308926b700602e9af5b27d98e00ff", "sha256": "68bd4863947c14e2d626ebd962723413fe083b9177ce8554077425005a51e3bf" }, "downloads": -1, "filename": "sand-0.2.0.tar.gz", "has_sig": true, "md5_digest": "d6a308926b700602e9af5b27d98e00ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10859, "upload_time": "2019-03-06T19:39:30", "url": "https://files.pythonhosted.org/packages/3d/12/ac9e4fcac97091e0731c03c665c5e64ba62c6dd0d02bf76e4073226609ab/sand-0.2.0.tar.gz" } ] }