from pyi2ncommon.zip_stream import ZipStream
with ZipStream(output_stream, 'w') as zip:
info = zip.create_zipinfo(big_file)
- with open(big_file, 'rb') as input_stream:
+ with open(big_file, 'rb') as input_stream: # always read binary!
zip.write_stream(input_stream, info)
+
+.. codeauthor:: Intra2net AG <info@intra2net>
"""
import sys
import os
-if sys.version_info.major >= 3 and sys.version_info.minor >= 6:
- from zipfile import *
+if sys.version_info.major < 3:
+ raise ImportError('Did not backport zipfile from python 3.5 to py2')
+if sys.version_info.minor >= 6:
+ # imports for _write_stream_36
import shutil
-elif sys.version_info.major >= 3 and sys.version_info.minor >= 5:
+else:
+ # imports for create_zipinfo, _write_stream_35 and _get_compressor
from stat import S_ISDIR
import time
import zlib
crc32 = zlib.crc32
import bz2
import struct
+if sys.version_info.minor >= 5:
from zipfile import *
else:
- from stat import S_ISDIR
- import time
- import zlib
- crc32 = zlib.crc32
- import bz2
- import struct
- # backport of zipfile from python 3.5; works at least for py3.3
+ # backport of zipfile from python 3.5 to support stream output
from zipfile35 import *
+
from .type_helpers import isstr