grandalf


Namegrandalf JSON
Version 0.8 PyPI version JSON
download
home_pagehttps://github.com/bdcht/grandalf
SummaryGraph and drawing algorithms framework
upload_time2023-01-10 15:16:21
maintainer
docs_urlNone
authorAxel Tillequin
requires_python
licenseGPLv2 | EPLv1
keywords graph drawings graphviz networkx
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI
coveralls test coverage No coveralls.
            
Grandalf is a python package made for experimentations with graphs drawing
algorithms. It is written in pure python, and currently implements two layouts:
the Sugiyama hierarchical layout and the force-driven or energy minimization approach.
While not as fast or featured as *graphviz* or other libraries like *OGDF* (C++),
it provides a way to walk and draw graphs
no larger than thousands of nodes, while keeping the source code simple enough
to tweak and hack any part of it for experimental purpose.
With a total of about 1500 lines of python, the code involved in
drawing the Sugiyama (dot) layout fits in less than 600 lines.
The energy minimization approach is comprised of only 250 lines!

Grandalf does only 2 not-so-simple things:

- computing the nodes (x,y) coordinates
  (based on provided nodes dimensions, and a chosen layout)
- routing the edges with lines or nurbs

It doesn't depend on any GTK/Qt/whatever graphics toolkit.
This means that it will help you find *where* to
draw things like nodes and edges, but it's up to you to actually draw things with
your favorite toolkit.



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/bdcht/grandalf",
    "name": "grandalf",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "graph drawings graphviz networkx",
    "author": "Axel Tillequin",
    "author_email": "bdcht3@gmail.com",
    "download_url": "",
    "platform": null,
    "description": "\nGrandalf is a python package made for experimentations with graphs drawing\nalgorithms. It is written in pure python, and currently implements two layouts:\nthe Sugiyama hierarchical layout and the force-driven or energy minimization approach.\nWhile not as fast or featured as *graphviz* or other libraries like *OGDF* (C++),\nit provides a way to walk and draw graphs\nno larger than thousands of nodes, while keeping the source code simple enough\nto 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 2 not-so-simple things:\n\n- computing the nodes (x,y) coordinates\n  (based on provided nodes dimensions, and a 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 toolkit.\n\n\n",
    "bugtrack_url": null,
    "license": "GPLv2 | EPLv1",
    "summary": "Graph and drawing algorithms framework",
    "version": "0.8",
    "split_keywords": [
        "graph",
        "drawings",
        "graphviz",
        "networkx"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "af1f47b3cebb3012aac08b2ecb0f70722533dfa068b55937481f2efc4f5ae280",
                "md5": "b2d7b445a5efe97c9e2d87c79e3e3ce9",
                "sha256": "e62f76c6abadf74e9489bf6a5db0afce544a5e3e543708cf52e4707fd0a1a4f3"
            },
            "downloads": -1,
            "filename": "grandalf-0.8-py3.8.egg",
            "has_sig": false,
            "md5_digest": "b2d7b445a5efe97c9e2d87c79e3e3ce9",
            "packagetype": "bdist_egg",
            "python_version": "0.8",
            "requires_python": null,
            "size": 74256,
            "upload_time": "2023-01-10T15:16:21",
            "upload_time_iso_8601": "2023-01-10T15:16:21.348693Z",
            "url": "https://files.pythonhosted.org/packages/af/1f/47b3cebb3012aac08b2ecb0f70722533dfa068b55937481f2efc4f5ae280/grandalf-0.8-py3.8.egg",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "613044c7eb0a952478dbb5f2f67df806686d6a7e4b19f6204e091c4f49dc7c69",
                "md5": "6e5a3801884e36b0b8a7b5621944b9b9",
                "sha256": "793ca254442f4a79252ea9ff1ab998e852c1e071b863593e5383afee906b4185"
            },
            "downloads": -1,
            "filename": "grandalf-0.8-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6e5a3801884e36b0b8a7b5621944b9b9",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 41802,
            "upload_time": "2023-01-10T15:16:19",
            "upload_time_iso_8601": "2023-01-10T15:16:19.753388Z",
            "url": "https://files.pythonhosted.org/packages/61/30/44c7eb0a952478dbb5f2f67df806686d6a7e4b19f6204e091c4f49dc7c69/grandalf-0.8-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-01-10 15:16:21",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "bdcht",
    "github_project": "grandalf",
    "travis_ci": true,
    "coveralls": false,
    "github_actions": false,
    "lcname": "grandalf"
}
        
Elapsed time: 0.04362s