跳转到主要内容

将`Optional[T]`替换为`Union[T, None]`!🎉

项目描述

no-optional

Package version

这个代码重构将代码库中的typing.Optional[T]替换为typing.Union[T, None]

为什么?

这个工具是从Sebastián Ramírez的推文(如下所示)以及我们之间的对话中受到启发的。

image

正如推文所说,我们做这件事有两个原因

  1. 编写Union[str, None]Optional[str]更明确。主要是因为Optional[str]并不表示属性是可选的。它只表示它接受None作为可能的值。
  2. 在Python 3.10+中,您可以像str | None一样进行类型注解,而不是上面两个。这比Optional[str]更类似于Union[str, None]

安装

pip install no-optional

用法

在您要格式化的存储库中运行以下命令

python -m no_optional <files>

您还可以使用pre-commit。将以下内容添加到您的.pre-commit-config.yaml文件中

  - repo: https://github.com/Kludex/no-optional
    rev: 0.4.0
    hooks:
      - id: no_optional

许可

本项目采用MIT许可。

项目详情


下载文件

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

源代码分发

本次发布没有可用的源代码分发文件。请参阅有关生成分发存档的教程。

构建分发

no_optional-0.4.0-py3-none-any.whl (6.8 kB 查看散列值)

上传时间 Python 3

由以下支持