Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
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.
  • Loading branch information
barneygale committed Feb 26, 2025
commit 829c2608a85f86c5213438e3ef5b6ff231f5f598
2 changes: 1 addition & 1 deletion Lib/pathlib/_abc.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.
"""
Expand Down
12 changes: 3 additions & 9 deletions Lib/test/test_pathlib/test_pathlib_abc.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down