diff --git a/stdlib/3/os/__init__.pyi b/stdlib/3/os/__init__.pyi index ecf894e14..b19359561 100644 --- a/stdlib/3/os/__init__.pyi +++ b/stdlib/3/os/__init__.pyi @@ -182,8 +182,24 @@ class statvfs_result: # Unix only f_namemax = 0 # ----- os function stubs ----- -def fsencode(filename: str) -> bytes: ... -def fsdecode(filename: bytes) -> str: ... +if sys.version_info >= (3, 6): + def fsencode(filename: Union[str, PathLike]) -> bytes: ... +else: + def fsencode(filename: str) -> bytes: ... + +if sys.version_info >= (3, 6): + def fsdecode(filename: Union[bytes, PathLike]) -> str: ... +else: + def fsdecode(filename: bytes) -> str: ... + +if sys.version_info >= (3, 6): + @overload + def fspath(path: str) -> str: ... + @overload + def fspath(path: bytes) -> bytes: ... + @overload + def fspath(path: PathLike) -> Union[str, bytes]: ... + def get_exec_path(env: Optional[Mapping[str, str]] = ...) -> List[str]: ... # NOTE: get_exec_path(): returns List[bytes] when env not None def ctermid() -> str: ... # Unix only