code: def make_archive(
      base_name,
      format,
      root_dir=None,
      base_dir=None,
      verbose=0,
      dry_run=0,
      owner=None,
      group=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", "xztar", or "ztar".
  
      '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.
      """
      save_cwd = os.getcwd()
      if root_dir is not None:
          log.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}
  
      try:
          format_info = ARCHIVE_FORMATS[format]
      except KeyError:
          raise ValueError("unknown archive format '%s'" % format)
  
      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:
              log.debug("changing back to '%s'", save_cwd)
              os.chdir(save_cwd)
  
      return filename
  
file_path: catboost/contrib/tools/python3/src/Lib/distutils/archive_util.py
imports: import os
  from warnings import warn
  import sys
  from distutils.errors import DistutilsExecError
  from distutils.spawn import spawn
  from distutils.dir_util import mkpath
  from distutils import log
label_desc: Use image node_id 6 for calling a global function with example usage: make_archive(base_name, format, root_dir, base_dir, verbose, dry_run, owner, group) and returns: filename