跳转到主要内容

Setuptools的Mercurial文件查找插件

项目描述

一个简单的 setuptools 插件,用于从基于 Mercurial 的包检出创建发行版。

详细文档

Setuptools的Mercurial文件查找插件

此软件包提供了一个简单的基于命令的文件查找插件,用于 setuptools。一旦安装,就可以使用使用 Mercurial 检出的包创建发行版。

现在让我们创建一个工作空间

>>> import tempfile
>>> ws = tempfile.mkdtemp()

由于工作空间不是一个 Mercurial 仓库,查找器返回一个空列表,并在日志中留下错误消息

>>> from z3c.setuptools_mercurial import finder
>>> finder.find_files(ws)
abort: There is no Mercurial repository here (.hg not found)! (code 255)
<BLANKLINE>
[]

此外,如果目录不存在,我们会得到一个错误消息,但没有结果集

>>> finder.find_files('/foo')
[Errno 2] No such file or directory: '/foo'
[]

现在让我们创建一个新的仓库

>>> import os
>>> repos = os.path.join(ws, 'test')
>>> cmd('hg init ' + repos)

由于仓库中尚未添加任何文件,查找器仍然会因错误代码 1 而失败

>>> finder.find_files(repos)
(code 1)
[]

现在让我们添加一些目录和文件,查找器应该会满意。

>>> cmd('touch ' + os.path.join(repos, 'data.txt'))
>>> cmd('hg add ' + os.path.join(repos, 'data.txt'))
>>> cmd('mkdir ' + os.path.join(repos, 'dir1'))
>>> cmd('touch ' + os.path.join(repos, 'dir1', 'data1.txt'))
>>> cmd('hg add ' + os.path.join(repos, 'dir1', 'data1.txt'))
>>> cmd('mkdir ' + os.path.join(repos, 'dir1', 'dir11'))
>>> cmd('touch ' + os.path.join(repos, 'dir1', 'dir11', 'data1.txt'))
>>> cmd('hg add ' + os.path.join(repos, 'dir1', 'dir11', 'data1.txt'))
>>> finder.find_files(repos)
['data.txt',
 'dir1/data1.txt',
 'dir1/dir11/data1.txt']

请注意,查找器的结果始终是基于输入目录的相对位置列表。

>>> finder.find_files(os.path.join(repos, 'dir1'))
['data1.txt',
 'dir11/data1.txt']

Buildout 1.5 及更高版本

当使用 zc.buildout 1.5 或更高版本时,会修改系统环境。特别是,PYTHONPATH 系统环境变量将被重写。在这种情况下,应将其删除

>>> import os
>>> bo_orig_path = os.environ.pop('BUILDOUT_ORIGINAL_PYTHONPATH', None)
>>> orig_path = os.environ.get('PYTHONPATH')
>>> os.environ['PYTHONPATH'] = '/bogus'
>>> finder.find_files(os.path.join(repos, 'dir1'))
['data1.txt', 'dir11/data1.txt']
>>> if bo_orig_path:
...     os.environ['BUILDOUT_ORIGINAL_PYTHONPATH'] = bo_orig_path
>>> if orig_path:
...     os.environ['PYTHONPATH'] = orig_path

变更

1.1.1 (2010-08-30)

  • 错误:改进 Buildout 支持。感谢 Gary Poster 帮助我。

1.1.0 (2010-08-30)

  • 功能:使 z3c.setuptools_mercurial 与 Buildout 1.5 兼容,Buildout 1.5 默认不再包含标准的 PYTHONPATH。这导致 Mercurial 无法找到其库。

  • 功能:使用 doctest 而不是 zope.testing.doctest

  • 功能:更新覆盖率设置。

1.0.1 (2009-12-16)

  • 功能:添加对获取仓库子目录中文件列表的测试。

  • 错误:事实证明 setuptools 不喜欢“./<path>”表示法,而只喜欢“<path>”。已修复该问题。

1.0.0 (2009-12-15)

  • 初始版本。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关 安装软件包 的更多信息。

源分发

z3c.setuptools_mercurial-1.1.1.tar.gz (5.5 kB 查看哈希值)

上传时间

由以下支持

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