On 12.05.2016 17:42, Ethan Furman wrote:
On 05/12/2016 01:31 AM, Sven R. Kunze wrote:
I think the "Rationale" section ignores the fact the Path also supports the .path attribute now. Which indeed defines a common interface between path objects.
The version of Python that has Path.path has not been released yet. And even so, .path is not a "common interface" as neither str nor bytes have it, and they also are used as path objects.
str and bytes will receive the __fspath__ attribute when this PEP is accepted?
And even given all that, for smoother interoperability with the rest of the stdlib, or at least the os.* portion, those functions would still need to be upgraded to check for .path on the incoming arguments -- at which point we may as well make a protocol to properly support file system paths instead of relying on the rather generic attribute name of 'path'.
Just so, if you accept changing os.* as a necessary solution. If not, keeping .path would suffice and would be much simpler. Best, Sven