full_path = os.path.join(root, file) relpath = os.path.relpath(full_path, basedir) if prefix: relpath = os.path.join(ensure_text(prefix), relpath) zip.write(full_path, relpath) return zippath TAR = TarArchiver('w:', 'tar') TGZ = TarArchiver('w:gz', 'tar.gz') TBZ2 = TarArchiver('w:bz2', 'tar.bz2') ZIP = ZipArchiver(ZIP_DEFLATED) _ARCHIVER_BY_TYPE = OrderedDict(tar=TGZ, tgz=TGZ, tbz2=TBZ2, zip=ZIP) TYPE_NAMES = frozenset(_ARCHIVER_BY_TYPE.keys()) def archiver(typename): """Returns Archivers in common configurations. The typename must correspond to one of the following: 'tar' Returns a tar archiver that applies no compression and emits .tar files. 'tgz' Returns a tar archiver that applies gzip compression and emits .tar.gz files. 'tbz2' Returns a tar archiver that applies bzip2 compression and emits .tar.bz2 files. 'zip' Returns a zip archiver that applies standard compression and emits .zip files. """ archiver = _ARCHIVER_BY_TYPE.get(typename) if not archiver: raise ValueError('No archiver registered for %r' % typename) return archiver
full_path = os.path.join(root, file) relpath = os.path.relpath(full_path, basedir) if prefix: relpath = os.path.join(prefix.decode('utf-8'), relpath) zip.write(full_path, relpath) return zippath TAR = TarArchiver('w:', 'tar') TGZ = TarArchiver('w:gz', 'tar.gz') TBZ2 = TarArchiver('w:bz2', 'tar.bz2') ZIP = ZipArchiver(ZIP_DEFLATED) _ARCHIVER_BY_TYPE = OrderedDict(tar=TGZ, tgz=TGZ, tbz2=TBZ2, zip=ZIP) TYPE_NAMES = frozenset(_ARCHIVER_BY_TYPE.keys()) def archiver(typename): """Returns Archivers in common configurations. The typename must correspond to one of the following: 'tar' Returns a tar archiver that applies no compression and emits .tar files. 'tgz' Returns a tar archiver that applies gzip compression and emits .tar.gz files. 'tbz2' Returns a tar archiver that applies bzip2 compression and emits .tar.bz2 files. 'zip' Returns a zip archiver that applies standard compression and emits .zip files. """ archiver = _ARCHIVER_BY_TYPE.get(typename) if not archiver: raise ValueError('No archiver registered for %r' % typename) return archiver