N.P. Khelili <nop...@free.fr> added the comment:
First, there is no real special case about the '.' path. The parse_args() method simlply removes then during __new__() (around line 80) as they are not needed. Double dots having to be kept, are later considered valid by the name @property. In test_pathlib.py, '..' are just ignored in a lot of tests. In my previous post, I pointed the bahaviour of .stem and .parent. But we should also consider the question of .anchor. The doc says that it should return the """The concatenation of the drive and root, or ''.""" but the code is: anchor = self._drv + self._root return anchor leading to: >>> Path('.').anchor '' >>> Path('..').anchor '' and: >>> Path('foo').anchor '' when one would probably expect '.', './..' and './foo'. I also found: >>> Path('*').match('.') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/nono/BUILD/cpython/Lib/pathlib.py", line 956, in match raise ValueError("empty pattern") ValueError: empty pattern >>> Path('*').match('..') False While the behaviour of .stem (cf up msg 344770) dates from initial commit of test_pathlib, maybe breaking it may be a bad idea... ( I really don't know.) I have a working code that sets name to '' for '..' and adds a special case in .stem() so that we do not remove any line in test_pathlib, but only adds some. I think anyway, it is too soon for any pull request. Questions are: - Should .name allways return a string, even if empty? - Should P('..').parent really return '.'? - Is it ok that .match() make that much difference between '.' and '..'? - Am I correct in my expectations about .anchor ? - May .stem behaviour be changed ? ---------- title: pathlib.with_name() doesn't like unnamed files. -> pathlib does not handle '..' directory _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue37130> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com