Kaydet (Commit) 17cba7da authored tarafından Antoine Pitrou's avatar Antoine Pitrou

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

Contributed by Victor Salgado and Mayank Tripathi.
üst 2b4ec1ce
...@@ -628,6 +628,17 @@ call fails (for example because the path doesn't exist): ...@@ -628,6 +628,17 @@ call fails (for example because the path doesn't exist):
PosixPath('/home/antoine/pathlib') 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() .. method:: Path.stat()
Return information about this path (similarly to :func:`os.stat`). Return information about this path (similarly to :func:`os.stat`).
......
...@@ -1008,6 +1008,13 @@ class Path(PurePath): ...@@ -1008,6 +1008,13 @@ class Path(PurePath):
""" """
return cls(os.getcwd()) 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): def samefile(self, other_path):
"""Return whether `other_file` is the same or not as this file. """Return whether `other_file` is the same or not as this file.
(as returned by os.path.samefile(file, other_file)). (as returned by os.path.samefile(file, other_file)).
......
...@@ -1261,6 +1261,17 @@ class _BasePathTest(object): ...@@ -1261,6 +1261,17 @@ class _BasePathTest(object):
p = self.cls.cwd() p = self.cls.cwd()
self._test_cwd(p) 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): def test_samefile(self):
fileA_path = os.path.join(BASE, 'fileA') fileA_path = os.path.join(BASE, 'fileA')
fileB_path = os.path.join(BASE, 'dirB', 'fileB') fileB_path = os.path.join(BASE, 'dirB', 'fileB')
......
...@@ -1201,6 +1201,7 @@ Sébastien Sablé ...@@ -1201,6 +1201,7 @@ Sébastien Sablé
Suman Saha Suman Saha
Hajime Saitou Hajime Saitou
George Sakkis George Sakkis
Victor Salgado
Rich Salz Rich Salz
Kevin Samborn Kevin Samborn
Adrian Sampson Adrian Sampson
...@@ -1390,6 +1391,7 @@ David Townshend ...@@ -1390,6 +1391,7 @@ David Townshend
Nathan Trapuzzano Nathan Trapuzzano
Laurence Tratt Laurence Tratt
Alberto Trevino Alberto Trevino
Mayank Tripathi
Matthias Troffaes Matthias Troffaes
Tom Tromey Tom Tromey
John Tromp John Tromp
......
...@@ -203,6 +203,9 @@ Core and Builtins ...@@ -203,6 +203,9 @@ Core and Builtins
Library 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 - Issue #23206: Make ``json.dumps(..., ensure_ascii=False)`` as fast as the
default case of ``ensure_ascii=True``. Patch by Naoki Inada. default case of ``ensure_ascii=True``. Patch by Naoki Inada.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment