'Generate ZipInfo instance for the given name, compression and stat.
Args:
arcname: The name in the archive this should take.
compress_type: Compression type (zipfile.ZIP_DEFLATED, or ZIP_STORED)
st: An optional stat object to be used for setting headers.
Returns:
ZipInfo instance.
Raises:
ValueError: If arcname is not provided.'

def _GenerateZipInfo(self, arcname=None, compress_type=None, st=None):

    if (st is None):
        st = os.stat_result((33188, 0, 0, 0, 0, 0, 0, 0, 0, 0))
    mtime = time.localtime((st.st_mtime or time.time()))
    date_time = mtime[0:6]
    if (arcname is None):
        raise ValueError('An    arcname    must    be    provided.')
    zinfo = zipfile.ZipInfo(arcname, date_time)
    zinfo.external_attr = ((st[0] & 65535) << 16L)
    if (compress_type is None):
        zinfo.compress_type = self._compression
    else:
        zinfo.compress_type = compress_type
    zinfo.file_size = 0
    zinfo.compress_size = 0
    zinfo.flag_bits = 8
    zinfo.CRC = 134695760
    zinfo.extra = struct.pack('<HHIIHH', 22613, 12, 0, 0, 0, 0)
    return zinfo
