From 829c2608a85f86c5213438e3ef5b6ff231f5f598 Mon Sep 17 00:00:00 2001 From: barneygale Date: Wed, 26 Feb 2025 21:30:47 +0000 Subject: [PATCH] GH-127381: pathlib ABCs: remove `WritablePath.mkdir()` arguments Remove the *mode*, *parents* and *exist_ok* arguments from `WritablePath.mkdir()`. These arguments imply support for POSIX permissions and checking for preexistence of the path or its parents, but subclasses of `WritablePath` may not have these capabilities. --- Lib/pathlib/_abc.py | 2 +- Lib/test/test_pathlib/test_pathlib_abc.py | 12 +++--------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/Lib/pathlib/_abc.py b/Lib/pathlib/_abc.py index 6b46aea9aea4b9..461c1422bdb4f9 100644 --- a/Lib/pathlib/_abc.py +++ b/Lib/pathlib/_abc.py @@ -386,7 +386,7 @@ def symlink_to(self, target, target_is_directory=False): raise NotImplementedError @abstractmethod - def mkdir(self, mode=0o777, parents=False, exist_ok=False): + def mkdir(self): """ Create a new directory at this given path. """ diff --git a/Lib/test/test_pathlib/test_pathlib_abc.py b/Lib/test/test_pathlib/test_pathlib_abc.py index a6e3e0709833a3..0bd895fb5a3afc 100644 --- a/Lib/test/test_pathlib/test_pathlib_abc.py +++ b/Lib/test/test_pathlib/test_pathlib_abc.py @@ -914,23 +914,17 @@ def __open_wb__(self, buffering=-1): self._directories[parent].add(name) return DummyWritablePathIO(self._files, path) - def mkdir(self, mode=0o777, parents=False, exist_ok=False): + def mkdir(self): path = str(self) parent = str(self.parent) if path in self._directories: - if exist_ok: - return - else: - raise FileExistsError(errno.EEXIST, "File exists", path) + raise FileExistsError(errno.EEXIST, "File exists", path) try: if self.name: self._directories[parent].add(self.name) self._directories[path] = set() except KeyError: - if not parents: - raise FileNotFoundError(errno.ENOENT, "File not found", parent) from None - self.parent.mkdir(parents=True, exist_ok=True) - self.mkdir(mode, parents=False, exist_ok=exist_ok) + raise FileNotFoundError(errno.ENOENT, "File not found", parent) from None def symlink_to(self, target, target_is_directory=False): raise NotImplementedError