[Python-Dev] file system path protocol PEP

Ethan Furman ethan at stoneleaf.us
Wed May 11 17:15:37 EDT 2016


On 05/11/2016 01:51 PM, Ethan Furman wrote:
> On 05/11/2016 01:44 PM, Serhiy Storchaka wrote:

>>> os.path
>>> '''''''
>>>
>>> The various path-manipulation functions of ``os.path`` [#os-path]_
>>> will be updated to accept path objects. For polymorphic functions that
>>> accept both bytes and strings, they will be updated to simply use
>>> code very much similar to
>>> ``path.__fspath__() if  hasattr(path, '__fspath__') else path``. This
>>> will allow for their pre-existing type-checking code to continue to
>>> function.
>>
>> I afraid that this will hit a performance. Some os.path functions are
>> used in tight loops, they are hard optimized, and adding support of path
>> protocol can have visible negative effect.
>
> Do you have an example of os.path functions being used in a tight loop?

Also, the C code for fspath can check types first and take the fast path 
if bytes/str are passed in, only falling back to the __fspath__ protocol 
if something else was passed in -- which should make any performance 
hits negligible.

--
~Ethan~



More information about the Python-Dev mailing list