Message211316
The changeset ef2b2ddd27c8 restricted the argument of Path.with_suffix() too much, and caused some strange behavior.
Case 1: removing suffix completely is disallowed now.
The following code worked before the fix:
>>> pathlib.PurePath('a', 'b.c').with_suffix('')
PurePosixPath('a/b')
but now fails with ValueError:
>>> pathlib.PurePath('a', 'b.c').with_suffix('')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/july/source/python/Lib/pathlib.py", line 760, in with_suffix
raise ValueError("Invalid suffix %r" % (suffix))
ValueError: Invalid suffix ''
It was the only one obvious way of removing the suffix, and I think it should remain so. (BTW: There is a XXX note in the code questioning if Path.with_suffix(None) should remove the suffix.)
Case 2: while the output is now always a correct Path, the suffix can still contain separator.
The following code produced incorrect path before the fix:
>>> pathlib.PurePath('a', 'b.c').with_suffix('./.s/.')
PurePosixPath('a/b./.s/.')
>>> _.parts
('a', 'b./.s/.')
Now, the produced path is correct, but the code itself is still allowed:
>>> pathlib.PurePath('a', 'b.c').with_suffix('./.s/.')
PurePosixPath('a/b.s')
while I would expect it to fail with ValueError.
Attached: proposed test patch. |
|
Date |
User |
Action |
Args |
2014-02-16 13:28:50 | july | set | recipients:
+ july, pitrou |
2014-02-16 13:28:50 | july | set | messageid: <1392557330.28.0.692268458915.issue20639@psf.upfronthosting.co.za> |
2014-02-16 13:28:50 | july | link | issue20639 messages |
2014-02-16 13:28:49 | july | create | |
|