Issue #19777: Provide a home() classmethod on Path objects.

Contributed by Victor Salgado and Mayank Tripathi.
This commit is contained in:
Antoine Pitrou 2015-01-12 21:03:41 +01:00
parent 2b4ec1ce8a
commit 17cba7daf5
5 changed files with 34 additions and 0 deletions

View File

@ -628,6 +628,17 @@ call fails (for example because the path doesn't exist):
PosixPath('/home/antoine/pathlib')
.. classmethod:: Path.home()
Return a new path object representing the user's home directory (as
returned by :func:`os.path.expanduser` with ``~`` construct)::
>>> Path.home()
PosixPath('/home/antoine')
.. versionadded:: 3.5
.. method:: Path.stat()
Return information about this path (similarly to :func:`os.stat`).

View File

@ -1008,6 +1008,13 @@ class Path(PurePath):
"""
return cls(os.getcwd())
@classmethod
def home(cls):
"""Return a new path pointing to the user's home directory (as
returned by os.path.expanduser('~')).
"""
return cls(cls()._flavour.gethomedir(None))
def samefile(self, other_path):
"""Return whether `other_file` is the same or not as this file.
(as returned by os.path.samefile(file, other_file)).

View File

@ -1261,6 +1261,17 @@ class _BasePathTest(object):
p = self.cls.cwd()
self._test_cwd(p)
def _test_home(self, p):
q = self.cls(os.path.expanduser('~'))
self.assertEqual(p, q)
self.assertEqual(str(p), str(q))
self.assertIs(type(p), type(q))
self.assertTrue(p.is_absolute())
def test_home(self):
p = self.cls.home()
self._test_home(p)
def test_samefile(self):
fileA_path = os.path.join(BASE, 'fileA')
fileB_path = os.path.join(BASE, 'dirB', 'fileB')

View File

@ -1201,6 +1201,7 @@ Sébastien Sablé
Suman Saha
Hajime Saitou
George Sakkis
Victor Salgado
Rich Salz
Kevin Samborn
Adrian Sampson
@ -1390,6 +1391,7 @@ David Townshend
Nathan Trapuzzano
Laurence Tratt
Alberto Trevino
Mayank Tripathi
Matthias Troffaes
Tom Tromey
John Tromp

View File

@ -203,6 +203,9 @@ Core and Builtins
Library
-------
- Issue #19777: Provide a home() classmethod on Path objects. Contributed
by Victor Salgado and Mayank Tripathi.
- Issue #23206: Make ``json.dumps(..., ensure_ascii=False)`` as fast as the
default case of ``ensure_ascii=True``. Patch by Naoki Inada.