[Python-Dev] Defining a path protocol
Paul Moore
p.f.moore at gmail.com
Thu Apr 7 03:59:14 EDT 2016
More information about the Python-Dev mailing list
Thu Apr 7 03:59:14 EDT 2016
- Previous message (by thread): [Python-Dev] Defining a path protocol
- Next message (by thread): [Python-Dev] Defining a path protocol
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 6 April 2016 at 23:46, Brett Cannon <brett at python.org> wrote: > str(path) will definitely work, path.__path__ will work if you're running > the next set of bugfix releases. fspath(path) will only work in Python 3.6 > and newer. Ah, that was something I hadn't appreciated, that the builtin would be 3.6+ whereas the protocol would be added to current bugfix releases. >> Maybe a compatibility library could >> add >> >> try: >> fspath >> except NameError: >> try: >> import pathlib >> def fspath(p): >> if isinstance(p, pathlib.Path): >> return str(p) >> return p >> except ImportError: >> def fspath(p): >> return p >> >> It's messy, like all compatibility code, but it allows code to use >> fspath(p) in older versions. > > > I would tweak it to check for __fspath__ before it resorted to calling > str(), but yes, that could be something people use. Yeah, the above code assumes that if the builtin isn't available, nor will the protocol be (see my misunderstanding above). Paul
- Previous message (by thread): [Python-Dev] Defining a path protocol
- Next message (by thread): [Python-Dev] Defining a path protocol
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list