##
7.16.2 PyZipFile Objects

The `PyZipFile` constructor takes the same parameters as the `ZipFile` constructor. Instances have one method in addition to those of `ZipFile` objects.

`writepy` (pathname[, basename])
  Search for files *.py and add the corresponding file to the archive. The corresponding file is a *.pyo file if available, else a *.pyc file, compiling if necessary. If the pathname is a file, the filename must end with .py, and just the (corresponding *.py[co]) file is added at the top level (no path information). If it is a directory, and the directory is not a package directory, then all the files *.py[co] are added at the top level. If the directory is a package directory, then all *.py[oc] are added under the package name as a file path, and if any subdirectories are package directories, all of these are added recursively. basename is intended for internal use only. The `writepy()` method makes archives with file names like this:

            string.pyc                                # Top level name
            test/__init__.pyc                         # Package directory
            test/testall.pyc                          # Module test.testall
            test/bogus/__init__.pyc                   # Subpackage directory
            test/bogus/myfile.pyc                     # Submodule test.bogus.myfile