bpo-39901: Move `pathlib.Path.owner()` and `group()` implementations into the path accessor. (GH-18844)
This commit is contained in:
parent
06a35542aa
commit
22386bb4ef
|
@ -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…
Reference in New Issue