patool/doc/development.txt

75 lines
2.4 KiB
Plaintext

Development with the patoolib library
======================================
The patool funtionality can also be used in other Python programs.
To do this, install the patool program, import the library and
use one or more of the convenience functions.
import patoolib
if patoolib.extract("myarchive.zip", verbose=True) == 0:
print "Success."
else:
print "Error."
General rules for all convenience functions:
* All convenience function return zero when no error occurred, else
an integer unequal zero.
* Error messages are printed on stderr, informative messages
are printed on stdout.
* All file arguments are filenames. File objects are not accepted
as input.
* Filenames can be relative or absolute.
The convenience functions are:
* ``def extract(archive, verbose=False, outdir=None)``
This function extracts the given archive filename to the current
working directory or if specified to the given directory name in outdir.
If verbose operation is set to True, additional output of the archive
program is shown.
* ``def list(archive, verbose=False)``
This function lists the contents of the given archive filename
on stdout.
If verbose operation is set to True, additional output of the archive
program is shown.
* ``def test(archive, verbose=False)``
This function tests the given archive filename.
If verbose operation is set to True, additional output of the archive
program is shown.
* ``def create(archive, *filenames, **kwargs)``
This function creates a new archive. The type of archive is determined
by the archive filename extension. The archive must not already
exist.
The list of filenames to add to the archive must not be empty and the
files must exist and be readable.
If verbose operation is set to True, additional output of the archive
program is shown.
* ``def diff(archive1, archive2, verbose=False)``
This function lists differences in the content of the two archives.
Both archives are extracted and the contents are compared
recursively with the diff(1) program.
If verbose operation is set to True, additional output of the archive
program is shown.
* ``def repack(archive1, archive2, verbose=False)``
This function extracts the contents of archive1 and packs them
into archive2.
Archive1 and archive2 must be different files.
If verbose operation is set to True, additional output of the archive
program is shown.