Clang-Format 是一个基于 LLVM 的代码格式化工具
项目描述
clang-format Python 分发版
此项目将 clang-format
工具打包成 Python 包。它允许您直接从 PyPI 安装 clang-format
python -m pip install clang-format
此项目旨在为 clang-format
的每个主版本和次版本发布一个新的 PyPI 包。
与 pipx 一起使用
您还可以使用 pipx
运行 clang-format。例如,pipx run clang-format <args>
将在无需任何机器上先前的安装的情况下运行 clang-format(包括所有默认 GitHub Actions / Azure runners,避免了需要预安装步骤或甚至 actions/setup-python
)。
从 pre-commit 使用
还提供了一个 pre-commit 钩子,使用方法如下
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v19.1.1
hooks:
- id: clang-format
types_or: [c++, c, cuda]
与其他许多 pre-commit 钩子相比,钩子的版本与 clang-format
的版本匹配。
如果您需要使用与 pre-commit 钩子兼容的特定主/次版本的 clang-format
,可以使用 此替代钩子存储库,该存储库还接收较旧版本的 clang-format 的回滚版本。目前,支持所有大于等于 10 的主要/次要版本的 LLVM。最好订阅钩子存储库的发布,以便收到新的回滚版本的通知,因为在这种情况下 pre-commit
的自动升级功能将不会工作。
构建新版本
clang-format-wheel 存储库 提供了构建和发布 clang-format
工具的二进制 wheel 的逻辑。
为了添加新版本,需要以下步骤
- 编辑 版本文件
- 格式为
llvm_version.wheel_version
,例如18.0.2.1
- 格式为
- 使用此版本标记提交以触发 GitHub Actions 发布工作流程
- 例如:
git tag v18.0.2.1 && git push origin v18.0.2.1
- 例如:
或者,可以手动触发工作流程
在手动触发时,以下输入变量可用
llvm_version
:覆盖 LLVM 版本(默认:""
)wheel_version
:覆盖 wheel 打包版本(默认"0"
)skip_emulation
:设置要跳过的仿真构建,例如"qemu"
(默认:""
)deploy_to_testpypi
:是否部署到 TestPyPI 而不是 PyPI(默认:false
)
使用计划好的 GitHub Actions 工作流程自动更新包含 precommit 钩子的存储库。
致谢
此存储库扩展了几个其他项目的出色工作
clang-format
本身由 LLVM 项目 提供,采用 Apache 2.0 许可证,附带 LLVM 例外条款。- 构建逻辑基于 scikit-build-core,这大大减少了打包
clang-format
所需的低级代码量。 scikit-build
的打包示例,包括 CMake 和 Ninja,对打包clang-format
非常有帮助。- CI 构建过程由 cibuildwheel 控制,这使得在多个平台上构建 wheels 变得愉快(!)
特别感谢 mgevaert,他启动了这个项目,并在 2021 年之前维护它。
我们感谢 GitHub 目前向开源项目提供的慷慨的 CI 资源。
项目详细信息
clang_format-19.1.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | aeb3a1898ee86689602d583da3dcbd2f6cdf460538c2d7a3623a5012132ada1b |
|
MD5 | 97f12a8634377bd4da75d9c1d5e41dff |
|
BLAKE2b-256 | 4d33d91b271285c0f936f9af3e3fd16cd165a448a95a7c5662439cb936615d93 |
clang_format-19.1.1-py2.py3-none-win_amd64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 631aa55a56f96f12d9c6060fb6d09f397f32705c7a4331e1944a107f6c99f139 |
|
MD5 | 05402c40af8c93c6ac29dfde9b497851 |
|
BLAKE2b-256 | 896ece69b88264d8e00712262401e2d72957f20bb609c523cd7bdfc3b96fc83a |
clang_format-19.1.1-py2.py3-none-win32.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6e67c7aa81cea8161db3d3654331103225104ad7622257b4f4e00f8563aced52 |
|
MD5 | 14cf3ba5fb34fce643a42716459d2d4b |
|
BLAKE2b-256 | 37bc308e7a42996cbe3891988420e3e58662504ac5ce7d9d41dd182b3a9733a0 |
clang_format-19.1.1-py2.py3-none-musllinux_1_2_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7dc424c87b53d6097e46df034a5359ed9d1932ec5dccd0ab42f1ef3655a7452f |
|
MD5 | 62551578c481bbb1cc7e827f35250529 |
|
BLAKE2b-256 | 3a724f9a98c3d46eabb850636a19b7d2e34f0170a8301cc7e892b2774d8f4426 |
clang_format-19.1.1-py2.py3-none-musllinux_1_2_s390x.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 39bca9a96498c674cc765d572ed299e80373e3c33f73961786864bd516b1eeb7 |
|
MD5 | f4671d9d471de974c130155684db9453 |
|
BLAKE2b-256 | 43049d2fc8faa9872147cbe388d6dc88a00c93846e797255dc611c9aa52015fa |
哈希值 用于 clang_format-19.1.1-py2.py3-none-musllinux_1_2_ppc64le.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 380c724ae53658ad51b0f6a2bd88677ac051cf5d3d55c7874ba2c0bed3cfe1e9 |
|
MD5 | eb8b5777cac7fb597be6a87cf6105a4f |
|
BLAKE2b-256 | ac9ccf71710c0fc32c11d3e0c94c55293fc9bf13a00bcb85c03d710d94193d1b |
哈希值 用于 clang_format-19.1.1-py2.py3-none-musllinux_1_2_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c4218faed21065d28d33420e756a9ef74cb60b53d80c101fd1770f2ac2198492 |
|
MD5 | c01e1a8cc42ea83a36261c86311d1566 |
|
BLAKE2b-256 | 731129d96d01d8d841be9e1dd3a0816f34ad543fb9ddf8bb3260ad9c526abd22 |
哈希值 用于 clang_format-19.1.1-py2.py3-none-musllinux_1_2_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3e9644587d44f5700e5b5c668ffa81b20575c83e971e07f5e512aae421cde387 |
|
MD5 | 07bbf551cd3046bc65d0923157233cc9 |
|
BLAKE2b-256 | eafff83e1daa7b85284b7ea72e5e2f74e3cee8a56ba78d08c53d9720e3900a42 |
哈希值 用于 clang_format-19.1.1-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0aa0b5faf59224591b72e90284e28a6054c6bf78869fb9b49f8fbf5da40fcfbf |
|
MD5 | 83b1e21f427864259a7baa4962e799f3 |
|
BLAKE2b-256 | 0ecf6b40e09d5447c5eb75ae11a90ce992953ee97d075a200d3a878f5f10aec1 |
哈希值 用于 clang_format-19.1.1-py2.py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 656460de9afadb918261da115bb3ccf8023da2729c27670a7eadb1e1225c65a8 |
|
MD5 | 80cd7885b9bec791584f3bcf603ef532 |
|
BLAKE2b-256 | 8bd359f7c0d1873754a49a3ef956748aa7b2a00527e70422e9648c66d116ff66 |
哈希值 用于 clang_format-19.1.1-py2.py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4d6a533ff6def4b5729bfa4edaaa1015c7058ed218b4e0280c980c4ec5bdd47c |
|
MD5 | db42a5ad0b4317515682ede843a02aa8 |
|
BLAKE2b-256 | 1ef7ced95c7f33d2e53ff9c278c6d9da23736c13a49b213207989cd3cba3645c |
哈希值 用于 clang_format-19.1.1-py2.py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8e571b591fd42afa6974a79cc162ac4946bcf4e0050f4f46ecb232b90526e540 |
|
MD5 | 0bbfb3a93177f8633d0d280252df633d |
|
BLAKE2b-256 | cda4527619a6ea15e18a6812aa755b66f8d10626483f39b3afe167144b409984 |
哈希值 用于 clang_format-19.1.1-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 28f37d5ddd799a0e62dfdad5f13cb065103d89a71a0b6e9f92d0282dd7055d4c |
|
MD5 | a5586dd34ef2f4232ecb2f247bccb005 |
|
BLAKE2b-256 | be396b1915d39537eaece3979561c0f981463339e7f5daad9d0e0071e6cafd12 |
哈希值 用于 clang_format-19.1.1-py2.py3-none-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d4ae63766cffcff4a55640b92210b0bdc0d7d9a5d9d9e0a8a998e532c204017a |
|
MD5 | 0d5ca4fe855925d4d7086932d16a9364 |
|
BLAKE2b-256 | 916befb38cf48b42974c4f179293c8b9c69543fa2f83aafee05ffaee6141a9b3 |
哈希值 用于 clang_format-19.1.1-py2.py3-none-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e4967d43c986ce5987d293705ed5b76f44db71fdd111ea365dcaabc7a3c4f237 |
|
MD5 | a794dfaa5cca25efabf393d4a6790570 |
|
BLAKE2b-256 | 065d2f346927c905d7092671cd57f30dcbabb8f8f514e4bb3a081cc7732ef53b |