diff options
author | Stefan Otte <stefan.otte@gmail.com> | 2018-08-03 20:49:42 (GMT) |
---|---|---|
committer | Berker Peksag <berker.peksag@gmail.com> | 2018-08-03 20:49:42 (GMT) |
commit | 46dc4e34ed8005a688d7f3512844ef227a3465f4 (patch) | |
tree | cbf2e5835ede278725ad4c66fb7d87e431509f17 | |
parent | 5a953fd0ab4d0f792f4c1537616b2ce8ee40d976 (diff) | |
download | cpython-46dc4e34ed8005a688d7f3512844ef227a3465f4.zip cpython-46dc4e34ed8005a688d7f3512844ef227a3465f4.tar.gz cpython-46dc4e34ed8005a688d7f3512844ef227a3465f4.tar.bz2 |
bpo-34329: Doc'd how to remove suffix of pathlib.Path() (GH-8655)
-rw-r--r-- | Doc/library/pathlib.rst | 6 | ||||
-rw-r--r-- | Lib/pathlib.py | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/Doc/library/pathlib.rst b/Doc/library/pathlib.rst index 3d28a1b..0929ee2 100644 --- a/Doc/library/pathlib.rst +++ b/Doc/library/pathlib.rst @@ -559,7 +559,8 @@ Pure paths provide the following methods and properties: .. method:: PurePath.with_suffix(suffix) Return a new path with the :attr:`suffix` changed. If the original path - doesn't have a suffix, the new *suffix* is appended instead:: + doesn't have a suffix, the new *suffix* is appended instead. If the + *suffix* is an empty string, the original suffix is removed:: >>> p = PureWindowsPath('c:/Downloads/pathlib.tar.gz') >>> p.with_suffix('.bz2') @@ -567,6 +568,9 @@ Pure paths provide the following methods and properties: >>> p = PureWindowsPath('README') >>> p.with_suffix('.txt') PureWindowsPath('README.txt') + >>> p = PureWindowsPath('README.txt') + >>> p.with_suffix('') + PureWindowsPath('README') .. _concrete-paths: diff --git a/Lib/pathlib.py b/Lib/pathlib.py index 8431c29..4fe9d4a 100644 --- a/Lib/pathlib.py +++ b/Lib/pathlib.py @@ -807,8 +807,10 @@ class PurePath(object): self._parts[:-1] + [name]) def with_suffix(self, suffix): - """Return a new path with the file suffix changed (or added, if none).""" - # XXX if suffix is None, should the current suffix be removed? + """Return a new path with the file suffix changed. If the path + has no suffix, add given suffix. If the given suffix is an empty + string, remove the suffix from the path. + """ f = self._flavour if f.sep in suffix or f.altsep and f.altsep in suffix: raise ValueError("Invalid suffix %r" % (suffix)) |