[Python-Dev] Defining a path protocol
Georg Brandl
g.brandl at gmx.net
Thu Apr 7 03:19:17 EDT 2016
On 04/06/2016 07:26 PM, Brett Cannon wrote:
> WIth Ethan volunteering to do the work to help make a path protocol a thing --
> and I'm willing to help along with propagating this through the stdlib where I
> think Serhiy might be interested in helping as well -- and a seeming consensus
> this is a good idea, it seems like this proposal has a chance of actually coming
> to fruition.
>
> Now we need clear details. :) Some open questions are:
Throwing in my 2 bikesheds here, not having read all subthreads:
> 1. Name: __path__, __fspath__, or something else?
__path__ is already taken as a module attribute, so I would avoid it.
__fspath__ is fine with me, although the more explicit variants are also
ok. It's not like you need to read/write it constantly (that's the goal).
> 2. Method or attribute? (changes what kind of one-liner you might use in
> libraries, but I think historically all protocols have been methods and the
> serialized string representation might be costly to build)
An attribute would be somewhat inconsistent with the special-method lookup rules
(looked up on the type, not the instance), so a method is probably a better
choice.
> 3. Built-in? (name is dependent on #1 if we add one)
I don't think it warrants a builtin. I'd place it as a function in pathlib.
> 4. Add the method/attribute to str? (I assume so, much like __index__() is on
> int, but I have not seen it explicitly stated so I would rather clarify it)
+1.
> 5. Expand the C API to have something like PyObject_Path()?
+1 (with _Py_ at first) since you're going to need it in a lot of C functions.
Georg
More information about the Python-Dev
mailing list