(图表)。
hecto的Python项目详细描述
NOTE: I'm thankful for any bug fix or report; They are more than welcome. However, I want to keep the scope of this project very small, so any other kind of pull-requests are discouraged.
{a2}
一个小而简单的库,用于呈现项目模板。在
- 使用local路径和git url。在
- 您的项目可以包含任何文件,Hecto可以动态替换任何类型文本文件中的值。在
- 它生成一个漂亮的输出,并注意不要覆盖现有的文件,除非有人指示这样做。在
如何使用
pip install hecto^{pr2}$
工作原理
项目模板中文件的内容将被复制到目标中,而不做任何更改,,除非后缀名为“.tmpl”。(您可以使用render_as
设置进行自定义)。在这种情况下,模板引擎用于呈现它们。在
使用了一个稍微定制的Jinja2模板。主要区别是
变量是用[[ name ]]
引用的,而不是
{{ name }}
和块是{{% if name %}
。要了解有关模板的更多信息,请参阅Jinja2
documentation。在
使用data
参数传递您想要的任何额外上下文
在模板中。参数可以是任何有效的Python值,甚至
功能。在
美国石油学会
收到()
hecto.copy(src_path,dst_path,data=DEFAULT_DATA,*,exclude=DEFAULT_EXCLUDE,include=[],skip_if_exists=[],envops={},render_as=DEFAULT_RENDER_AS,pretend=False,force=False,skip=False,quiet=False,)
使用src_path
中的模板在dst_path
生成一个新项目。在
参数:
- 在
src_路径(str): 项目框架的绝对路径。可能是版本控制系统的URL。在
在 - 在
dst_路径(str): 渲染项目模板的绝对路径。在
在 - 在
data(dict): 可选。要传递到模板的数据。在
在 - 在
exclude(str列表): 可选。与文件或文件夹匹配的名称或shell样式模式的列表 不能复制。在
在 - 在
include(str列表): 可选。与必须包含的文件或文件夹匹配的名称或shell样式模式的列表,即使其名称与
在exclude
列表匹配。例如:['.gitignore']
。 默认为空列表。在 - 在
skip\u如果存在(str列表): 可选。跳过这些文件名或shell样式模式,而不询问目标文件夹中是否已经存在另一个同名的文件名或shell样式模式。 只有在复制到已存在的文件夹时才有意义。在
在 - 在
envops(dict): 可选。Jinja模板环境的额外选项。在
在 - 在
render\u as(函数): 一个可选的钩子,它将文件的绝对源路径和相对目标路径作为参数。在
如果文件必须按原样复制或是新的相对目标(可以与接收到的目标相同)的Path对象,则它应该返回
None
。在默认情况下,所有带有
在.tmpl
后缀的文件都将呈现并保存,而不使用该后缀。例如:readme.md.tmpl
变成{}。在 - 在
get\u context(函数): 在呈现文件之前调用的可选钩子。以亲戚为例 文件的目标路径作为参数,并应返回字典 以及其呈现的上下文。在
在 - 在
假装(bool): 可选。运行但不进行任何更改
在 - 在
force(bool): 可选。覆盖已经存在的文件,无需询问
在 - 在
skip(bool): 可选。跳过已经存在的文件,无需询问
在 - 在
quiet(bool): 可选。抑制状态输出
在
在海克托山药文件
如果在项目的根目录中找到一个名为hecto.yaml
的YAML文件,那么它将被读取并用于参数默认值。在
注意,它们只是默认值,因此任何显式传递的参数都将覆盖它们。在
# Shell-style patterns files/folders that must not be copied.exclude:-"*.bar"-".git"-".git/*"# Shell-style patterns files/folders that *must be* copied, even if# they are in the exclude listinclude:-"foo.bar"# Shell-style patterns files to skip, without asking, if they already exists# in the destination folderskip_if_exists:-".gitignore"
- 项目
标签: