def create(self, input_package_path, output_package_path, **kwargs):
force = kwargs.pop('<STR_LIT>',ArchiveDefaultOptions.force)<EOL>if len(kwargs) > <NUM_LIT:0>:<EOL><INDENT>raise Exception("<STR_LIT>" % kwargs)<EOL><DEDENT>logging.info("<STR_LIT>" % (input_package_path, output_package_path))<EOL>gpkg = GraftMPackage.acquire(input_package_path)<EOL>if gpkg.version != <NUM_LIT:3>:<EOL><INDENT>raise Exception("<STR_LIT>")<EOL><DEDENT>self._setup_output(output_package_path, force)<EOL>logging.debug("<STR_LIT>")<EOL>with tarfile.open(output_package_path, '<STR_LIT>') as tar:<EOL><INDENT>for path in itertools.chain([gpkg.contents_file_path(),<EOL>gpkg.alignment_hmm_path(),<EOL>gpkg.reference_package_path(),<EOL>gpkg.unaligned_sequence_database_path()],<EOL>[hmm for hmm in gpkg.search_hmm_paths() if hmm != gpkg.alignment_hmm_path()]):<EOL><INDENT>logging.debug("<STR_LIT>" % path)<EOL>tar.add(path,<EOL>os.path.join(os.path.basename(os.path.abspath(gpkg._base_directory)),<EOL>os.path.basename(path)))<EOL><DEDENT><DEDENT>logging.info("<STR_LIT>")<EOL>
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