mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-11-03 05:51:15 +02:00
Use black with -l 120 param.
This commit is contained in:
1 parent
f928738bd5
commit
c021e21309
194 files changed
+6034
-4564
No files matched your search
@@ -32,10 +32,18 @@ import asyncio
|
||||
import aiofiles
|
||||
from concurrent import futures
|
||||
|
||||
from zipfile import (structCentralDir, structEndArchive64, structEndArchive, structEndArchive64Locator,
|
||||
stringCentralDir, stringEndArchive64, stringEndArchive, stringEndArchive64Locator)
|
||||
from zipfile import (
|
||||
structCentralDir,
|
||||
structEndArchive64,
|
||||
structEndArchive,
|
||||
structEndArchive64Locator,
|
||||
stringCentralDir,
|
||||
stringEndArchive64,
|
||||
stringEndArchive,
|
||||
stringEndArchive64Locator,
|
||||
)
|
||||
|
||||
stringDataDescriptor = b'PK\x07\x08' # magic number for data descriptor
|
||||
stringDataDescriptor = b"PK\x07\x08" # magic number for data descriptor
|
||||
|
||||
|
||||
def _get_compressor(compress_type):
|
||||
@@ -45,21 +53,23 @@ def _get_compressor(compress_type):
|
||||
|
||||
if compress_type == zipfile.ZIP_DEFLATED:
|
||||
from zipfile import zlib
|
||||
|
||||
return zlib.compressobj(zlib.Z_DEFAULT_COMPRESSION, zlib.DEFLATED, -15)
|
||||
elif compress_type == zipfile.ZIP_BZIP2:
|
||||
from zipfile import bz2
|
||||
|
||||
return bz2.BZ2Compressor()
|
||||
elif compress_type == zipfile.ZIP_LZMA:
|
||||
from zipfile import LZMACompressor
|
||||
|
||||
return LZMACompressor()
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
class PointerIO:
|
||||
|
||||
def __init__(self, mode='wb'):
|
||||
if mode not in ('wb', ):
|
||||
def __init__(self, mode="wb"):
|
||||
if mode not in ("wb",):
|
||||
raise RuntimeError('zipstream.ZipFile() requires mode "wb"')
|
||||
self.data_pointer = 0
|
||||
self.__mode = mode
|
||||
@@ -90,18 +100,17 @@ class PointerIO:
|
||||
|
||||
def write(self, data):
|
||||
if self.closed:
|
||||
raise ValueError('I/O operation on closed file')
|
||||
raise ValueError("I/O operation on closed file")
|
||||
|
||||
if isinstance(data, str):
|
||||
data = data.encode('utf-8')
|
||||
data = data.encode("utf-8")
|
||||
if not isinstance(data, bytes):
|
||||
raise TypeError('expected bytes')
|
||||
raise TypeError("expected bytes")
|
||||
self.data_pointer += len(data)
|
||||
return data
|
||||
|
||||
|
||||
class ZipInfo(zipfile.ZipInfo):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
zipfile.ZipInfo.__init__(self, *args, **kwargs)
|
||||
|
||||
@@ -113,23 +122,22 @@ class ZipInfo(zipfile.ZipInfo):
|
||||
"""
|
||||
|
||||
if self.compress_size > zipfile.ZIP64_LIMIT or self.file_size > zipfile.ZIP64_LIMIT:
|
||||
fmt = b'<4sLQQ'
|
||||
fmt = b"<4sLQQ"
|
||||
else:
|
||||
fmt = b'<4sLLL'
|
||||
fmt = b"<4sLLL"
|
||||
return struct.pack(fmt, stringDataDescriptor, self.CRC, self.compress_size, self.file_size)
|
||||
|
||||
|
||||
class ZipFile(zipfile.ZipFile):
|
||||
|
||||
def __init__(self, fileobj=None, mode='w', compression=zipfile.ZIP_STORED, allowZip64=True, chunksize=32768):
|
||||
def __init__(self, fileobj=None, mode="w", compression=zipfile.ZIP_STORED, allowZip64=True, chunksize=32768):
|
||||
"""Open the ZIP file with mode write "w"."""
|
||||
|
||||
if mode not in ('w', ):
|
||||
if mode not in ("w",):
|
||||
raise RuntimeError('aiozipstream.ZipFile() requires mode "w"')
|
||||
if fileobj is None:
|
||||
fileobj = PointerIO()
|
||||
|
||||
self._comment = b''
|
||||
self._comment = b""
|
||||
zipfile.ZipFile.__init__(self, fileobj, mode=mode, compression=compression, allowZip64=allowZip64)
|
||||
self._chunksize = chunksize
|
||||
self.paths_to_write = []
|
||||
@@ -156,8 +164,8 @@ class ZipFile(zipfile.ZipFile):
|
||||
# check for valid comment length
|
||||
if len(comment) >= zipfile.ZIP_MAX_COMMENT:
|
||||
if self.debug:
|
||||
print('Archive comment is too long; truncating to %d bytes' % zipfile.ZIP_MAX_COMMENT)
|
||||
comment = comment[:zipfile.ZIP_MAX_COMMENT]
|
||||
print("Archive comment is too long; truncating to %d bytes" % zipfile.ZIP_MAX_COMMENT)
|
||||
comment = comment[: zipfile.ZIP_MAX_COMMENT]
|
||||
self._comment = comment
|
||||
self._didModify = True
|
||||
|
||||
@@ -192,7 +200,7 @@ class ZipFile(zipfile.ZipFile):
|
||||
Write a file to the archive under the name `arcname`.
|
||||
"""
|
||||
|
||||
kwargs = {'filename': filename, 'arcname': arcname, 'compress_type': compress_type}
|
||||
kwargs = {"filename": filename, "arcname": arcname, "compress_type": compress_type}
|
||||
self.paths_to_write.append(kwargs)
|
||||
|
||||
def write_iter(self, arcname, iterable, compress_type=None):
|
||||
@@ -200,7 +208,7 @@ class ZipFile(zipfile.ZipFile):
|
||||
Write the bytes iterable `iterable` to the archive under the name `arcname`.
|
||||
"""
|
||||
|
||||
kwargs = {'arcname': arcname, 'iterable': iterable, 'compress_type': compress_type}
|
||||
kwargs = {"arcname": arcname, "iterable": iterable, "compress_type": compress_type}
|
||||
self.paths_to_write.append(kwargs)
|
||||
|
||||
def writestr(self, arcname, data, compress_type=None):
|
||||
@@ -210,6 +218,7 @@ class ZipFile(zipfile.ZipFile):
|
||||
|
||||
def _iterable():
|
||||
yield data
|
||||
|
||||
return self.write_iter(arcname, _iterable(), compress_type=compress_type)
|
||||
|
||||
async def _write(self, filename=None, iterable=None, arcname=None, compress_type=None):
|
||||
@@ -218,8 +227,7 @@ class ZipFile(zipfile.ZipFile):
|
||||
"""
|
||||
|
||||
if not self.fp:
|
||||
raise RuntimeError(
|
||||
"Attempt to write to ZIP archive that was already closed")
|
||||
raise RuntimeError("Attempt to write to ZIP archive that was already closed")
|
||||
if (filename is None and iterable is None) or (filename is not None and iterable is not None):
|
||||
raise ValueError("either (exclusively) filename or iterable shall be not None")
|
||||
|
||||
@@ -237,12 +245,12 @@ class ZipFile(zipfile.ZipFile):
|
||||
while arcname[0] in (os.sep, os.altsep):
|
||||
arcname = arcname[1:]
|
||||
if isdir:
|
||||
arcname += '/'
|
||||
arcname += "/"
|
||||
zinfo = ZipInfo(arcname, date_time)
|
||||
if st:
|
||||
zinfo.external_attr = (st[0] & 0xFFFF) << 16 # Unix attributes
|
||||
zinfo.external_attr = (st[0] & 0xFFFF) << 16 # Unix attributes
|
||||
else:
|
||||
zinfo.external_attr = 0o600 << 16 # ?rw-------
|
||||
zinfo.external_attr = 0o600 << 16 # ?rw-------
|
||||
if compress_type is None:
|
||||
zinfo.compress_type = self.compression
|
||||
else:
|
||||
@@ -253,8 +261,8 @@ class ZipFile(zipfile.ZipFile):
|
||||
else:
|
||||
zinfo.file_size = 0
|
||||
zinfo.flag_bits = 0x00
|
||||
zinfo.flag_bits |= 0x08 # ZIP flag bits, bit 3 indicates presence of data descriptor
|
||||
zinfo.header_offset = self.fp.tell() # Start of header bytes
|
||||
zinfo.flag_bits |= 0x08 # ZIP flag bits, bit 3 indicates presence of data descriptor
|
||||
zinfo.header_offset = self.fp.tell() # Start of header bytes
|
||||
if zinfo.compress_type == zipfile.ZIP_LZMA:
|
||||
# Compressed data includes an end-of-stream (EOS) marker
|
||||
zinfo.flag_bits |= 0x02
|
||||
@@ -284,15 +292,15 @@ class ZipFile(zipfile.ZipFile):
|
||||
if filename:
|
||||
async for buf in self.data_generator(filename):
|
||||
file_size = file_size + len(buf)
|
||||
CRC = zipfile.crc32(buf, CRC) & 0xffffffff
|
||||
CRC = zipfile.crc32(buf, CRC) & 0xFFFFFFFF
|
||||
if cmpr:
|
||||
buf = await self._run_in_executor(cmpr.compress, buf)
|
||||
compress_size = compress_size + len(buf)
|
||||
yield self.fp.write(buf)
|
||||
else: # we have an iterable
|
||||
else: # we have an iterable
|
||||
for buf in iterable:
|
||||
file_size = file_size + len(buf)
|
||||
CRC = zipfile.crc32(buf, CRC) & 0xffffffff
|
||||
CRC = zipfile.crc32(buf, CRC) & 0xFFFFFFFF
|
||||
if cmpr:
|
||||
buf = await self._run_in_executor(cmpr.compress, buf)
|
||||
compress_size = compress_size + len(buf)
|
||||
@@ -309,9 +317,9 @@ class ZipFile(zipfile.ZipFile):
|
||||
zinfo.file_size = file_size
|
||||
if not zip64 and self._allowZip64:
|
||||
if file_size > zipfile.ZIP64_LIMIT:
|
||||
raise RuntimeError('File size has increased during compressing')
|
||||
raise RuntimeError("File size has increased during compressing")
|
||||
if compress_size > zipfile.ZIP64_LIMIT:
|
||||
raise RuntimeError('Compressed size larger than uncompressed size')
|
||||
raise RuntimeError("Compressed size larger than uncompressed size")
|
||||
|
||||
yield self.fp.write(zinfo.DataDescriptor())
|
||||
self.filelist.append(zinfo)
|
||||
@@ -326,10 +334,10 @@ class ZipFile(zipfile.ZipFile):
|
||||
return
|
||||
|
||||
try:
|
||||
if self.mode in ('w', 'a') and self._didModify: # write ending records
|
||||
if self.mode in ("w", "a") and self._didModify: # write ending records
|
||||
count = 0
|
||||
pos1 = self.fp.tell()
|
||||
for zinfo in self.filelist: # write central directory
|
||||
for zinfo in self.filelist: # write central directory
|
||||
count = count + 1
|
||||
dt = zinfo.date_time
|
||||
dosdate = (dt[0] - 1980) << 9 | dt[1] << 5 | dt[2]
|
||||
@@ -338,15 +346,15 @@ class ZipFile(zipfile.ZipFile):
|
||||
if zinfo.file_size > zipfile.ZIP64_LIMIT or zinfo.compress_size > zipfile.ZIP64_LIMIT:
|
||||
extra.append(zinfo.file_size)
|
||||
extra.append(zinfo.compress_size)
|
||||
file_size = 0xffffffff
|
||||
compress_size = 0xffffffff
|
||||
file_size = 0xFFFFFFFF
|
||||
compress_size = 0xFFFFFFFF
|
||||
else:
|
||||
file_size = zinfo.file_size
|
||||
compress_size = zinfo.compress_size
|
||||
|
||||
if zinfo.header_offset > zipfile.ZIP64_LIMIT:
|
||||
extra.append(zinfo.header_offset)
|
||||
header_offset = 0xffffffff
|
||||
header_offset = 0xFFFFFFFF
|
||||
else:
|
||||
header_offset = zinfo.header_offset
|
||||
|
||||
@@ -354,9 +362,7 @@ class ZipFile(zipfile.ZipFile):
|
||||
min_version = 0
|
||||
if extra:
|
||||
# Append a ZIP64 field to the extra's
|
||||
extra_data = struct.pack(
|
||||
b'<HH' + b'Q'*len(extra),
|
||||
1, 8*len(extra), *extra) + extra_data
|
||||
extra_data = struct.pack(b"<HH" + b"Q" * len(extra), 1, 8 * len(extra), *extra) + extra_data
|
||||
min_version = zipfile.ZIP64_VERSION
|
||||
|
||||
if zinfo.compress_type == zipfile.ZIP_BZIP2:
|
||||
@@ -368,22 +374,54 @@ class ZipFile(zipfile.ZipFile):
|
||||
create_version = max(min_version, zinfo.create_version)
|
||||
try:
|
||||
filename, flag_bits = zinfo._encodeFilenameFlags()
|
||||
centdir = struct.pack(structCentralDir,
|
||||
stringCentralDir, create_version,
|
||||
zinfo.create_system, extract_version, zinfo.reserved,
|
||||
flag_bits, zinfo.compress_type, dostime, dosdate,
|
||||
zinfo.CRC, compress_size, file_size,
|
||||
len(filename), len(extra_data), len(zinfo.comment),
|
||||
0, zinfo.internal_attr, zinfo.external_attr,
|
||||
header_offset)
|
||||
centdir = struct.pack(
|
||||
structCentralDir,
|
||||
stringCentralDir,
|
||||
create_version,
|
||||
zinfo.create_system,
|
||||
extract_version,
|
||||
zinfo.reserved,
|
||||
flag_bits,
|
||||
zinfo.compress_type,
|
||||
dostime,
|
||||
dosdate,
|
||||
zinfo.CRC,
|
||||
compress_size,
|
||||
file_size,
|
||||
len(filename),
|
||||
len(extra_data),
|
||||
len(zinfo.comment),
|
||||
0,
|
||||
zinfo.internal_attr,
|
||||
zinfo.external_attr,
|
||||
header_offset,
|
||||
)
|
||||
except DeprecationWarning:
|
||||
print((structCentralDir, stringCentralDir, create_version,
|
||||
zinfo.create_system, extract_version, zinfo.reserved,
|
||||
zinfo.flag_bits, zinfo.compress_type, dostime, dosdate,
|
||||
zinfo.CRC, compress_size, file_size,
|
||||
len(zinfo.filename), len(extra_data), len(zinfo.comment),
|
||||
0, zinfo.internal_attr, zinfo.external_attr,
|
||||
header_offset), file=sys.stderr)
|
||||
print(
|
||||
(
|
||||
structCentralDir,
|
||||
stringCentralDir,
|
||||
create_version,
|
||||
zinfo.create_system,
|
||||
extract_version,
|
||||
zinfo.reserved,
|
||||
zinfo.flag_bits,
|
||||
zinfo.compress_type,
|
||||
dostime,
|
||||
dosdate,
|
||||
zinfo.CRC,
|
||||
compress_size,
|
||||
file_size,
|
||||
len(zinfo.filename),
|
||||
len(extra_data),
|
||||
len(zinfo.comment),
|
||||
0,
|
||||
zinfo.internal_attr,
|
||||
zinfo.external_attr,
|
||||
header_offset,
|
||||
),
|
||||
file=sys.stderr,
|
||||
)
|
||||
raise
|
||||
yield self.fp.write(centdir)
|
||||
yield self.fp.write(filename)
|
||||
@@ -395,27 +433,44 @@ class ZipFile(zipfile.ZipFile):
|
||||
centDirCount = count
|
||||
centDirSize = pos2 - pos1
|
||||
centDirOffset = pos1
|
||||
if (centDirCount >= zipfile.ZIP_FILECOUNT_LIMIT or
|
||||
centDirOffset > zipfile.ZIP64_LIMIT or
|
||||
centDirSize > zipfile.ZIP64_LIMIT):
|
||||
if (
|
||||
centDirCount >= zipfile.ZIP_FILECOUNT_LIMIT
|
||||
or centDirOffset > zipfile.ZIP64_LIMIT
|
||||
or centDirSize > zipfile.ZIP64_LIMIT
|
||||
):
|
||||
# Need to write the ZIP64 end-of-archive records
|
||||
zip64endrec = struct.pack(
|
||||
structEndArchive64, stringEndArchive64,
|
||||
44, 45, 45, 0, 0, centDirCount, centDirCount,
|
||||
centDirSize, centDirOffset)
|
||||
structEndArchive64,
|
||||
stringEndArchive64,
|
||||
44,
|
||||
45,
|
||||
45,
|
||||
0,
|
||||
0,
|
||||
centDirCount,
|
||||
centDirCount,
|
||||
centDirSize,
|
||||
centDirOffset,
|
||||
)
|
||||
yield self.fp.write(zip64endrec)
|
||||
|
||||
zip64locrec = struct.pack(
|
||||
structEndArchive64Locator,
|
||||
stringEndArchive64Locator, 0, pos2, 1)
|
||||
zip64locrec = struct.pack(structEndArchive64Locator, stringEndArchive64Locator, 0, pos2, 1)
|
||||
yield self.fp.write(zip64locrec)
|
||||
centDirCount = min(centDirCount, 0xFFFF)
|
||||
centDirSize = min(centDirSize, 0xFFFFFFFF)
|
||||
centDirOffset = min(centDirOffset, 0xFFFFFFFF)
|
||||
|
||||
endrec = struct.pack(structEndArchive, stringEndArchive,
|
||||
0, 0, centDirCount, centDirCount,
|
||||
centDirSize, centDirOffset, len(self._comment))
|
||||
endrec = struct.pack(
|
||||
structEndArchive,
|
||||
stringEndArchive,
|
||||
0,
|
||||
0,
|
||||
centDirCount,
|
||||
centDirCount,
|
||||
centDirSize,
|
||||
centDirOffset,
|
||||
len(self._comment),
|
||||
)
|
||||
yield self.fp.write(endrec)
|
||||
yield self.fp.write(self._comment)
|
||||
self.fp.flush()
|
||||
|
||||
Reference in new issue
Block a user