Message378710
I'm writing a subclass of `pathlib.Path` with custom `__fspath__`.
To prevent bad usages (users should use `os.fspath(path)` instead of `str(path)` to access the underlying path), I would like to overwrite `str`:
```
class MyPath(pathlib.PosixPath):
def __fspath__(self) -> str:
# Custom fspath
def __str__(self) -> str:
raise TypeError(
f'Please do not use `str()` directly:'
' * For display: Use, f-string, `.format` or `repr`'
' * To access the path string: Use `os.fspath`, as per PEP 519'
)
def __format__(self, format_spec) -> str:
return format(super().__str__(), format_spec)
```
However, this is breaking pathlib internal, as `str(self)` is used at many places. It would be nice if all internal `str()` calls where replaced by some `self._str()`.
I also think it would be more semantically correct if some of the `__str__` call where replaced by `__fspath__`, like: https://github.com/python/cpython/blob/b30934e9afb0af3f8e2e5f0992445be775b3c630/Lib/pathlib.py#L748 |
|
Date |
User |
Action |
Args |
2020-10-16 10:48:40 | conchylicultor | set | recipients:
+ conchylicultor |
2020-10-16 10:48:40 | conchylicultor | set | messageid: <1602845320.78.0.454867915032.issue42052@roundup.psfhosted.org> |
2020-10-16 10:48:40 | conchylicultor | link | issue42052 messages |
2020-10-16 10:48:40 | conchylicultor | create | |
|