Fixed #1540112: now shutil.copytree will let you provide your own copy() function
diff --git a/Doc/library/shutil.rst b/Doc/library/shutil.rst
index 9d06903..8b9ee8e 100644
--- a/Doc/library/shutil.rst
+++ b/Doc/library/shutil.rst
@@ -87,7 +87,7 @@
match one of the glob-style *patterns* provided. See the example below.
-.. function:: copytree(src, dst, symlinks=False, ignore=None)
+.. function:: copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2)
Recursively copy an entire directory tree rooted at *src*. The destination
directory, named by *dst*, must not already exist; it will be created as well
@@ -111,9 +111,14 @@
If exception(s) occur, an :exc:`Error` is raised with a list of reasons.
- The source code for this should be considered an example rather than the
- ultimate tool.
+ 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:`copy2` is used, but any
+ function that supports the same signature (like :func:`copy`) can be used.
+ .. versionchanged:: 3.2
+ Added the *copy_function* argument to be able to provide a custom copy
+ function.
.. function:: rmtree(path, ignore_errors=False, onerror=None)