mirror of
https://github.com/python/cpython.git
synced 2025-08-22 17:55:18 +00:00
bpo-39901: Move pathlib.Path.owner()
and group()
implementations into the path accessor. (GH-18844)
This commit is contained in:
parent
06a35542aa
commit
22386bb4ef
1 changed files with 16 additions and 10 deletions
|
@ -447,6 +447,20 @@ class _NormalAccessor(_Accessor):
|
|||
def readlink(self, path):
|
||||
return os.readlink(path)
|
||||
|
||||
def owner(self, path):
|
||||
try:
|
||||
import pwd
|
||||
return pwd.getpwuid(self.stat(path).st_uid).pw_name
|
||||
except ImportError:
|
||||
raise NotImplementedError("Path.owner() is unsupported on this system")
|
||||
|
||||
def group(self, path):
|
||||
try:
|
||||
import grp
|
||||
return grp.getgrgid(self.stat(path).st_gid).gr_name
|
||||
except ImportError:
|
||||
raise NotImplementedError("Path.group() is unsupported on this system")
|
||||
|
||||
|
||||
_normal_accessor = _NormalAccessor()
|
||||
|
||||
|
@ -1202,15 +1216,13 @@ class Path(PurePath):
|
|||
"""
|
||||
Return the login name of the file owner.
|
||||
"""
|
||||
import pwd
|
||||
return pwd.getpwuid(self.stat().st_uid).pw_name
|
||||
return self._accessor.owner(self)
|
||||
|
||||
def group(self):
|
||||
"""
|
||||
Return the group name of the file gid.
|
||||
"""
|
||||
import grp
|
||||
return grp.getgrgid(self.stat().st_gid).gr_name
|
||||
return self._accessor.group(self)
|
||||
|
||||
def open(self, mode='r', buffering=-1, encoding=None,
|
||||
errors=None, newline=None):
|
||||
|
@ -1544,11 +1556,5 @@ class WindowsPath(Path, PureWindowsPath):
|
|||
"""
|
||||
__slots__ = ()
|
||||
|
||||
def owner(self):
|
||||
raise NotImplementedError("Path.owner() is unsupported on this system")
|
||||
|
||||
def group(self):
|
||||
raise NotImplementedError("Path.group() is unsupported on this system")
|
||||
|
||||
def is_mount(self):
|
||||
raise NotImplementedError("Path.is_mount() is unsupported on this system")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue