python 中用类型提示注释路径的正确方法是什么?

What is the correct way in python to annotate a path with type hints?

在 python3 中注释这个从文件读取的简单实用函数的正确方法是什么? 它应该接受 pathlib.Path 对象以及传递路径的任何其他常见方式。

def read_json(path: <TYPE HINT>):
    with open(path, 'rb') as f:
        data = json.load(f)
    return data

在我看来,这个话题似乎在不断变化,我找不到收集这些信息的好地方。我对如何在 python 3.6、3.7 和 3.8 中处理此问题很感兴趣。

我假设典型的路径对象是 Paths 或 strs,因此您可以使用 Union:

import pathlib
import typing

typing.Union[str, pathlib.Path]