跳转到主要内容

基于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 (17.3 kB 查看哈希值)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面