Serhiy Storchaka added the comment:

Actually relative_to() returns invalid path object.

>>> import pathlib
>>> p = pathlib.PureWindowsPath('C:/Foo/Bar/Baz').relative_to('C:')
>>> p
PureWindowsPath('//Foo/Bar/Baz')
>>> str(p)
'\\\\Foo\\Bar\\Baz'
>>> p.drive
''
>>> p.root
''
>>> p.parts
('\\', 'Foo', 'Bar', 'Baz')
>>> p.is_absolute()
False
>>> p2 = pathlib.PureWindowsPath(str(p))
>>> p2.drive
'\\\\Foo\\Bar'
>>> p2.root
'\\'
>>> p2.parts
('\\\\Foo\\Bar\\', 'Baz')
>>> p2.is_absolute()
True

Here is a patch which fixes both bugs.

>>> import pathlib
>>> p = pathlib.PureWindowsPath('C:/Foo/Bar/Baz').relative_to('C:')
>>> p
PureWindowsPath('/Foo/Bar/Baz')
>>> str(p)
'\\Foo\\Bar\\Baz'
>>> p.drive
''
>>> p.root
'\\'
>>> p.parts
('\\', 'Foo', 'Bar', 'Baz')

----------
Added file: http://bugs.python.org/file33023/pathlib_relative_to_2.patch

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue19918>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to