将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 Maven Cobertura和包,无需运行两次单元测试   如何在java代码中获得Spring rest API响应?   音频-如何预加载声音并在Java中简单播放?   二进制理解Java字节   java语言分析器安卓   Hibernate中的java:是否可以为实体混合注释和XML配置?   java JDBC在尝试切换(使用)数据库时出现“MySQL语法错误”   将C中带有指针的代码转换为Java代码   java如何在for循环中循环字符串数组   JSF页面上的java EL表达式计算时间   java无法将docker映像推送到Nexus   swing如何使用单选按钮选择Java图形   java在运行mvn liquibase:diff更新数据库时发现多个目录与架构匹配   java KafkaConsumer API 0.9是否有以下场景的解决方案?   java打印邻接矩阵中的最短路径   java Spring安全身份验证失败空消息   使用trycatch处理FileNotFoundException的java   java如何在spring测试中模拟属性源?   java无法从sqlite数据库获取所有行   JavaEclipseRCP:如何从目标定义文件中的软件站点下载增量包?