[Python-Dev] Defining a path protocol (original) (raw)

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 ospath 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