docs: def create(self, input_package_path, output_package_path, **kwargs):
          """Create an archived GraftM package
  
          Parameters
          ----------
          input_package_path: str
              path to gpkg to be archived
          output_pacakge_path: str
              output package path
          kwargs:
              force: bool
                  overwrite an existing directory
          """
          force = kwargs.pop('force',ArchiveDefaultOptions.force)
          if len(kwargs) > 0:
              raise Exception("Unexpected arguments detected: %s" % kwargs)
  
          logging.info("Archiving GraftM package '%s' as '%s'" % (input_package_path, output_package_path))
          gpkg = GraftMPackage.acquire(input_package_path)
          if gpkg.version != 3:
              raise Exception("Archiving GraftM packages only works with format 3 packages")
  
          self._setup_output(output_package_path, force)
  
          logging.debug("Compressing contents for archive")
          with tarfile.open(output_package_path, 'w:gz') as tar:
              for path in itertools.chain([gpkg.contents_file_path(),
                                           gpkg.alignment_hmm_path(),
                                           gpkg.reference_package_path(),
                                           gpkg.unaligned_sequence_database_path()],
                                          [hmm for hmm in gpkg.search_hmm_paths() if hmm != gpkg.alignment_hmm_path()]):
                  logging.debug("Compressing '%s'" % path)
                  # Put the gpkg folder itself in the archive so as not to tar bomb.
                  tar.add(path,
                          os.path.join(os.path.basename(os.path.abspath(gpkg._base_directory)),
                                       os.path.basename(path)))
              
          logging.info("Archive successfully created")