[Python-Dev] file system path protocol PEP

Guido van Rossum guido at python.org
Thu May 12 12:24:04 EDT 2016


I am glad this is finally happening. There's quite a bit of noise in the
thread which I have to ignore. The two issues that I want to respond to are
speed and whether os.fspath() can return bytes.

- Speed: We should trust our ability to optimize the implementations where
necessary. First the API issues need to be settled.

- Bytes: I strongly believe that os.fspath() should be a thin wrapper
around the __fspath__ protocol, like next() wraps the .__next__ protocol.
It should not get into bytes vs. string politics. If your app really needs
strings, call os.fsdecode(). So this is my version (unoptimized):

def fspath(p: Union[str, bytes, PathLike]) -> Union[str, bytes]:
    if isinstance(p, (str, bytes)):
        return p
    try:
        return p.__fspath__
    except AttributeError:
        raise TypeError(...)

Other than that I think the PEP is already in fine shape.

-- 
--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20160512/dd232fdc/attachment.html>


More information about the Python-Dev mailing list