跳转到主要内容

为`setup.cfg`文件应用一致的格式

项目描述

build status pre-commit.ci status

setup-cfg-fmt

setup.cfg文件应用一致的格式

安装

pip install setup-cfg-fmt

作为pre-commit钩子

有关说明,请参阅pre-commit

示例.pre-commit-config.yaml

-   repo: https://github.com/asottile/setup-cfg-fmt
    rev: v2.5.0
    hooks:
    -   id: setup-cfg-fmt

命令行界面

请查阅帮助了解最新用法

$ setup-cfg-fmt --help

它做什么?

设置属性的一致顺序

例如,nameversion(最重要的元数据)将始终出现在顶部。

 [metadata]
-version = 1.14.4
-name = pre_commit
+name = pre_commit
+version = 1.14.4

在项目名称中将破折号转换为下划线

  • pip将名称转换为破折号foo_bar => foo-bar
  • python setup.py sdist生成的文件名与名称完全相同
  • pip wheel .生成的文件名具有规范化的名称
$ # with dashed name
$ python setup.py sdist && pip wheel -w dist .
...
$ ls dist/ | cat
setup_cfg_fmt-0.0.0-py2.py3-none-any.whl
setup-cfg-fmt-0.0.0.tar.gz
$ # with underscore name
$ python setup.py sdist && pip wheel -w dist .
...
$ ls dist/ | cat
setup_cfg_fmt-0.0.0-py2.py3-none-any.whl
setup_cfg_fmt-0.0.0.tar.gz

这使得上传到pypi的软件包更容易,因为它们最终具有相同的文件名前缀。

 [metadata]
-name = pre-commit
+name = pre_commit

在键中将破折号转换为下划线

setuptools允许破折号名称,但没有对其进行文档化。

 [metadata]
 name = pre-commit
-long-description = file: README.md
+long_description = file: README.md

如果存在README,则添加long_description

这将显示在pypi项目页面上

 [metadata]
 name = pre_commit
 version = 1.14.5
+long_description = file: README.md
+long_description_content_type = text/markdown

如果存在LICENSE,则添加license_file / license /许可证分类器

 [metadata]
 name = pre_commit
 version = 1.14.5
+license = MIT
+license_file = LICENSE
+classifiers =
+    License :: OSI Approved :: MIT License

设置python_requires

一些来源被搜索以猜测python_requires

  • 现有的python_requires设置本身
  • 如果存在,则搜索tox.ini中的envlist
  • 已设置的python版本classifiers
  • --min-py-version参数

添加python版本分类器

分类器基于以下内容生成

  • python_requires设置
  • --max-py-version参数(当前默认为3.11
  • 如果指定了--include-version-classifiers
 name = pkg
 version = 1.0
+classifiers =
+    Programming Language :: Python :: 3
+    Programming Language :: Python :: 3.7
+    Programming Language :: Python :: 3.8
+    Programming Language :: Python :: 3.9
+    Programming Language :: Python :: 3.10
+    Programming Language :: Python :: 3.11

如果没有指定--include-version-classifiers,则仅包含主版本

 name = pkg
 version = 1.0
+classifiers =
+    Programming Language :: Python :: 3

排序分类器

 [metadata]
 name = pre_commit
 version = 1.14.5
 classifiers =
-    Programming Language :: Python :: 3
-    License :: OSI Approved :: MIT License
+    License :: OSI Approved :: MIT License
+    Programming Language :: Python :: 3
     Programming Language :: Python :: 3.6

删除任何部分的空选项

 [options]
-dependency_links =
 python_requires = >= 3.6.1

相关项目

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

setup_cfg_fmt-2.5.0.tar.gz (8.2 kB 查看哈希值)

上传时间 源代码

构建分发

setup_cfg_fmt-2.5.0-py2.py3-none-any.whl (8.7 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者