枚举 auto() 值上的 Mypy 错误

Mypy errors on enum auto() value

我有这个 class 用于自动命名枚举。

class AutoNameEnum(Enum):
    def _generate_next_value_(name, start, count, last_values):
        return name

这是直接取自 Python documentation on enums

用法是这样

class Priority(AutoNameEnum):
    LOW = auto()
    HIGH = auto()

priority = Priority.LOW

一切正常,mypy 理解这里的一切。但是,当我尝试将 AutoNameEnum 放入单独的包中时,出现错误。具体来说,这个

from utilities import AutoNameEnum

class Priority(AutoNameEnum):
    LOW = auto()
    HIGH = auto()

priority = Priority.LOW

结果

Incompatible default for argument "priority" (default has type "auto", argument has type "Priority")

这个 mypy 错误是什么意思,为什么它只在我从不同的包导入 class 时发生?

这实际上与autoEnum无关。我只需要通过将名为 py.typed 的文件添加到包的根目录来表明我的包是类型化的。没有它,mypy 不会扫描包的类型。