gh-88513: clarify shutil.copytree's dirs_exist_ok arg (GH-91434)

* add a paragraph to document this kwarg in detail
* update docstring in the source accordingly
This commit is contained in:
Jack DeVries 2022-04-11 20:57:52 -04:00 committed by GitHub
parent 9ebcece82f
commit f33e2c87a8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 9 deletions

View file

@ -230,9 +230,8 @@ Directory and files operations
dirs_exist_ok=False)
Recursively copy an entire directory tree rooted at *src* to a directory
named *dst* and return the destination directory. *dirs_exist_ok* dictates
whether to raise an exception in case *dst* or any missing parent directory
already exists.
named *dst* and return the destination directory. All intermediate
directories needed to contain *dst* will also be created by default.
Permissions and times of directories are copied with :func:`copystat`,
individual files are copied using :func:`~shutil.copy2`.
@ -263,8 +262,14 @@ Directory and files operations
If *copy_function* is given, it must be a callable that will be used to copy
each file. It will be called with the source path and the destination path
  as arguments. By default, :func:`~shutil.copy2` is used, but any function
  that supports the same signature (like :func:`~shutil.copy`) can be used.
as arguments. By default, :func:`~shutil.copy2` is used, but any function
that supports the same signature (like :func:`~shutil.copy`) can be used.
If *dirs_exist_ok* is false (the default) and *dst* already exists, a
:exc:`FileExistsError` is raised. If *dirs_exist_ok* is true, the copying
operation will continue if it encounters existing directories, and files
within the *dst* tree will be overwritten by corresponding files from the
*src* tree.
.. audit-event:: shutil.copytree src,dst shutil.copytree
@ -275,7 +280,7 @@ Directory and files operations
.. versionchanged:: 3.2
Added the *copy_function* argument to be able to provide a custom copy
function.
Added the *ignore_dangling_symlinks* argument to silent dangling symlinks
Added the *ignore_dangling_symlinks* argument to silence dangling symlinks
errors when *symlinks* is false.
.. versionchanged:: 3.8