Skip to main content

Extract Enhanced Deflate ZIP archives with Python's zipfile API.

Project description

Test Status Documentation Status

Extract Enhanced Deflate ZIP archives with Python’s zipfile API.

Installation

pip install zipfile-inflate64

Usage

Anywhere in a Python codebase:

import zipfile_inflate64  # This has the side effect of patching the zipfile module to support Enhanced Deflate

Alternatively, zipfile_inflate64 re-exports the zipfile API, as a convenience:

import zipfile_inflate64 as zipfile

zipfile.ZipFile(...)

Design Rationale

The Problem

Recent versions of Microsoft Windows Explorer [use Deflate64 compression when creating ZIP files larger than 2GB](https://github.com/dotnet/runtime/issues/17802#issuecomment-231808916). With the ubiquity of Windows and the ease of using “Sent to compressed folder”, a majority of newly-created large ZIP files use Deflate64 compression.

Solution

Python package [inflate64](https://pypi.org/project/inflate64/) provide compression(deflate) and decompression(inflate) by Enhanced Deflate, aka Deflate64, procedure.

To manage ZIP archive extraction operations, the Python standard library [zipfile](https://docs.python.org/3/library/zipfile.html) module provides the essential features and is already ubiquitous in availability and usage. However, zipfile is difficult to extend, as it hardcodes many conditionals for compression formats and does not provide capabilities for easily augmenting or replacing parts of it. Monkey-patching can overcome some of these problems, and the promise of a drop-in, API-compatible patch to a standard library module outweighed the engineering benefits of basing a solution off a more naturally extensible third-party ZIP manipulation package.

History

Zipfile-deflate64 realize extraction of zipfile compressed with DEFLATE64(tm) algorithm by binding with infback9 extension in zlib.

zipfile-inflate64 is a fork that use inflate64 python package to realize compress and decompress of archives.

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

zipfile_inflate64-0.1-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file zipfile_inflate64-0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for zipfile_inflate64-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b444f3aea904061d702edbed58f952e544a19dcf20f2ed84bd889cf446b87b7d
MD5 d61856e2e1cc41d1b54176a73d41bcd8
BLAKE2b-256 85c00be1a9e4c4cc2a4fd8c361ce10c19a0d091a905a0ad38b8a6f9914dbfcb9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page