检查导入的包是否在setup.py中声明

ws.dependencychecker的Python项目详细描述


这个包提供了一个dependencychecker脚本来检查一个egg 声明它在setup.py中导入的所有包。

Usage

dependencychecker [-h] [-v] [-z] package

Checks whether imported packages are declared in setup.py.

positional arguments:
  package        setuptools `requirement string`_,
                 e.g. ws.dependencychecker or ws.dependencychecker[test]

optional arguments:
  -h, --help     show this help message and exit
  -v, --verbose  Print all lines importing missing packages
  -z, --zcml     Scan ZCML files
  -m , --mapping   Filename with additional egg-->packages mappings

支持的python版本:2.6、2.7 (3.x不受支持,因为某些依赖项尚未移植,例如 Zope.组件)。

虽然dependencychecker不导入任何文件,但它需要包 它的依赖项是PYTHONPATH,因此可以通过 pkg_resources.working_set

默认情况下,dependencychecker打印未声明的包名称列表, 格式化后可以复制粘贴到setup.py的install_requires列表中, 像这样:

$ depcheck ws.dependencychecker
'gocept.testing.mock',

如果需要更多详细信息,请使用详细模式(pass-v):

$ depcheck ws.dependencychecker -v
/home/wosc/depcheck/src/ws/dependencychecker/tests/test_check.py:4:import gocept.testing.mock

要在构建中使用ws.dependencychecker,请使用以下代码段 示例:

[depcheck]
recipe = zc.recipe.egg
eggs =
    ${test:eggs}
    ws.dependencychecker

Eggs that contain several packages

对于大多数鸡蛋,鸡蛋名称和提供的包装名称是相同的(例如 根据zope.interfaceegg将允许您导入 zope.interface,但没有其他内容)。然而,有些鸡蛋含有超过 一个包,和/或具有不同名称的包(例如ZODB3e g g 包含包ZODBBTreespersistent)。

ws.dependencychecker有一些内置的启发式(zodb,setuptools)来 处理这个问题,但如果这还不足以满足您的项目,您可以传入一个 以下格式的映射文件:

[egg_name]
package1
package2

所以在zodb示例(实际上是内置的)中,看起来像:

[ZODB3]
ZODB
BTrees
persistent

你不需要重复鸡蛋的名字,所以在^{tt15}的情况下$ (它还包含pkg_resources),看起来像:

[setuptools]
pkg_resources

Known limitations

  • 目前只识别Python2.7标准库中的模块。
  • 包含几个或不同名称的鸡蛋的内置映射 包裹很有限。建议欢迎!
  • 无法识别在一行上导入的多个包 (import foo, bar将只提取foo), 但无论如何,这种拼写是不受欢迎的。
  • 错误地识别zcml中包含在多行注释中的内容。
  • 不支持扫描带拉链的鸡蛋。

Development

源代码可以在Mercurial存储库中找到 http://code.wosc.de/hg/public/ws.dependencychecker

请向Wolfgang Schnerring报告您发现的任何错误。

Changelog

1.1.1(2011-12-15)

  • 与python-2.6兼容

1.1(2011-12-09)

  • 将包名称合并为egg名称 (例如zope.traversing.foo–>;zope.traversing)
  • 允许指定其他egg–>;包映射。
  • 支持ZCML文件的扫描。
  • 将默认输出更改为分组模式,以便复制和粘贴; 添加详细模式。

1.0(2011-12-06)

  • 第一次释放。

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

推荐PyPI第三方库


热门话题
java无法在未设置数据源的情况下启动springboot应用程序   返回/泛型的类型?   java通过在navigationView中按id重新加载navigationView内容   java实现安卓的状态更新   java Equals()对于两个相等的字符串不返回true   java如何保存屏幕截图(matlab)   java GWT如何在重新加载页面之前确保函数已完全执行   java在Groovy中实现ObjectJSON映射的标准方法是什么?   java在ApacheTomcat中,是否可以通过连接器过滤多个访问日志文件?   java当JVM达到其Xmx限制时,它会强制垃圾收集吗?   如何在JAVA中生成包含特定数字的不同随机数列表?   rcp中透视图之间的java切换   java理解名为“分区”的Linkedlist算法中的无限循环   RestTemplate的java测微计统计信息   Android中使用自定义服务BLE的java读/写特性   java验证输入以确保负数   关于Java扫描器的io基本查询   java如何使用子字符串或其他函数将字符串拆分为单词?   java Storm群集重复元组