跳转到主要内容

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

项目描述

此软件包提供了一个dependencychecker脚本,用于检查egg是否在它的setup.py中声明了所有导入的包。

用法

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.component)。

虽然dependencychecker没有导入任何文件,但它需要包及其依赖项位于PYTHONPATH上,以便通过pkg_resources.working_set访问。

默认情况下,dependencychecker会打印一个未声明包名的列表,格式化后可以直接复制粘贴到您的setup.py的install_requires列表中,如下所示

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

如果您想获取更多信息,请使用详细模式(传递-v

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

要在buildout中使用ws.dependencychecker,可以使用如下示例片段

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

包含多个包的egg

对于大多数egg,egg名称和提供的包名称相同(例如,依赖于zope.interface egg将允许您导入zope.interface,但不能导入其他内容)。然而,某些egg包含多个包,以及/或具有不同名称的包(例如,ZODB3 egg包含包ZODBBTreespersistent)。

ws.dependencychecker内置了一些启发式方法(例如ZODB、setuptools)来处理这种情况,但当这些方法不足以满足您的项目需求时,您可以传递一个如下格式的映射文件

[egg_name]
package1
package2

例如,在ZODB示例(实际上是内置的)中,它看起来是这样的

[ZODB3]
ZODB
BTrees
persistent

无需重复鸡蛋名称本身,因此对于 setuptools(它还包含 pkg_resources),看起来是这样的

[setuptools]
pkg_resources

已知限制

  • 目前只识别 Python 2.7 的标准库模块。

  • 对于包含多个或不同名称包的鸡蛋的内置映射相当有限。欢迎提出建议!

  • 不识别单行导入的多个包(import foo, bar 只会拾取 foo),但此拼写方式受到 PEP 8 的反对。

  • 错误地识别 ZCML 中的多行注释中的包含项。

  • 不支持扫描压缩鸡蛋。

开发

源代码可在 http://code.wosc.de/hg/public/ws.dependencychecker 的 mercurial 仓库中找到。

请将您发现的任何错误报告给 Wolfgang Schnerring

变更日志

1.1.1 (2011-12-15)

  • 已与 Python-2.6 兼容

1.1 (2011-12-09)

  • 将包名合并到鸡蛋名中(例如 zope.traversing.foo –> zope.traversing)

  • 允许指定额外的鸡蛋–>包映射。

  • 支持扫描 ZCML 文件。

  • 将默认输出更改为分组模式,便于复制粘贴;添加详细模式。

1.0 (2011-12-06)

  • 首次发布。

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分布

ws.dependencychecker-1.1.1.tar.gz (11.0 kB 查看散列)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面