�
Ϫ�f�% � � � d Z ddlZddlZddlZddlZ G d� dej � Z G d� d� Z G d� de� Z G d � d
e� Z
dZd� Zd
� Z
dd�Zy)z�
An incremental approach to unzipping files. This allows you to unzip a little
bit of a file at a time, which means you can report progress as a file unzips.
� Nc � � e Zd ZdZd� Zy)�ChunkingZipFilez~
A L{zipfile.ZipFile} object which, with L{readfile}, also gives you access
to a file-like object for each entry.
c �x � | j dvrt d� �| j st d� �| j |� }| j j |j
d� | j j
t j � }|dd t j k7 rt j d� �t j t j |� }| j j
|t j � }|t j r,| j j
|t j � |j dz r|j# d� }n|j# d � }||j$ k7 r&t j d
|j$ �d|�d�� �|j& |