Django应用程序用于检测循环导入
项目描述
Django detect cyclic
用于检测循环导入的应用程序。使用此应用程序,您可以分析您应用程序的依赖关系
需求
python-graph-core (1.8.1)
python-graph-dot (1.8.1)
pysmell (0.7.3)
pyplete (0.0.2)
django-form-admin (0.3.2) (可选)
jquery.graphviz (冻结到应用程序中,仅用于svg-js格式)
安装
在您的settings.py中
INSTALLED_APPS = ( 'django_detect_cyclic', )
在您的urls.py中
urlpatterns = patterns('', (r'^admin/detect_cyclic/', include('django_detect_cyclic.urls')), )
确保您的urls中有jsi18nurl
js_info_dict = { 'packages': ('your.app.package',), } urlpatterns = patterns('', url(r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict), )
标题
节点是应用程序,或者(如果您使用“显示模块”选项),是应用程序中的模块
一条边表示源节点从目标节点导入
循环的每条边都有相同的背景颜色,标签包含“循环X”
边的标签包含括号内的权重
如果您使用“显示模块”选项,每个节点都将有一个背景颜色。如果两个节点来自同一应用程序,它们将具有相同的背景颜色。
如果边是虚线,则源节点中的每个导入都将在函数或方法的主体中运行时发生
可能的错误
如果您遇到某些问题,以下链接可能对您有所帮助
您可能需要删除pyc文件
find -iname "*.pyc" -exec rm "{}" \;
用法
您有两种方法,可以运行一个命令
python manage.py detect_cyclic python manage.py detect_cyclic --include-apps="app1,app6,app7,app11" --file-name="my_graph.svg" --exclude-packages="migrations,templatetags" --verbosity=2 python manage.py detect_cyclic --include-apps="app1,app6" --show-modules --file-name="my_graph.svg" --exclude-packages="migrations" --verbosity=2 python manage.py detect_cyclic --include-apps="app1,app6" --only-cyclic --file-name="my_graph.svg" --exclude-packages="migrations" --verbosity=2
或者您可以通过网页访问向导
/admin/detect_cyclic/
示例
要查看更多示例,请点击示例
版本
0.0.9 (2012-09-02)
修复一些错误
将代码适配到pyplete的最新版本。现在可以检测相对导入,例如这样
from models import MyModel # from the same directory of the models.py
还有这样
from .models import MyModel # from the same directory of the models.py
0.0.8 (2012-08-09)
加载了一个模板标签,并且因此出现错误
现在Django 1.4中的js可以正常工作
修复了当您在设置(INSTALLED_APPS)中重复某些应用程序时的错误
修复了当您点击下载图表且格式为svg-js时出现的csr错误
0.0.7 (2012-07-25)
现在jquery.graphviz有一个稳定版本(0.0.1,已在Chrome、FireFox、Safari和IE9上测试)
对js进行详细说明
0.0.6 (2012-07-23)
格式svg-js(beta)。将dracula js更改为jquery.graphviz.js(已在Chrome和FireFox上测试)
0.0.5 (2012-07-13)
将force-colors选项更改为use-colors选项
更改向导的分布
可用性
0.0.4 (2012-07-12)
用于创建图表的向导(/admin/detect_cyclic/)
格式svg-js(alpha)
修复了一些小错误
0.0.3 (2012-07-10)
添加了“scope-global”选项,该选项忽略函数中的导入
现在如果verbosity选项为1,则仅显示错误
现在如果一个节点(具有show-modules)的名称与一个应用程序相同,则节点名称将是app_name.__init__
现在循环边的标签颜色与边的颜色相同
现在当格式不是svg时禁用边和节点的颜色。但如果你使用“强制颜色”选项,则可以启用
优化
新选项“dotted-scope-local”。如果两个节点之间的所有导入都在一个函数中,则边将是虚线
修复了一些小错误
0.0.2 (2012-07-09)
文档和示例
0.0.1 (2012-07-09)
初始版本。
项目详情
django-detect-cyclic-0.0.9.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 8477ad109c84ffa63bad99dcaef0ed9f0f69a6e0fa33ef19813513746236fca1 |
|
MD5 | c87b0aa5362044f083ba7906b471f546 |
|
BLAKE2b-256 | a686ae9cfa70bcdc18be12688440499f01943933fe1063c77e63c23ce4046627 |