跳转到主要内容

遵循gocept Python包规范的paste.script模板。

项目描述

gocept.package

此包生成遵循gocept使用的约定的Python包。

它包含两部分:一个粘贴模板,用于创建Python包的模板;以及一个Python模块,用于配置Sphinx,并包含必要的包依赖。

该包支持Python版本2.7、3.4、3.5和PyPy 2。

使用方法

要使粘贴模板可用,请安装gocept.package,以便paster可以找到它。然后运行paster

$ paster create --template gocept-package NAMESPACE.PROJECTNAME

这将生成egg分发的模板,包括zc.buildout配置、Sphinx包文档的框架以及初始化的Mercurial仓库。buildout配置针对开发,因此它将在bin/test安装测试运行器,并在bin/doc安装文档构建器。

包内容

这旨在解释生成的文件和目录的目的,并提供在何时编辑哪些文件的建议。许多文件根本不需要编辑。

Python发行版

setup.py:

包定义和元数据。每次包的版本号、依赖项或入口点更改时,至少更新此文件。

src:

包的源代码树。不要修改命名空间包的__init__.py文件,否则同一命名空间中的其他包无法导入。

Mercurial仓库

.hg:

当创建包时,Mercurial仓库已经初始化。生成的文件尚未提交。

.hg/hgrc:

指向gocept公共Mercurial托管中包未来URL的仓库配置。如果您需要为该包设置不同于默认的作者,请编辑此文件(或使用hg persona)。

.hgignore:

Mercurial应忽略的文件和目录。这包括本地配置以及buildout、文档构建或包发布预期生成的文件。它不包括Python生成的文件(如*.pyc)、distribute(*.egg-info)或其他更通用的工具(如您的编辑器),这些工具不是特定于此项目的。这些模式应在您的默认Mercurial忽略列表中。

开发buildout

bootstrap.py:

创建bin/buildout脚本。使用buildout应使用的相同Python解释器运行此脚本。无需编辑此文件。

buildout.cfg:

为包创建测试运行器和文档构建器的有效buildout配置。包本身作为开发egg包含在内,buildout配置为仅使用任何其他包的固定版本。编辑此文件以配置包的官方开发buildout,但将本地自定义放在local.cfg中。版本固定放在versions/versions.cfg中,而此文件的版本部分应仅撤销此文件构建部分声明的开发egg的固定。

local.cfg:

对buildout配置的本地自定义,对其他开发者没有兴趣。这是被Mercurial忽略的。如果您更改此文件,从那时起请始终从bin/buildout -c local.cfg运行。虽然一开始这可能听起来很麻烦,但保持非本地配置在buildout.cfg下并进行版本控制对于测试包在持续集成服务器上的使用案例等重要。

versions/versions.cfg:

为构建过程中使用的、不属于Zope工具包的任何包进行版本锁定。用于构建文档所需的gocept.package版本被锁定到创建包文件相同的版本。在稍后升级gocept.package时,需要更新版本锁定,以及版本之间包模板中任何发生变化的文件。编辑此文件以锁定您的包或构建配置所需的任何eggs版本。

versions/ztk-versions-X.Y.Z.cfg:

包含在我们的版本锁定中的Zope工具包的固定版本。保留此本地副本可以在没有网络访问的情况下构建构建配置。不要编辑此文件。

杂项

.coveragerc:

coverage.py配置。

通用包文档

在包的顶级目录中可以找到一些文本文件,它们包含标准文档片段,因此应位于该位置和特定名称下,并且需要独立于Sphinx可访问。这些文件需要是有效的reStructuredText,因为Sphinx在构建完整文档时会处理它们,除了版权声明和许可文本外,这些文本将直接包含。

README.rst:

对包的目的、内容和用法的概述,这将包含在它的PyPI页面上以及文档的索引页面上。应始终与包内容保持最新。

CHANGES.rst:

需要更新的变更日志,其中包含对包的任何更改,这些更改与包的用户相关。该文件的格式由zest.releaser理解,并指向当前版本(即公共Mercurial存储库中的“tip”版本),它将从PyPI页面上指向以及构建的包文档。

HACKING.rst:

有关包及其作者的某些提示,例如后者的电子邮件地址以及包的文档、PyPI页面、问题跟踪器和源代码的URL以及当前日志。

COPYRIGHT.txt:

关于包的版权信息:包括版权所有者、版权年份以及有关所使用许可的一些建议,默认情况下为Zope公共许可2.1版。至少编辑此文件以更新年份。

LICENSE.txt:

所使用许可的官方文本副本。除非需要将其替换为不同的许可,否则不要编辑此文件。

使用Sphinx构建的完整文档

doc:

仅与Sphinx生成的文档相关的所有内容。我们使用后缀.txt作为Sphinx输入文件。虽然存在许多关于doc目录内容的规定,但如果您自由修改它,则不会对包的其余部分造成任何坏处;只需确保它保持有效的Sphinx输入。

doc/conf.py:

Sphinx配置。基本上所有配置值都遵循我们的约定,因此从gocept.package导入,因此您必须保持对gocept.package.sphinxconf的导入和调用完整。如果您想更改有关此包的元数据或文档外观的任何内容,您将需要编辑此文件。对我们关于Sphinx生成的文档的约定的更新将通过更新gocept.package来获取。

doc/index.txt:

文档的首页。它包括顶级README.rst文件中的包概述以及指向完整文档各部分的目录。这包括生成的API文档、有关包的一些元信息以及变更日志。如果您想添加如叙事包描述之类的顶级部分,请编辑此文件。

doc/api.txt:

生成的API文档的根文档。API文档是半自动化的,您需要在文件中的autosummary指令下列出所有要文档化的模块,从那时起会自动进行。已包含一个注释示例模块列表。

doc/about.txt:

关于包的元信息,结合顶级文件HACKING.rstCOPYRIGHT.txtLICENSE.txt。您不需要编辑此文件。

doc/changes.txt:

一个占位符,用于包含顶级文件CHANGES.rst。无需编辑此文件。

构建完整文档

生成的buildout配置在bin/doc中安装一个脚本,该脚本调用Sphinx来构建文档。要运行此脚本,您的当前工作目录必须是包的根目录。脚本将构建的文档(HTML格式)放入build/doc/(相对于包的顶级目录)。传递给bin/doc的选项将被传递给底层的sphinx-build命令,但请注意,位置参数不起作用。

作为默认HTML输出的替代,bin/doc --pdfbuild/pdf(通过Sphinx的latex工具链)中生成PDF输出。

Sphinx配置值

您可以通过在您的conf.py中设置相应的变量来覆盖gocept.package的默认值。需要将gocept.package.sphinxconf.set_defaults的调用放在最后。

source_suffix = '.foo'

import gocept.package.sphinxconf
gocept.package.sphinxconf.set_defaults()

相反,sphinxconf试图使用conf.py中的变量来计算值。如果指定了这些变量,也必须在调用set_defaults之前这样做。目前只有一个这样的变量。

_year_started:

项目开始年份的可选值。默认值为构建文档时的当前年份,但如果指定并且与当前年份不同,则用于构造类似“2001-2012 作者”的版权声明。

开发gocept.package

作者:

gocept <mail@gocept.com>

PyPI页面:

http://pypi.python.org/pypi/gocept.package/

问题:

https://bitbucket.org/gocept/gocept.package/issues

源代码:

https://bitbucket.org/gocept/gocept.package/

当前变更日志:

https://bitbucket.org/gocept/gocept.package/raw/tip/CHANGES.rst

运行测试:

使用tox,更多信息请参阅:https://pypi.python.org/pypi/tox

gocept.package变更日志

3.1 (2019-04-01)

回归

  • 此包目前与Sphinx >= 1.7不兼容。

3.0 (2018-01-25)

  • 取消对Python 3.3的支持,因为它不再由Sphinx 1.5支持。

  • 将许可证更改为MIT许可证。

2.3 (2016-12-02)

  • 确保与setuptools > 30.0兼容。

2.2 (2016-11-23)

  • 支持PyPy 2。

2.1 (2016-02-19)

  • 在骨架中使用当前的bootstrap.py

2.0 (2016-02-18)

  • 更新当前变更日志文件的bitbucket URL。

  • 取消对Python 2.6的支持。

  • 支持Python 3.3、3.4、3.5。

  • 使用tox作为唯一的测试运行器。

  • 更新到Sphinx >= 1.3。

1.3 (2014-09-17)

  • --pdf选项添加到bin/doc命令中。

  • 添加了一个使用batou的最小Web应用程序部署模板。

  • 使用py.test代替zope.testrunner。

1.2 (2013-07-19)

  • .mr.developer.cfg添加到骨架的.hgignore文件中。

  • 开发buildout现在需要在具有setuptools可用的Python环境中运行。

  • 为应对setuptools合并,使用zc.buildout 2.x和当前setuptools代替distribute。

  • 更新了软件包版本。

1.1 (2013-06-04)

  • 使用pkginfo >= 0.9,其中包含修复查找已安装命名空间包元数据的补丁(参见 <https://bugs.launchpad.net/pkginfo/+bug/934311>)。

  • 在skeleton setup.py中添加了console_script入口点的示例段。

  • 更新了Mercurial链接,指向bitbucket.org。

  • 更新了指向pythonhosted.org的在线文档链接。

  • 更新了主页和问题报告,以删除关于gocept项目托管的过时假设。

  • 更新ZTK到1.1.5,zc.buildout到1.7.1。

  • 在引导过程中锁定zc.buildout和distribute。

1.0.1 (2012-04-20)

  • 将coveragerc添加到软件包骨架中。

1.0 (2012-02-24)

首次发布

项目详情


下载文件

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

源分发

gocept.package-3.1.tar.gz (41.8 kB 查看散列)

由以下机构支持