基于Python的工具,用于保持源文件头部的统一性。
项目描述
一致的头部管理。
CLI工具,用于在源文件间应用和维护一致的头部。
为没有头部的文件添加头部。
更新已有头部的文件中的字段。
为不同类型的文件维护不同的头部配置
安装
Conhead作为Python的conhead包提供。
例如,要使用pipx安装
$ pipx install conhead
$ conhead --help
Usage: conhead [OPTIONS] SRC
配置
通过pyproject.toml配置conhead。每个头部模板通过一个单独的[tools.conhead.header.<name>]部分进行配置。每个部分是头部定义,可以应用于一个或多个文件扩展名。
示例
[tools.conhead.header.hashhead]
extensions = ['py', 'toml', 'yaml']
template = """
# Copyright {{YEARS}} Organized Organization
# SPDX-License-Identifier: Apache-2.0
"""
[tools.conhead.header.slashhead]
extensions = ['c', 'cpp', 'java']
template = """
// Copyright {{YEARS}} Organized Organization
// SPDX-License-Identifier: Apache-2.0
"""
模板定义
关于模板定义的一些注意事项。
每个TOML tools.conhead.header部分有几个选项
extensions: 应用头部定义的扩展名列表。
模板: 此头部定义的头部模板。这是应用于具有指示扩展名的文件的文本。
头部模板
注意头部模板的一些事项。
模板文本在 pyproject.toml 配置文件中缩进以提高可读性,然而 conhead 会为您去除缩进。
模板包含一个在目标源文件中保持更新的字段。在这种情况下,{{YEARS}} 字段将当前年份写入每个新模板。如果文件已经包含带有年份的头部,并且年份与当前年份不同,则更新以显示年份范围。例如,如果模板首次在 2020 年编写,则 {{YEARS}} 字段将替换为 2020。当头部在 2022 年更新时,此字段将重写为 2020-2022。
如果您需要编写包含用于描述字段的一定字符的文本,您必须对它们进行转义。例如,\{、\} 和 \\。这些字符将在渲染的头部中显示,而无需前面的反斜杠。
用法
假设有一个没有头部的 Python 文件位于 hello.py
def hello():
print("Greetings!")
您可以将定义在 pyproject.toml 中的 hashhead 头部模板应用于该文件,并通过以下方式查看结果:
$ conhead hello.py
WARNING: missing header: hello.py
$ cat hello.py
# Copyright 2022 Organized Organization
# SPDX-License-Identifier: Apache-2.0
def hello():
print("Greetings!")
conhead 将识别如果再次将其应用于 hello.py,则不会写入第二个头部。
$ conhead hello.py
$ cat hello.py
# Copyright 2022 Organized Organization
# SPDX-License-Identifier: Apache-2.0
def hello():
print("Greetings!")
预提交
conhead 已准备好与 pre-commit 一起使用。要使用 pre-commit,将仓库添加到您的 .pre-commit-config.yaml。
例如
- repo: https://github.com/slobberchops/conhead
rev: v0.4.0
hooks:
- id: conhead
链接
项目详细信息
conhead-1.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4f3e3b6feda4a13b92584f16c7b3816ad6d3bfef98aea290c62369e041d82c82 |
|
MD5 | b6df14cd7e4b053e75ff1c540cbb8085 |
|
BLAKE2b-256 | 1404ffdbdf4f4e41724b3d206d1068e45fe21e7ce082c6073adc6d03015eb43f |