]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-39659: Route calls from pathlib.Path to os.getcwd() via the path accessor (GH...
authorBarney Gale <barney.gale@gmail.com>
Wed, 7 Apr 2021 16:31:49 +0000 (17:31 +0100)
committerGitHub <noreply@github.com>
Wed, 7 Apr 2021 16:31:49 +0000 (17:31 +0100)
Lib/pathlib.py

index 6838feae8dbe4f9e5b495149dbe8ef0472354918..9e682dcad9eac02ff6dfa179f5cb105d76b7799a 100644 (file)
@@ -187,7 +187,7 @@ class _WindowsFlavour(_Flavour):
     def resolve(self, path, strict=False):
         s = str(path)
         if not s:
-            return os.getcwd()
+            return path._accessor.getcwd()
         previous_s = None
         if _getfinalpathname is not None:
             if strict:
@@ -352,7 +352,7 @@ class _PosixFlavour(_Flavour):
             return path
         # NOTE: according to POSIX, getcwd() cannot contain path components
         # which are symlinks.
-        base = '' if path.is_absolute() else os.getcwd()
+        base = '' if path.is_absolute() else accessor.getcwd()
         return _resolve(base, str(path)) or sep
 
     def is_reserved(self, parts):
@@ -461,6 +461,8 @@ class _NormalAccessor(_Accessor):
         except ImportError:
             raise NotImplementedError("Path.group() is unsupported on this system")
 
+    getcwd = os.getcwd
+
 
 _normal_accessor = _NormalAccessor()
 
@@ -1096,7 +1098,7 @@ class Path(PurePath):
         """Return a new path pointing to the current working directory
         (as returned by os.getcwd()).
         """
-        return cls(os.getcwd())
+        return cls(cls()._accessor.getcwd())
 
     @classmethod
     def home(cls):
@@ -1165,7 +1167,7 @@ class Path(PurePath):
             return self
         # FIXME this must defer to the specific flavour (and, under Windows,
         # use nt._getfullpathname())
-        return self._from_parts([os.getcwd()] + self._parts)
+        return self._from_parts([self._accessor.getcwd()] + self._parts)
 
     def resolve(self, strict=False):
         """