将Cookiecutter项目模板集成到PyScaffold中(请参阅:https://github.com/Cookiecutter/Cookiecutter)

pyscaffoldext-cookiecutter的Python项目详细描述


TravisReadTheDocsCoverallsPyPI-Server

Pyscaffoldext炊具器

Extension that combines the flexibility of Cookiecutter templates with the power of PyScaffold.

Cookiecutter是一个灵活的工具,允许模板的定义。 用于各种各样的软件项目。 另一方面,PyScaffold专注于一个良好的开箱即用的体验 用于开发可分发的python包(独占)。 尽管目标不同,但两者的力量还是有可能结合起来 用于创建自定义python项目设置的工具。

快速启动

此扩展可以使用pip

直接安装
$ pip install pyscaffoldext-cookiecutter

或者,如果您喜欢pipx

$ pipx install pyscaffold  # if you haven't installed pyscaffold yet
$ pipx inject pyscaffold pyscaffoldext-cookiecutter

注意,安装后,putup -h将显示一个新选项 --cookiecutter TEMPLATE。 使用此选项可指出要使用的模板(路径或url)。 由Cookiecutter创建的文件结构将由pyscaffold优化 之后。 例如:

$ putup my-proj1 --cookiecutter ~/my-templates/default
$ putup my-proj2 --cookiecutter gh:something/from-github

请参阅Cookiecutter文档,了解有关可能的url的更多详细信息 以及缩写。

带有pyscaffold的cookiecutter模板

下面的示例演示如何创建名为mypkg的新包, 使用Cookiecutter模板,但PyScaffold的功能增强了它:

$ putup mypkg --cookiecutter gh:pyscaffold/cookiecutter-pypackage

这大致相当于首先使用cookiecutter创建一个项目 模板,然后将其转换为pyscaffold:

$ cookiecutter --no-input gh:pyscaffold/cookiecutter-pypackage project_name=mypkg
$ putup mypkg --force

注意

对于调用cookiecutter和^{tt7}的复杂CookieCutter模板$ 分开可能是更好的选择,因为可以回答 特定模板问题或至少设置CookieCutter的值 变量。

警告

尽管使用cookiecutter模板是定制 使用pyscaffold设置的项目,建议的方法是帮助 通过贡献一个extension来改进pyscaffold。

合适的模板

注意pyscaffold将覆盖cookiecutter生成的一些文件, 像setup.py一样,package文件夹下的__init__.py文件 以及大多数docs文件夹,以便提供setuptools_scm 以及sphinx集成。 因此,并非所有Cookiecutter模板都适合这种方法。

理想情况下,可互操作的模板应该关注 src文件夹,而不是打包或分发,因为pyscaffold已经 把它放在引擎盖下面。这也意味着您的模板应该遵循 如果要在python包中生成文件,请使用src布局。

另外,pyscaffold运行带有--no-input标志的cookiecutter 激活,因此不会提示用户进行手动配置。相反, pyscaffold注入以下参数:

author
email
project_name
package_name
project_short_description

因此,模板文件结构应类似于:

cookiecutter-something/
└── {{cookiecutter.project_name}}/
    └── src/
        └── {{cookiecutter.package_name}}/
            └── ...

有关模板创建的详细信息,请参见Cookiecutter

注意

pyscaffold只使用cookiecutter来创建文件。 执行任何其他副作用的前/后挂钩 保证工作。

此项目是使用Pyscaffold 3.2设置的。详细信息和用法 有关pyscaffold的信息,请参见https://pyscaffold.org/

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

推荐PyPI第三方库


热门话题
带有字符串的java JNA调用与带有字节[]的java JNA调用的行为不同   java基于键列表获取子映射   重启后永久增加java堆大小?   JavaHTTPS服务器:相互SSL身份验证   java为什么接受接口的方法会拒绝该接口的实现?   片段中的java视图无法应用于()   ms access Java SQL更新命令不工作   java将web服务自动打包和部署到Oracle Application Server 10g   java有没有办法在安卓 studio中为安卓时钟设置多个警报?   位于FTP服务器上的文件上的Java校验和md5   在Java中创建类时遇到问题。有些方法不太确定   java错误:在类chrome\u驱动程序中找不到主方法   通用海图(Javascript\Java)