bpo-31072: Rename the new filter argument for zipapp.create_archive. (#3049)

bpo-31072: Rename the new filter argument for zipapp.create_archive (GH-3049)

* Rename the new argument to "filter"
* Improve tests for the new functionality
* Add a "What's New" entry.
diff --git a/Doc/library/zipapp.rst b/Doc/library/zipapp.rst
index 993c2cc..120bbbb 100644
--- a/Doc/library/zipapp.rst
+++ b/Doc/library/zipapp.rst
@@ -99,7 +99,7 @@
 
 
 .. function:: create_archive(source, target=None, interpreter=None, main=None,
-                             include_file=None)
+                             filter=None)
 
    Create an application archive from *source*.  The source can be any
    of the following:
@@ -144,9 +144,10 @@
    contain a ``__main__.py`` file, as otherwise the resulting archive
    would not be executable.
 
-   The *include_file* argument specifies a callback function that is passed the
-   relative path to the file in order to determine which files to store when
-   being called against a directory.
+   The optional *filter* argument specifies a callback function that
+   is passed a Path object representing the path to the file being added
+   (relative to the source directory).  It should return ``True`` if the
+   file is to be added.
 
    If a file object is specified for *source* or *target*, it is the
    caller's responsibility to close it after calling create_archive.
@@ -157,6 +158,9 @@
    passed to the ``zipfile.ZipFile`` class, and must supply the methods
    needed by that class.
 
+   .. versionadded:: 3.7
+      Added the *filter* argument.
+
 .. function:: get_interpreter(archive)
 
    Return the interpreter specified in the ``#!`` line at the start of the
diff --git a/Doc/whatsnew/3.7.rst b/Doc/whatsnew/3.7.rst
index a92ad9f..8547660 100644
--- a/Doc/whatsnew/3.7.rst
+++ b/Doc/whatsnew/3.7.rst
@@ -258,6 +258,13 @@
 keyword argument.  When it's true, zeros are represented by ``'`'``
 instead of spaces.  (Contributed by Xiang Zhang in :issue:`30103`.)
 
+zipapp
+------
+
+Function :func:`zipapp.create_archive` now accepts an optional *filter*
+argument, to allow the user to select which files should be included in the
+archive.
+
 
 Optimizations
 =============