Repository navigation
Support Path objects in the posix module #70215
Copy link
Copy link
Closed
Labels
OS-windowsextension-modulesC modules in the Modules dirC modules in the Modules dirtype-featureA feature request or enhancementA feature request or enhancement
Description
| BPO | 26027 |
|---|---|
| Nosy | @brettcannon, @pfmoore, @tjguk, @ethanfurman, @berkerpeksag, @vadmium, @zware, @serhiy-storchaka, @eryksun, @zooba, @JelleZijlstra |
| Dependencies | |
| Files |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
assignee = 'https://github.com/brettcannon'
closed_at = <Date 2016-08-27.19:59:15.038>
created_at = <Date 2016-01-06.21:05:29.971>
labels = ['extension-modules', 'type-feature', 'OS-windows']
title = 'Support Path objects in the posix module'
updated_at = <Date 2016-09-06.22:59:12.215>
user = 'https://github.com/serhiy-storchaka'bugs.python.org fields:
activity = <Date 2016-09-06.22:59:12.215>
actor = 'python-dev'
assignee = 'brett.cannon'
closed = True
closed_date = <Date 2016-08-27.19:59:15.038>
closer = 'berker.peksag'
components = ['Extension Modules', 'Windows']
creation = <Date 2016-01-06.21:05:29.971>
creator = 'serhiy.storchaka'
dependencies = ['26671', '26800']
files = ['42382', '43238', '44029', '44090', '44159']
hgrepos = []
issue_num = 26027
keywords = ['patch']
message_count = 27.0
messages = ['257642', '262963', '267427', '269212', '269220', '269797', '269801', '272061', '272556', '272650', '272677', '273161', '273734', '273735', '273745', '273748', '273749', '273754', '273786', '273788', '273791', '273792', '273793', '273799', '273800', '274650', '274654']
nosy_count = 12.0
nosy_names = ['brett.cannon', 'paul.moore', 'tim.golden', 'ethan.furman', 'python-dev', 'berker.peksag', 'martin.panter', 'zach.ware', 'serhiy.storchaka', 'eryksun', 'steve.dower', 'JelleZijlstra']
pr_nums = []
priority = 'normal'
resolution = 'fixed'
stage = 'resolved'
status = 'closed'
superseder = None
type = 'enhancement'
url = 'https://bugs.python.org/issue26027'
versions = ['Python 3.6']Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
OS-windowsextension-modulesC modules in the Modules dirC modules in the Modules dirtype-featureA feature request or enhancementA feature request or enhancement
Activity
serhiy-storchaka commentedon Jan 6, 2016
path_converter should be changed to accept objects with the "path" attribute. See bpo-22570 for details.
serhiy-storchaka commentedon Apr 6, 2016
Here is preliminary patch without tests. Writing tests will be tiresome.
JelleZijlstra commentedon Jun 5, 2016
The patch is obsolete because PEP-519 ended up going with a different approach. I submitted a new patch for the path_t converter in bpo-27186. That patch probably fits better here, so I'm resubmitting it.
brettcannon commentedon Jun 24, 2016
Did you still want to handle this, Serhiy, or should I assign the issue to myself?
serhiy-storchaka commentedon Jun 25, 2016
I'll take a look.
serhiy-storchaka commentedon Jul 4, 2016
At first glance bpo-27186-os_path_t.patch looks good.
But with the patch applied the error message in case of incorrect argument type is always "expected str, bytes or os.PathLike object, not ...". Currently it is more detailed and specific: contains the function and the argument names, and is aware that some functions accept an integer or None. I think the best way is to inline the code of PyOS_FSPath in path_converter.
Also we first resolve bpo-26800.
brettcannon commentedon Jul 4, 2016
I have no issues inlining -- with a comment about the inlining -- if it buys us better error messages in this critical case.
brettcannon commentedon Aug 5, 2016
Here is a version of Jelle's patch but with PyOS_FSPath() inlined.
Serhiy, does this work for you?
brettcannon commentedon Aug 12, 2016
Here is an updated patch that adds in change to posixmodule.c stemming from the new warning about using bytearrays. It also makes type checking more stringent for what __fspath__() returns.
serhiy-storchaka commentedon Aug 14, 2016
Added comments on Rietveld. Needed tests for supporting path-like objects. And it would be nice to have few tests for error messages.
11 remaining items
brettcannon commentedon Aug 27, 2016
Hopefully https://hg.python.org/cpython/rev/775158408ecb will fix the problem.
brettcannon commentedon Aug 27, 2016
It's still failing: http://buildbot.python.org/all/builders/AMD64%20Windows7%20SP1%203.x/builds/8176/steps/test/logs/stdio .
Don't have time to look at why right now and I'm on a Mac ATM so I can't test locally to try and fix it until I'm at work on Monday. If someone has an idea as to why this is only happening on Windows I'm open to understanding.
python-dev commentedon Aug 27, 2016
New changeset 8ec5a00e5d75 by Berker Peksag in branch 'default':
Issue bpo-26027: Fix test_path_t_converter on Windows
https://hg.python.org/cpython/rev/8ec5a00e5d75
berkerpeksag commentedon Aug 27, 2016
test_path_t_converter failure looks similar to http://bugs.python.org/issue27493#msg271047 (fixed by 5424252ce174.) I've tested a fix on my Windows box and the test passed for me. Hopefully 8ec5a00e5d75 will fix the problem on buildbots too :)
eryksun commentedon Aug 27, 2016
I wish the name was "pushCleanup" to emphasize that cleanup functions are popped and called in LIFO order.
berkerpeksag commentedon Aug 27, 2016
Builtbots look happy now:
brettcannon commentedon Aug 27, 2016
Thanks for fixing it, Berker!
On Sat, Aug 27, 2016, 12:59 Berker Peksag <[email protected]> wrote:
python-dev commentedon Sep 6, 2016
New changeset d0d9d7f55cb5 by Brett Cannon in branch 'default':
Issue bpo-26027: Support path-like objects in PyUnicode-FSConverter().
https://hg.python.org/cpython/rev/d0d9d7f55cb5
python-dev commentedon Sep 6, 2016
New changeset 9be0286772bf by Brett Cannon in branch 'default':
Issue bpo-26027, bpo-27524: Document the support for path-like objects in os and os.path.
https://hg.python.org/cpython/rev/9be0286772bf