{
"info": {
"author": "Pablo Martin",
"author_email": "goinnn@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 4 - Beta",
"Framework :: Django",
"License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)"
],
"description": ".. contents::\n\n====================\nDjango detect cyclic\n====================\n\nApplication to detect cyclic imports.\nWith this application you can analyze the dependence of your applications\n\n.. image:: https://github.com/goinnn/django-detect-cyclic/raw/master/examples/example-only-cyclic-exclude.png\n\nRequeriments\n============\n\n * `python-graph-core `_ (1.8.1)\n * `python-graph-dot `_ (1.8.1)\n * `pysmell `_ (0.7.3)\n * `pyplete `_ (0.0.2)\n * `django-form-admin `_ (0.3.2) (optional)\n * `jquery.graphviz `_ (fronzen into the app, only to svg-js format)\n\n\nInstallation\n============\n\nIn your settings.py:\n\n::\n\n INSTALLED_APPS = (\n\n 'django_detect_cyclic',\n\n )\n\nIn your urls.py:\n\n::\n\n urlpatterns = patterns('',\n\n (r'^admin/detect_cyclic/', include('django_detect_cyclic.urls')),\n\n )\n\nMake sure that you have in your urls jsi18nurl:\n\n::\n\n js_info_dict = {\n 'packages': ('your.app.package',),\n }\n\n urlpatterns = patterns('',\n\n url(r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),\n\n )\n\n\n\nCaption\n=======\n\n * The nodes are applications, or (if you use the option \u201cShow modules\u201d) modules in the applications\n * One edge means that the source node imports from the destination node\n * Every edge of a cycle has the same background color and the label contains \u201cCycle X\u201d\n * The labels of the edges contain the weight in parentheses\n * If you use the \u201cShow modules\u201d option, each node will have a background color. If two nodes are from the same application, they will have the same background color.\n * If an edge is dotted, every import in the source happens at runtime, whithin the body of a function or method\n\n\nPossibles Errors\n================\n\nIt is possible that the next links are interested if you can some problem:\n\n * http://code.google.com/p/python-graph/issues/detail?id=15\n * http://stackoverflow.com/questions/2133767/using-python-graphviz-importerror-no-module-named-gv\n\nIt is possible that you have to remove the pyc files:\n\n::\n\n find -iname \"*.pyc\" -exec rm \"{}\" \\;\n\nUsage \n=====\n\nYou have two ways, you can run a command:\n\n::\n\n python manage.py detect_cyclic\n python manage.py detect_cyclic --include-apps=\"app1,app6,app7,app11\" --file-name=\"my_graph.svg\" --exclude-packages=\"migrations,templatetags\" --verbosity=2\n python manage.py detect_cyclic --include-apps=\"app1,app6\" --show-modules --file-name=\"my_graph.svg\" --exclude-packages=\"migrations\" --verbosity=2\n python manage.py detect_cyclic --include-apps=\"app1,app6\" --only-cyclic --file-name=\"my_graph.svg\" --exclude-packages=\"migrations\" --verbosity=2\n\nOr you can access via web to the wizard:\n\n::\n\n /admin/detect_cyclic/\n\n\nExamples\n========\n\nTo see more examples click in `examples `_\n\n\nReleases\n========\n\n0.0.9 (2012-09-02)\n-------------------\n\n* Fix some errors\n* Adapt the code to the last version of pyplete. Now the detect the relative imports, something like this:\n\n::\n\n from models import MyModel # from the same directory of the models.py\n\nAnd this:\n\n::\n\n from .models import MyModel # from the same directory of the models.py\n\n0.0.8 (2012-08-09)\n------------------\n\n * Loaded a templatetag, and with this you get a error\n * Now works the js in Django 1.4\n * Fix a error when you had some application repeat in your settings (INSTALLED_APPS)\n * Fix a csr error when you click in download the graph and the format is svg-js\n\n\n0.0.7 (2012-07-25)\n------------------\n\n * Now jquery.graphviz has a stable version (0.0.1, Tested in Chrome, FireFox, Safari and IE9)\n * Detail to the js\n\n0.0.6 (2012-07-23)\n------------------\n\n * Format svg-js (beta). Change dracula js to `jquery.graphviz.js `_ (Tested in Chrome and FireFox)\n\n\n0.0.5 (2012-07-13)\n------------------\n\n * Change force-colors option to use-colors option\n * Change distribution of the wizard\n * Usability\n\n0.0.4 (2012-07-12)\n------------------\n\n * Wizard to create graphs (/admin/detect_cyclic/)\n * Format svg-js (alpha)\n * Fix a little errors\n\n0.0.3 (2012-07-10)\n------------------\n\n * Add the option \"scope-global\", this ignore the imports into the functions\n * Now if the verbosity option is 1, only show the errors\n * Now when a node (with show-modules) has the same name that a application, the node name will be app_name.__init__\n * Now the label of the cycle edges has the same color that the edge\n * Now disabled the colors of the edge and nodes when the format is not svg. But it is possible enabled if you use the \"force color\" option\n * Optimizations\n * New option \"dotted-scope-local\". If the all import between two nodes are into a function the edge will be dotted\n * Fixed some little errors\n\n0.0.2 (2012-07-09)\n------------------\n\n * Documentation and examples\n\n0.0.1 (2012-07-09)\n------------------\n\n * Initial release.",
"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/goinnn/django-detect-cyclic",
"keywords": "django,imports,cycle,cyclic imports,analyze code",
"license": "LGPL 3",
"maintainer": null,
"maintainer_email": null,
"name": "django-detect-cyclic",
"package_url": "https://pypi.org/project/django-detect-cyclic/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/django-detect-cyclic/",
"project_urls": {
"Download": "UNKNOWN",
"Homepage": "https://github.com/goinnn/django-detect-cyclic"
},
"release_url": "https://pypi.org/project/django-detect-cyclic/0.0.9/",
"requires_dist": null,
"requires_python": null,
"summary": "Django application to detect cyclic imports",
"version": "0.0.9"
},
"last_serial": 789462,
"releases": {
"0.0.1": [
{
"comment_text": "",
"digests": {
"md5": "8689af25b81ef57825768adb43bfaf28",
"sha256": "6abb62fa02f4b94efb55affa44619aa120b5fcd629c82c133c8488c10a150f85"
},
"downloads": -1,
"filename": "django-detect-cyclic-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "8689af25b81ef57825768adb43bfaf28",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5529,
"upload_time": "2012-07-09T12:21:34",
"url": "https://files.pythonhosted.org/packages/11/d4/627e0c321abd13ccf784c754c368800b931cdbab77c540040f4825c6d9cf/django-detect-cyclic-0.0.1.tar.gz"
}
],
"0.0.2": [
{
"comment_text": "",
"digests": {
"md5": "5c7ab6e44fcc31a48a7de41538b488d9",
"sha256": "3399713c325f92eb973a502dd94c6616aba198b80dc59436875cd5b824da6a65"
},
"downloads": -1,
"filename": "django-detect-cyclic-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "5c7ab6e44fcc31a48a7de41538b488d9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5856,
"upload_time": "2012-07-09T13:41:46",
"url": "https://files.pythonhosted.org/packages/fe/ca/4bcb3cafeaa46f4e992e6e3be48f93904cb9052ddf3ad47e7e7ca64e9527/django-detect-cyclic-0.0.2.tar.gz"
}
],
"0.0.3": [
{
"comment_text": "",
"digests": {
"md5": "81cc134e924175f21628dd004a7549ba",
"sha256": "27c78856916d40a44f9d518baa69ef09364f75a441761ca196455c2d703fe0f3"
},
"downloads": -1,
"filename": "django-detect-cyclic-0.0.3.tar.gz",
"has_sig": false,
"md5_digest": "81cc134e924175f21628dd004a7549ba",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7800,
"upload_time": "2012-07-10T17:19:22",
"url": "https://files.pythonhosted.org/packages/8c/7e/bf70c9bfec97c1bd6c81001883ad64c0c1c92818431c3f3c41da8851c171/django-detect-cyclic-0.0.3.tar.gz"
}
],
"0.0.4": [
{
"comment_text": "",
"digests": {
"md5": "96759bf5aac3b7e790531da042850b14",
"sha256": "0ee04e0028f8b500499de0a1c53c55488a2b0c717943877a346c0f05fafa2fca"
},
"downloads": -1,
"filename": "django-detect-cyclic-0.0.4.tar.gz",
"has_sig": false,
"md5_digest": "96759bf5aac3b7e790531da042850b14",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 76557,
"upload_time": "2012-07-12T17:22:41",
"url": "https://files.pythonhosted.org/packages/81/dd/805ebfff6cc3aa170968b3da746d5c1d27ed61172ad9182c2bfad8441969/django-detect-cyclic-0.0.4.tar.gz"
}
],
"0.0.5": [
{
"comment_text": "",
"digests": {
"md5": "1936a973de58fd4e09afa6a9128bbae7",
"sha256": "47e4784957aade9d79af02aa0bc37a2650f9b776aacefb0b85a5b2eab9bc68ed"
},
"downloads": -1,
"filename": "django-detect-cyclic-0.0.5.tar.gz",
"has_sig": false,
"md5_digest": "1936a973de58fd4e09afa6a9128bbae7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 76740,
"upload_time": "2012-07-13T12:58:41",
"url": "https://files.pythonhosted.org/packages/80/af/28e15f83abd399f54f6169c4b276ae20e8f4d8dabd0cfe886fc31be2de33/django-detect-cyclic-0.0.5.tar.gz"
}
],
"0.0.6": [
{
"comment_text": "",
"digests": {
"md5": "048d18a3955fe3db51746a560d48be67",
"sha256": "dd7473537fc4c796aa59b66858d78d5741914e99d86cdcf255461a80b133351a"
},
"downloads": -1,
"filename": "django-detect-cyclic-0.0.6.tar.gz",
"has_sig": false,
"md5_digest": "048d18a3955fe3db51746a560d48be67",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 74693,
"upload_time": "2012-07-23T18:27:01",
"url": "https://files.pythonhosted.org/packages/9b/bc/a84ac82549b349dc7be3c97779374b105fb9b1ca3e3cd9220e495c5b0f6f/django-detect-cyclic-0.0.6.tar.gz"
}
],
"0.0.7": [
{
"comment_text": "",
"digests": {
"md5": "9a935d84d103565d443be8453817548c",
"sha256": "db55e649c7b5eaaf3c9ae7479453f45e246148682a453b3c5f3c76dacf2237bb"
},
"downloads": -1,
"filename": "django-detect-cyclic-0.0.7.tar.gz",
"has_sig": false,
"md5_digest": "9a935d84d103565d443be8453817548c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 74754,
"upload_time": "2012-07-25T17:39:29",
"url": "https://files.pythonhosted.org/packages/e3/16/4d359715b4ed0116bf6b169a2adc519fadc58b1ffecaf1319bbac93e5ffb/django-detect-cyclic-0.0.7.tar.gz"
}
],
"0.0.8": [
{
"comment_text": "",
"digests": {
"md5": "2484a7074b315520cfbdfa250304ea4e",
"sha256": "70baf989422a02efa49aeb192d43a64564879d555be57aee6cc83c8d409a27a1"
},
"downloads": -1,
"filename": "django-detect-cyclic-0.0.8.tar.gz",
"has_sig": false,
"md5_digest": "2484a7074b315520cfbdfa250304ea4e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 75136,
"upload_time": "2012-08-09T10:55:36",
"url": "https://files.pythonhosted.org/packages/a4/cf/8e10b44da7c4cc90e765bf5a2b2d4b68d0fce5b6ecd141f67534de643c56/django-detect-cyclic-0.0.8.tar.gz"
}
],
"0.0.9": [
{
"comment_text": "",
"digests": {
"md5": "c87b0aa5362044f083ba7906b471f546",
"sha256": "8477ad109c84ffa63bad99dcaef0ed9f0f69a6e0fa33ef19813513746236fca1"
},
"downloads": -1,
"filename": "django-detect-cyclic-0.0.9.tar.gz",
"has_sig": false,
"md5_digest": "c87b0aa5362044f083ba7906b471f546",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 75922,
"upload_time": "2012-09-02T21:26:03",
"url": "https://files.pythonhosted.org/packages/a6/86/ae9cfa70bcdc18be12688440499f01943933fe1063c77e63c23ce4046627/django-detect-cyclic-0.0.9.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "c87b0aa5362044f083ba7906b471f546",
"sha256": "8477ad109c84ffa63bad99dcaef0ed9f0f69a6e0fa33ef19813513746236fca1"
},
"downloads": -1,
"filename": "django-detect-cyclic-0.0.9.tar.gz",
"has_sig": false,
"md5_digest": "c87b0aa5362044f083ba7906b471f546",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 75922,
"upload_time": "2012-09-02T21:26:03",
"url": "https://files.pythonhosted.org/packages/a6/86/ae9cfa70bcdc18be12688440499f01943933fe1063c77e63c23ce4046627/django-detect-cyclic-0.0.9.tar.gz"
}
]
}