[Python-Dev] Defining a path protocol
Nikolaus Rath
Nikolaus at rath.org
Thu Apr 7 06:48:28 EDT 2016
On Apr 06 2016, Ethan Furman <ethan at stoneleaf.us> wrote:
> On 04/06/2016 11:15 PM, Greg Ewing wrote:
>> Chris Barker - NOAA Federal wrote:
>>> But fspath(), if it exists, would call __fspath__ on an arbitrary
>>> object, and create a new string -- not a new Path. That may be
>>> confusing...
>>
>> Maybe something like fspathstr/__fspathstr__ would be better?
>
> As someone already said, we don't need to embed the type in the name.
>
> The point of the __os_path__ protocol is to return the serialized
> version of the Path the object represents. This would be somewhat
> similar to the various __reduce*__ protocols (which I thought had
> something to do with adding until I learned what they were for).
Does anyone anticipate any classes other than those from pathlib to come
with such a method?
It seems odd to me to introduce a special method (and potentially a
buildin too) if it's only going to be used by a single module.
Why is:
path = getattr(obj, '__fspath__') if hasattr(obj, '__fspath__') else obj
better than
path = str(obj) if isinstance(obj, pathlib.Path) else obj
?
Yes, I know there are other pathlib-like modules out there. But isn't
pathlib meant to replace them?
Best,
Nikolaus
--
GPG encrypted emails preferred. Key id: 0xD113FCAC3C4E599F
Fingerprint: ED31 791B 2C5C 1613 AF38 8B8A D113 FCAC 3C4E 599F
»Time flies like an arrow, fruit flies like a Banana.«
More information about the Python-Dev
mailing list