在 python 和类型中动态检查参数类型

Check parameter types dynamically in python and typings

我有一个带有某种管道结构的 class,我想要一个函数来检查管道中的步骤是否兼容。因此,我想遍历所有步骤并根据类型提示检查输入是否与上一步的输出兼容。现在,这是通过从签名中提取类型然后比较类型来完成的。问题是,我如何比较类型?由于某种原因,我似乎找不到任何方法。例如 Any 根本不能与 issubclass 一起使用。我使用 python 3.8。我希望它适用于以下实例:

is_compatible(List, Any) # => True
is_compatible(List[np.ndarray], List[Union[np.ndarray, list]]) # => True
is_compatible(List[str], List[int]) # => False
# etc.

例子

    from typing_utils import issubtype
    issubtype(typing.List, typing.Any) == True
    issubtype(list, list) == True
    issubtype(list, typing.List) == True
    issubtype(list, typing.List[int]) == False