使用 cookiecutter 在几秒钟内生成您的 Github 存储库结构
使用 cookiecutter 在几秒钟内生成您的 Github 存储库结构
TLDR:
这个故事是关于使用 python 包裹 这允许任何 Github 从业者创建 repos 模板、生成文件夹结构并设置一些包以确保尊重编码最佳实践。
介绍:
当开始一个新的 Github 存储库时,我们通常首先考虑文件夹结构以及每个脚本或文件应该在项目树中的位置。此外,作为第一步,我们通常设置 CI/CD 以加速开发和测试任务,并启动自述文件...
好吧,如果您一生中至少遇到过一次这种情况,您可能已经考虑过解决方法 简化流程 并更快地移动到编码部分。这是哪里 千篇一律 开始行动。
Cookiecutter 是一个命令行实用程序,允许生成 来自模板的存储库结构 .它以多种语言工作,并在软件工程师、数据科学家和研究人员中广泛使用。
它只需要:
- 创建一次 你自己的模板 或者 搜索现有的 一个在 Github
- 配置 这 cookiecutter.json 根文件夹中的文件
- 运行命令行 并按照说明
1.创建模板
让我们从一个例子开始: 在本文中 我写了一个我经常在我的数据科学项目中使用的项目结构。 (可以找到回购 这里 )。这 主枝 包含 按照以下步骤我们将达到的最终结果 (即:生成的项目)。这 分行千篇一律 是允许生成它的模板。
简而言之,用作示例的模板允许组织文件夹和文件,使用 makefile 中的几个命令快速启动一个新项目 自动格式化代码 , 分析其质量 , 运行测试 最后 生成自述文件 .为了将此结构转换为通用 cookiecutter 模板,我们使用 jinja2 语法。
本文背后的目标是 演示 Cookiecutter 的使用 构建我们自己的模板并生成一个基于 **** 它。如果您对详细信息感兴趣 在生成的里面 例子 你可以参考上面的文章。
第一步是告诉 cookiecutter “ 多变的 ” 模板中我们想要的元素 覆盖 每次创建新项目时。这些元素可以是项目名称、作者、文件路径、描述……
jinja2 定义变量的语法如下:
{{cookiecutter.project_name}} {{cookiecutter.python_major_version}}
我们也可以使用 如果结构 和 循环 在脚本文件中。我们可以使用以下语句的示例:
{% if cookiecutter.python_major_version != “3” %}
echo “升级你的 python 版本!”
{% 万一 %}
了解这些元素后,我们可以继续修改和创建模板。 Cookiecutter 期望将所有项目文件和目录放在一个名为 {{cookiecutter.project_name}} .项目自述文件,ci文件中也需要少量修改,...您可以查看 最终结果在这里 并通过以下方式查看差异 比较两个分支 .
The cookiecutter template of a git project
2.配置cookiecutter.json文件
第二步是调整你的 json 配置文件。这是 cookiecutter 寻找 模板中使用的变量。 此文件包含之间的映射 变量名 和 他们的真实价值 .
3. 生成一个新项目
最后一步是生成 repo 结构。其实这很简单 给定模板和配置文件 .我们所要做的就是 安装 来自 pypi 的 cookiecutter 包和 运行实用程序 使用 github 或本地的模板 repo 链接。您还可以将分支指定为参数。这是一个例子:
点安装cookiecutter cookiecutter [[email protected]](/cdn-cgi/l/email-protection):kaislar/ds_template.git --checkout cookiecutter
然后 Cookiecutter 将引导您完成配置并为您构建结构:
The cookiecutter utility in action
结论:
在本文中,我们看到了如何创建自己的模板以 快速生成初始结构 一个 Github 项目。我们基于我自己经常使用的一个例子来写这篇文章 数据科学项目 更深入地描述 这里 .
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明