|
7 | 7 | from io import BufferedIOBase, BytesIO, RawIOBase, TextIOWrapper
|
8 | 8 | import mmap
|
9 | 9 | import os
|
10 |
| -import pathlib |
11 | 10 | from typing import IO, Any, AnyStr, Dict, List, Mapping, Optional, Tuple, cast
|
12 | 11 | from urllib.parse import (
|
13 | 12 | urljoin,
|
@@ -176,19 +175,8 @@ def stringify_path(
|
176 | 175 | Any other object is passed through unchanged, which includes bytes,
|
177 | 176 | strings, buffers, or anything else that's not even path-like.
|
178 | 177 | """
|
179 |
| - if hasattr(filepath_or_buffer, "__fspath__"): |
180 |
| - # https://github.com/python/mypy/issues/1424 |
181 |
| - # error: Item "str" of "Union[str, Path, IO[str]]" has no attribute |
182 |
| - # "__fspath__" [union-attr] |
183 |
| - # error: Item "IO[str]" of "Union[str, Path, IO[str]]" has no attribute |
184 |
| - # "__fspath__" [union-attr] |
185 |
| - # error: Item "str" of "Union[str, Path, IO[bytes]]" has no attribute |
186 |
| - # "__fspath__" [union-attr] |
187 |
| - # error: Item "IO[bytes]" of "Union[str, Path, IO[bytes]]" has no |
188 |
| - # attribute "__fspath__" [union-attr] |
189 |
| - filepath_or_buffer = filepath_or_buffer.__fspath__() # type: ignore[union-attr] |
190 |
| - elif isinstance(filepath_or_buffer, pathlib.Path): |
191 |
| - filepath_or_buffer = str(filepath_or_buffer) |
| 178 | + if isinstance(filepath_or_buffer, os.PathLike): |
| 179 | + filepath_or_buffer = filepath_or_buffer.__fspath__() |
192 | 180 | return _expand_user(filepath_or_buffer)
|
193 | 181 |
|
194 | 182 |
|
|
0 commit comments