计算活动python鸡蛋之间的依赖关系图。

tt.eggdeps的Python项目详细描述


tt.eggdeps

eggdeps工具报告工作集中的鸡蛋之间的依赖关系。 递归地考虑依赖关系,创建有向图。此图 以纯文本或作为 绘图工具。

用法

eggdeps[选项][规格]

规范必须遵循用于指定 由 pkg_resources定义的python包

  • 如果给出了任何规范,相应的分布将 在依赖关系图的根上,该图将被限制为 他们的依赖关系。
  • 如果没有给出规范,则图表将映射可能的依赖关系 在工作环境中所有的蛋和它的根之间 不依赖于任何其他发行版的发行版。

选项

<表> < COL/> < COL/> <正文> -h --帮助 显示此帮助消息并退出 -i 忽略 --ignore= 忽略 要忽略的项目名称 -i 重新忽略 --重新忽略重新忽略 用于忽略项目名称的正则表达式 -e 死端 --死端死端 要忽略其依赖关系的项目的名称 -e 重设死端 --重设死端重设死端 项目名的正则表达式 要忽略的依赖项 -x --无额外费用 总是忽略额外的依赖关系 <表>

-n,–版本号打印活动发行版的版本号

<表> < COL/> < COL/> <正文> -1 --一次 在纯文本输出中,仅包括每个发行版 一次 -t --简明扼要 在纯文本输出中,忽略任何未打印的提示 分布,如椭圆 -d --dot 生成点图 -c --集群 在点图中,对每个点的直接依赖关系进行聚类 根分布 -r --要求 生成需求列表 -s --版本规范 在需求列表中,打印最宽松的版本 规格 <表>

选项可以多次出现。

如果同时给出了 -d -r 选项,则最后列出的选项获胜。 打印需求列表时, -v 胜过 -s

脚本入口点识别所有选项的默认值,变量 名称是长选项名称,用下划线替换任何破折号 (除了 --no-extras ,它转换为设置 extras=false )。 这允许使用egg的 参数选项设置默认值 例如,构建配置中的配方。

详细信息

eggdeps的目标是计算一个有节点的有向依赖图 表示工作集的鸡蛋分布,以及 表示鸡蛋之间的强制性或额外依赖性。

工作集

eggdeps的工作集由egg分布定义 可用于正在运行的python解释器。例如,这些可能是 通过简单安装激活的或安装在zc.buildout中的发行版 环境。

如果要按照并非所有要求的规范计算图表 分布在工作集中,缺少的将在 无法确定其依赖关系。如果有的话也一样 在命令行中指定的或任何 其他发行版在工作集中可用,但在一个版本中 与指定的要求不兼容。

图形构建策略

依赖关系图可以按照以下两种策略之一生成:

<表> < COL/> < COL/> <正文> 分析整个工作集: 节点与工作集中的分布完全对应。边缘 对应于任何活动 包含分发,但仅当所需分发处于活动状态时 正确的版本。图的根与 其他有效分布不依赖于分布。 从一个或多个鸡蛋开始: 节点包括由指定分布和 额外的,以及他们深深的依赖。它们可能只覆盖 工作集,以及包含非活动分布的节点 在所需的版本或根本不活动(因此它们的依赖项不能 被跟踪)。图的根对应于指定的 分配。 <表>

生成图表时,某些信息将丢失:

  • 如果依赖是强制性的并且是通过一个或多个额外的方式发生的,那么 将被记录为简单的强制依赖关系。
  • 如果具有已安装附加项的发行版A是多个其他发行版的依赖项 它们似乎都依赖于 附加服务,即使它们单独需要一个或几个。

缩小图形

为了减少一个大而复杂的依赖关系图 节点和边可以省略。

<表> < COL/> < COL/> <正文> 被忽略的节点:节点可以通过精确的名称或正则表达式完全忽略 匹配.如果一个非常基本的分布依赖于 还有很多。例如,setuptools
死端:发行版可以用确切的名称或正则表达式声明死端 匹配.死端包含在图中,但它们自己的依赖项 将被忽略。这使得分布的大型子系统 除了他们的"入口点"外都被抹掉了。举个例子,人们可以 在 zope.* 包的上下文中声明 zope.app.* 死端。 无附加功能:报告和以下附加依赖项可能完全关闭。 在分析工作集时,这可能是最有意义的 而不是特定分布的依赖性。 <表>

输出

eggdeps有两种方法可以输出计算出的依赖关系图:plain 文本(定义和一个要输入到Graphviz工具的点文件。

纯文本输出

图形打印为标准输出,基本上每行一个节点, 根据嵌套深度缩进,并在适当的地方注释。这个 每个节点的依赖项按以下条件排序:

  • 在附加要求之前打印强制依赖项。
  • 每组附加项的依赖项被分组,这些组被排序 按临时演员姓名的字母顺序。
  • 依赖项,这些依赖项要么都是必需的,要么是通过同一组 附加服务按名称的字母顺序排列。

作为一个示例,计算了以下依赖关系图 两个zope包,其中一个包需要额外的"测试",具体取决于 卸载了egg,并应用了一些图形缩减:

zope.annotation
    zope.app.container *
    zope.component
        zope.deferredimport
            zope.proxy
        zope.deprecation
        zope.event
zope.dublincore
    zope.annotation ...
  [test]
    (zope.app.testing) *
<表> < COL/> < COL/> <正文> 方括号[]:

如果节点的一个或多个依赖项仅由额外需求引起, 这些临时演员的名字印在他们的名字上方的方括号里。 依赖项,相对于需要它们的节点半缩进。

省略号…:

如果在图中的多个位置出现具有进一步依赖关系的节点, 子图只打印一次,其他事件用 省略。选择子图的打印位置,以便

  • 额外的依赖项在路径中出现得越晚越好,如果有的话,
  • 最好是浅层嵌套,
  • 优先选择字母表开头的路径。
括号():

如果分布不在工作集中,则将其名称括起来。

星号*:

死角用星号标记。

<表>
点文件输出

在点图形中,节点和边不是用文本注释的,而是彩色的。

这些是节点的颜色代码,后面的颜色代码将覆盖 适合多种颜色的情况:

<表> < COL/> < COL/> <正文> 绿色:对应于图根的节点。 黄色:任何根节点的直接依赖关系,无论是强制的还是通过附加的。 浅灰色:死胡同。 红色:蛋的节点安装在与某些要求不兼容的版本上,或 完全没有安装。 <表>

边缘颜色:

<表> < COL/> < COL/> <正文> 黑色:强制依赖项。 浅灰色:额外依赖项。 <表>

除了通过颜色、根节点及其直接 依赖项可能是群集的。 eggdeps 尝试将每个根节点放在 拥有集群。但是,如果两个或多个根节点共享任何直接依赖项, 它们也将共享一个群集。

需求列表

图中包含的所有发行版都可以作为python输出 表示需求规范列表,可以是

  • 列出裸包名称,
  • 包括工作集中出现的确切版本,或
  • 指定考虑所有版本的复杂版本需求 对有关发行的要求(但不考虑附加条款 完全是暂时的)。复杂的版本需求总是需要 至少是工作集中发生的版本,假设我们不能 了解过去版本的版本需求,但合理地假设 未来版本的要求可能不变。

列表按通讯组名称的字母顺序排列。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
json到bson转换中的java性能问题   java设置一个内部接口。用于GUI的txt文件,并从中检索文本。txt文件   java Android系统GUI事件监听器   java此方法必须返回int类型的结果?   xmpp中无法识别java登录方法   java这个伞状异常的原因是什么   JAVA木卫一。IOException:无法删除原始文件   java找出循环依赖项的路径   排序java ArrayList合并排序   java使用StAX读取所有文本元素   java规则可能会被忽略   java如何在Arraylist中查找具有多个属性的对象?   java RecyclerView行在插入项目时闪烁/闪烁   java在表中选择行时更改文本框中的文本