[Python-Dev] Defining a path protocol
ericsnowcurrently at gmail.com
Thu Apr 7 10:21:34 EDT 2016
On Apr 7, 2016 1:22 AM, "Georg Brandl" <g.brandl at gmx.net> wrote:
> On 04/06/2016 07:26 PM, Brett Cannon wrote:
> > 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).
I also think that __ospath__ may be more correct since it is an
OS-dependent representation, e.g. slash vs. backslash.
> > 2. Method or attribute? (changes what kind of one-liner you might use
> > libraries, but I think historically all protocols have been methods
> > serialized string representation might be costly to build)
> An attribute would be somewhat inconsistent with the special-method
> (looked up on the type, not the instance), so a method is probably a
I was just about to point this out. The deviation by pickle (lookup on
instance rather than type) has been a source of pain.
> > 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
> > 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
> > 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
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-Dev