What is the correct way in python to annotate a path with type hints?
Question:
What is the proper way to annotate this simple utility function in python3 that reads from a file?
It should accept pathlib.Path
objects as well as any other common way of passing a path.
def read_json(path: <TYPE HINT>):
with open(path, 'rb') as f:
data = json.load(f)
return data
It seems to me as if this topic is in flux and I couldn’t find a good place where this information was collected. I am interested in how to handle this in python 3.6, 3.7 and 3.8.
Answers:
I assume that typical path objects are either Path
s or str
s, as such you could use a Union
:
import pathlib
import typing
typing.Union[str, os.PathLike]
What is the proper way to annotate this simple utility function in python3 that reads from a file?
It should accept pathlib.Path
objects as well as any other common way of passing a path.
def read_json(path: <TYPE HINT>):
with open(path, 'rb') as f:
data = json.load(f)
return data
It seems to me as if this topic is in flux and I couldn’t find a good place where this information was collected. I am interested in how to handle this in python 3.6, 3.7 and 3.8.
I assume that typical path objects are either Path
s or str
s, as such you could use a Union
:
import pathlib
import typing
typing.Union[str, os.PathLike]