[Python-Dev] Pathlib enhancements - acceptable inputs and outputs for __fspath__ and os.fspath()
Nick Coghlan
ncoghlan at gmail.com
Tue Apr 19 10:26:44 EDT 2016
More information about the Python-Dev mailing list
Tue Apr 19 10:26:44 EDT 2016
- Previous message (by thread): [Python-Dev] Pathlib enhancements - acceptable inputs and outputs for __fspath__ and os.fspath()
- Next message (by thread): [Python-Dev] Pathlib enhancements - acceptable inputs and outputs for __fspath__ and os.fspath()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 19 April 2016 at 21:55, Stephen J. Turnbull <stephen at xemacs.org> wrote: > I really want to know. I'm not 100% sure that's the right way to go, > mostly because Nick and Brett are signed up for polymorphism. But I > sure haven't seen any explicit arguments for polymorphism, though I've > asked for them. AFAICS, everybody just assumed that because some > related APIs are polymorphic, this one should be, too, and dove into > the problem of how to make a polymorphic API safe for Python 3. > In my case, it's ~5 years of peripheral involvement in porting the Fedora ecosystem to Python 3. I haven't personally done that much of the actual porting work, but I've spent plenty of time talking to the folks that are, and tweaking various things to make their lives easier where I could make the case that there was either a benefit to Python 3, or at least no harm to it. The gist of the motivation for bytes/str polymorphism here is similar to that for restoring __mod__ polymorphism in https://www.python.org/dev/peps/pep-0461/: the bytes/str duality is as much a fact of life when dealing with OS interfaces as it is when dealing with wire protocols, so if __fspath__ is polymorphic, then it's easier for compatibility modules like six and future to define their own "fspath" helper functions that work on both Python 2 and Python 3 across all supported platforms. This is also why I ended up proposing pushing the complexity down into a documented-but-underscore-prefixed API: folks writing pure Python 3 application code *really* shouldn't need to worry about the bytes support in the protocol, but for operating system level use cases, not having it readily available to 2/3 compatible Python code would be a pain. Cheers, Nick. -- Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20160420/cf775fc5/attachment.html>
- Previous message (by thread): [Python-Dev] Pathlib enhancements - acceptable inputs and outputs for __fspath__ and os.fspath()
- Next message (by thread): [Python-Dev] Pathlib enhancements - acceptable inputs and outputs for __fspath__ and os.fspath()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list