检查导入的包是否在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第三方库


热门话题
如何表示1。。Java中的n关系   java在安卓应用程序中添加polaris viewer   Java字符串::replaceAll仅替换第一个出现(可能不正确的正则表达式)   java Tomcat/JBoss部署后脚本   如何在Heroku Java应用程序中运行发出web请求的周期进程   java如何以纳秒为单位证明算法的时间   Solaris上的java自定义ListCellRenderer(使用jre5)   java试图为我的播放器类测试块实现播放器重力(RealtutsGml平台教程)   c#消耗一个。带有java的net web服务未显示预期结果   java在KOI8\R中检索html   基于java图形的搜索与基于随机的搜索   java如何检查安卓设备上的可用空间?在SD卡上?