{ "info": { "author": "Maik Riechert", "author_email": "maik.riechert@arcor.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3" ], "description": "crowfood\n========\n\n.. image:: https://travis-ci.org/neothemachine/crowfood.svg?branch=master\n :target: https://travis-ci.org/neothemachine/crowfood\n\nCreates dependency files from C/C++ code for use with \n`snakefood `_.\nThis allows you to easily create dependency graphs on file/module/folder/etc. level from your C/C++ codebase.\n\nInstallation\n------------\n\nYou must have Python installed on your system.\n\nIf you don't have snakefood installed yet, install it with ``pip install snakefood`` first.\n\nNow install crowfood with ``pip install crowfood``.\n\nHow to create dependency graphs\n-------------------------------\nGetting started\n'''''''''''''''\n\nLet's assume `/libab` is the root path of your C/C++ project which contains:\n\n.. code-block::\n\n A.c\n B.c\n ab/\n A.h\n B.h\n\nWe'll create a simple file-based dependency graph by piping crowfood's \ndependency information to snakefood's ``sfood-graph`` tool to create a graph in DOT format\nwhich is then visualized with ``dot`` itself and saved to a pdf file:\n\n.. code-block::\n\n cfood /libab | sfood-graph | dot -Tpdf > simple.pdf\n \ncrowfood can handle many folder layouts and will output warnings if it can't find ``#include``'s.\nRun ``cfood --help`` to see all options regarding folder layout and include paths.\n\n*TIP*: As a quick fix or to get started with bigger projects, \nuse ``--fuzzy`` to let crowfood search for ``#include`` files purely by their filename\nand ignore folder structure.\n\nGrouping/Clustering\n'''''''''''''''''''\n\nDepending on how big your project is it may make sense to group files together in some way.\n\nOne way is to group matching source and header files as \"modules\":\n\n.. code-block::\n\n cfood /libab --merge module | sfood-graph | dot -Tpdf > modules.pdf\n\nAnother way is to define clusters in terms of path prefixes.\nFirst, create a file ``clusters`` which contains the prefixes:\n\n.. code-block::\n\n componenta\n componentb/partc\n \nAnd then run:\n\n.. code-block::\n\n cfood /bigproject | sfood-cluster -f clusters | sfood-graph | dot -Tpdf > clustered.pdf\n\nHave a look at the `snakefood docs `_\nto get some more inspiration on how to transform the raw dependency output from crowfood\ninto something that makes sense for your project.\nAlways remember that the dependency output is line-based and very easy to handle with\nstandard unix tools, e.g. grep for filtering.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/neothemachine/crowfood", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "crowfood", "package_url": "https://pypi.org/project/crowfood/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/crowfood/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/neothemachine/crowfood" }, "release_url": "https://pypi.org/project/crowfood/0.4.1/", "requires_dist": null, "requires_python": null, "summary": "C/C++ dependency graphing using snakefood", "version": "0.4.1" }, "last_serial": 2217723, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "c812842aaf3d27d253306dfc8296ce17", "sha256": "0764393d5c340844ec135433b975ce3f0f76faad74eca34dabb1d18f55a3d782" }, "downloads": -1, "filename": "crowfood-0.1.0.tar.gz", "has_sig": false, "md5_digest": "c812842aaf3d27d253306dfc8296ce17", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5565, "upload_time": "2015-02-08T15:12:26", "url": "https://files.pythonhosted.org/packages/b2/38/7aea1559c84f81297d0e12a4280a7d007846112d5892f56ffe4e53fb459a/crowfood-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "423010bc1f5bdf7fea3ca40c91abcc40", "sha256": "ba05921e944cc7e5b2b83d745a2e3dc35bbe511392ea3bc38c6938caf0775d35" }, "downloads": -1, "filename": "crowfood-0.2.0.tar.gz", "has_sig": false, "md5_digest": "423010bc1f5bdf7fea3ca40c91abcc40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5820, "upload_time": "2015-02-08T16:15:08", "url": "https://files.pythonhosted.org/packages/14/0f/cc41de85d61d7fb098f57185fe48f0d5c027750f0172abf74b152a4f5e89/crowfood-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "ace2d714d7c7bde06eacd4be45f15151", "sha256": "f0228c5fb19f77422be8073c2cdd9347f0640f5ae2da03a1c25d7ba3c6d1ca19" }, "downloads": -1, "filename": "crowfood-0.2.1.tar.gz", "has_sig": false, "md5_digest": "ace2d714d7c7bde06eacd4be45f15151", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5832, "upload_time": "2015-02-08T16:57:41", "url": "https://files.pythonhosted.org/packages/7e/05/e89d30fcb541861d9e9a3a52425f21e3ff41050c809bacae1861c8693900/crowfood-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "fb1899fee7c10d925f76c2416db76f54", "sha256": "d3a74937e30e80b854bd22d0fa9fed90c8d89dea7f681335cf09987d129e291f" }, "downloads": -1, "filename": "crowfood-0.3.0.tar.gz", "has_sig": false, "md5_digest": "fb1899fee7c10d925f76c2416db76f54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6009, "upload_time": "2015-02-08T18:34:26", "url": "https://files.pythonhosted.org/packages/1b/f1/650873aaaea0a802428e0a9ea83a0e1eb46b2e60b42373c29da5effe473f/crowfood-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "28ccc89623919274276b681bc70434fe", "sha256": "01e8fc561d11916173c4c7c18be2a1e8a1bd364cdfdba3a4c2bd77e989702721" }, "downloads": -1, "filename": "crowfood-0.4.0.tar.gz", "has_sig": false, "md5_digest": "28ccc89623919274276b681bc70434fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7740, "upload_time": "2015-02-09T20:42:10", "url": "https://files.pythonhosted.org/packages/91/b8/d28349a135de9cbd84be78fbb6b8d9b3fdc3822218957ebe4fe1982e5304/crowfood-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "975720cde86c10b15e694fd3bc7e01d9", "sha256": "486969bb2519329355d758dbdace95a7011d4ce1a17c5c8956a6722977076fa4" }, "downloads": -1, "filename": "crowfood-0.4.1.tar.gz", "has_sig": false, "md5_digest": "975720cde86c10b15e694fd3bc7e01d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10066, "upload_time": "2015-03-15T21:14:59", "url": "https://files.pythonhosted.org/packages/de/ae/0559cf1fa3a340bced3544b9be8c05fcb4be7fafac636f921e9c34289e71/crowfood-0.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "975720cde86c10b15e694fd3bc7e01d9", "sha256": "486969bb2519329355d758dbdace95a7011d4ce1a17c5c8956a6722977076fa4" }, "downloads": -1, "filename": "crowfood-0.4.1.tar.gz", "has_sig": false, "md5_digest": "975720cde86c10b15e694fd3bc7e01d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10066, "upload_time": "2015-03-15T21:14:59", "url": "https://files.pythonhosted.org/packages/de/ae/0559cf1fa3a340bced3544b9be8c05fcb4be7fafac636f921e9c34289e71/crowfood-0.4.1.tar.gz" } ] }