声明可选依赖的类型注解

Declare type annotation for optional dependency

假设我想声明一个源自我的库的可选依赖项的输入类型。我可以选择将其设置为字符串,至少让 Python 开心(例如,不要抱怨缺少名称)。但是 Mypy 当然不知道如何处理这个缺失的类型。有没有解决方案,无需 安装可选依赖项?

例如,我的库有选择地依赖于 Matplotlib。一些函数将 Axes 对象作为输入。

def some_plotting_func(data, ax: "matplotlib.axes.Axes" = None):
   if ax is None:
      from matplotlib.pylab import subplots
      _, ax = subplots(1, 1)

然后 MyPy 抱怨,因为 matplotlib 没有被导入(我不想将它加载到模块顶部,但只有在 some_plotting_func.

的函数体内需要时

MyPy 输出: error: Name "matplotlib" is not defined [name-defined]

可能你需要在cmd中安装matplotlib。