(base_name, format, root_dir=None, base_dir=None, verbose=0,
                 dry_run=0, owner=None, group=None, logger=None)
return filename
Create an archive file (eg. zip or tar).

    'base_name' is the name of the file to create, minus any format-specific
    extension; 'format' is the archive format: one of "zip", "tar", "gztar",
    "bztar", or "xztar".  Or any other registered format.

    'root_dir' is a directory that will be the root directory of the
    archive; ie. we typically chdir into 'root_dir' before creating the
    archive.  'base_dir' is the directory where we start archiving from;
    ie. 'base_dir' will be the common prefix of all files and
    directories in the archive.  'root_dir' and 'base_dir' both default
    to the current directory.  Returns the name of the archive file.

    'owner' and 'group' are used when creating a tar archive. By default,
    uses the current owner and group.
Create an archive file (eg. zip or tar).
Create an archive file ( eg . zip or tar ) .
def make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0,
                 dry_run=0, owner=None, group=None, logger=None):
    """Create an archive file (eg. zip or tar).

    'base_name' is the name of the file to create, minus any format-specific
    extension; 'format' is the archive format: one of "zip", "tar", "gztar",
    "bztar", or "xztar".  Or any other registered format.

    'root_dir' is a directory that will be the root directory of the
    archive; ie. we typically chdir into 'root_dir' before creating the
    archive.  'base_dir' is the directory where we start archiving from;
    ie. 'base_dir' will be the common prefix of all files and
    directories in the archive.  'root_dir' and 'base_dir' both default
    to the current directory.  Returns the name of the archive file.

    'owner' and 'group' are used when creating a tar archive. By default,
    uses the current owner and group.
    """
    sys.audit("shutil.make_archive", base_name, format, root_dir, base_dir)
    save_cwd = os.getcwd()
    if root_dir is not None:
        if logger is not None:
            logger.debug("changing into '%s'", root_dir)
        base_name = os.path.abspath(base_name)
        if not dry_run:
            os.chdir(root_dir)

    if base_dir is None:
        base_dir = os.curdir

    kwargs = {'dry_run': dry_run, 'logger': logger}

    try:
        format_info = _ARCHIVE_FORMATS[format]
    except KeyError:
        raise ValueError("unknown archive format '%s'" % format) from None

    func = format_info[0]
    for arg, val in format_info[1]:
        kwargs[arg] = val

    if format != 'zip':
        kwargs['owner'] = owner
        kwargs['group'] = group

    try:
        filename = func(base_name, base_dir, **kwargs)
    finally:
        if root_dir is not None:
            if logger is not None:
                logger.debug("changing back to '%s'", save_cwd)
            os.chdir(save_cwd)

    return filename
def make_archive ( base_name , format , root_dir = None , base_dir = None , verbose = 0 , dry_run = 0 , owner = None , group = None , logger = None ) : sys . audit ( "shutil.make_archive" , base_name , format , root_dir , base_dir ) save_cwd = os . getcwd ( ) if root_dir is not None : if logger is not None : logger . debug ( "changing into '%s'" , root_dir ) base_name = os . path . abspath ( base_name ) if not dry_run : os . chdir ( root_dir ) if base_dir is None : base_dir = os . curdir kwargs = { 'dry_run' : dry_run , 'logger' : logger } try : format_info = _ARCHIVE_FORMATS [ format ] except KeyError : raise ValueError ( "unknown archive format '%s'" % format ) from None func = format_info [ 0 ] for arg , val in format_info [ 1 ] : kwargs [ arg ] = val if format != 'zip' : kwargs [ 'owner' ] = owner kwargs [ 'group' ] = group try : filename = func ( base_name , base_dir , * * kwargs ) finally : if root_dir is not None : if logger is not None : logger . debug ( "changing back to '%s'" , save_cwd ) os . chdir ( save_cwd ) return filename