bpo-40107: Switch to using io.open() for pathlib.Path.open() (GH-25240)

Previously we had identical behaviour but only allowed accessors to override os.open(). This change allows the override to also construct the IO wrapper as well.
This commit is contained in:
Barney Gale 2021-04-09 21:52:49 +01:00 committed by GitHub
parent 2d7fdc9073
commit 11c3bd3f6d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -350,7 +350,7 @@ class _NormalAccessor(_Accessor):
stat = os.stat
open = os.open
open = io.open
listdir = os.listdir
@ -1046,10 +1046,6 @@ class Path(PurePath):
# removed in the future.
pass
def _opener(self, name, flags, mode=0o666):
# A stub for the opener argument to built-in open()
return self._accessor.open(self, flags, mode)
# Public API
@classmethod
@ -1171,8 +1167,8 @@ class Path(PurePath):
"""
if "b" not in mode:
encoding = io.text_encoding(encoding)
return io.open(self, mode, buffering, encoding, errors, newline,
opener=self._opener)
return self._accessor.open(self, mode, buffering, encoding, errors,
newline)
def read_bytes(self):
"""