{ "info": { "author": "Axel Tillequin", "author_email": "bdcht3@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3" ], "description": "Grandalf is a python package made for experimentations with graphs and drawing\nalgorithms. It is written in pure python, and implements two layouts: the Sugiyama\nhierarchical layout and the force-driven or energy minimization approach.\nWhile not as fast or featured as *graphviz* or other libraries like *OGDF* (C++),\n*GDToolkit* (C), *tulip* (Java), it provides a way to draw and navigate graphs\nno larger than thousands of nodes, while keeping the source code simple enough\nto make it possible to easily tweak and hack any part of it for experimental purpose.\nWith a total of about 1500 lines of python, the code involved in\ndrawing the Sugiyama (dot) layout fits in less than 600 lines.\nThe energy minimization approach is comprised of only 250 lines!\n\nGrandalf does only two not-so-simple things:\n\n- computing the nodes (x,y) coordinates (based on provided nodes dimensions, and a\n chosen layout)\n- routing the edges with lines or nurbs\n\nIt doesn't depend on any GTK/Qt/whatever graphics toolkit.\nThis means that it will help you find *where* to\ndraw things like nodes and edges, but it's up to you to actually draw things with\nyour favorite graphics toolkit.\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/bdcht/grandalf", "keywords": "graphviz networkx development", "license": "GPLv2 | EPLv1", "maintainer": "", "maintainer_email": "", "name": "grandalf", "package_url": "https://pypi.org/project/grandalf/", "platform": "", "project_url": "https://pypi.org/project/grandalf/", "project_urls": { "Homepage": "https://github.com/bdcht/grandalf" }, "release_url": "https://pypi.org/project/grandalf/0.6/", "requires_dist": [ "pyparsing", "future", "numpy; extra == 'full'", "ply; extra == 'full'" ], "requires_python": "", "summary": "Graph and drawing algorithms framework", "version": "0.6" }, "last_serial": 4197922, "releases": { "0.6": [ { "comment_text": "", "digests": { "md5": "15842ebbf55aa770f9534a353d358cf5", "sha256": "51e34e141be2dd19bca74448918ebce88c1cd95498842a13d191df0a52a3955a" }, "downloads": -1, "filename": "grandalf-0.6-py2.7.egg", "has_sig": false, "md5_digest": "15842ebbf55aa770f9534a353d358cf5", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 72572, "upload_time": "2018-08-22T22:05:57", "url": "https://files.pythonhosted.org/packages/2c/55/764cc520804772c5eeb8bfeb0e1ced0bc24ff4453fc335a4ec6d5ccd2ff4/grandalf-0.6-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "89afaa0dc9ca9bd29c2611c1ef519051", "sha256": "d671fdfa5310f2639538b6c858c4b1aef7755535ccfcb9c1cdf0d29171326add" }, "downloads": -1, "filename": "grandalf-0.6-py2-none-any.whl", "has_sig": false, "md5_digest": "89afaa0dc9ca9bd29c2611c1ef519051", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 31208, "upload_time": "2018-08-22T22:05:53", "url": "https://files.pythonhosted.org/packages/0e/5a/129a9857f4970e3a543a7efe63ae1c6bad8d87f13162bdd5aa263636b539/grandalf-0.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d4ef3754f366c0f87254b5858d3792f1", "sha256": "aa985ba9992aba30e9c09d3cd9574054268b74ff2d34ced68aa9e7ca698724b0" }, "downloads": -1, "filename": "grandalf-0.6-py3.5.egg", "has_sig": false, "md5_digest": "d4ef3754f366c0f87254b5858d3792f1", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 75611, "upload_time": "2018-08-22T22:05:59", "url": "https://files.pythonhosted.org/packages/93/f2/ef9768e96520d7edafc9cf28e6b98ae753bb138c23815dad3f1715e4d251/grandalf-0.6-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "3ee10221ac33b70c677ce75475df7c2c", "sha256": "357946e2fd35fc92c327cf3c091acc5aef93e0c74c60fed0a727d827ab3b1272" }, "downloads": -1, "filename": "grandalf-0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "3ee10221ac33b70c677ce75475df7c2c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 31225, "upload_time": "2018-08-22T22:05:55", "url": "https://files.pythonhosted.org/packages/54/f4/a0b6a4c6d616d0a838b2dd0bc7bf74d73e8e8cdc880bab7fdb5fdc3d0e06/grandalf-0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "82ea89200bef56c0593f599940bf1e88", "sha256": "7471db231bd7338bc0035b16edf0dc0c900c82d23060f4b4d0c4304caedda6e4" }, "downloads": -1, "filename": "grandalf-0.6.tar.gz", "has_sig": false, "md5_digest": "82ea89200bef56c0593f599940bf1e88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36699, "upload_time": "2018-08-22T22:06:01", "url": "https://files.pythonhosted.org/packages/a2/3f/df0618a962a1744e932f2a4547cb786f5a93df7e2476c99e7f7dbd68039f/grandalf-0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "15842ebbf55aa770f9534a353d358cf5", "sha256": "51e34e141be2dd19bca74448918ebce88c1cd95498842a13d191df0a52a3955a" }, "downloads": -1, "filename": "grandalf-0.6-py2.7.egg", "has_sig": false, "md5_digest": "15842ebbf55aa770f9534a353d358cf5", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 72572, "upload_time": "2018-08-22T22:05:57", "url": "https://files.pythonhosted.org/packages/2c/55/764cc520804772c5eeb8bfeb0e1ced0bc24ff4453fc335a4ec6d5ccd2ff4/grandalf-0.6-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "89afaa0dc9ca9bd29c2611c1ef519051", "sha256": "d671fdfa5310f2639538b6c858c4b1aef7755535ccfcb9c1cdf0d29171326add" }, "downloads": -1, "filename": "grandalf-0.6-py2-none-any.whl", "has_sig": false, "md5_digest": "89afaa0dc9ca9bd29c2611c1ef519051", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 31208, "upload_time": "2018-08-22T22:05:53", "url": "https://files.pythonhosted.org/packages/0e/5a/129a9857f4970e3a543a7efe63ae1c6bad8d87f13162bdd5aa263636b539/grandalf-0.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d4ef3754f366c0f87254b5858d3792f1", "sha256": "aa985ba9992aba30e9c09d3cd9574054268b74ff2d34ced68aa9e7ca698724b0" }, "downloads": -1, "filename": "grandalf-0.6-py3.5.egg", "has_sig": false, "md5_digest": "d4ef3754f366c0f87254b5858d3792f1", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 75611, "upload_time": "2018-08-22T22:05:59", "url": "https://files.pythonhosted.org/packages/93/f2/ef9768e96520d7edafc9cf28e6b98ae753bb138c23815dad3f1715e4d251/grandalf-0.6-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "3ee10221ac33b70c677ce75475df7c2c", "sha256": "357946e2fd35fc92c327cf3c091acc5aef93e0c74c60fed0a727d827ab3b1272" }, "downloads": -1, "filename": "grandalf-0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "3ee10221ac33b70c677ce75475df7c2c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 31225, "upload_time": "2018-08-22T22:05:55", "url": "https://files.pythonhosted.org/packages/54/f4/a0b6a4c6d616d0a838b2dd0bc7bf74d73e8e8cdc880bab7fdb5fdc3d0e06/grandalf-0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "82ea89200bef56c0593f599940bf1e88", "sha256": "7471db231bd7338bc0035b16edf0dc0c900c82d23060f4b4d0c4304caedda6e4" }, "downloads": -1, "filename": "grandalf-0.6.tar.gz", "has_sig": false, "md5_digest": "82ea89200bef56c0593f599940bf1e88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36699, "upload_time": "2018-08-22T22:06:01", "url": "https://files.pythonhosted.org/packages/a2/3f/df0618a962a1744e932f2a4547cb786f5a93df7e2476c99e7f7dbd68039f/grandalf-0.6.tar.gz" } ] }