MCPcopy Index your code
hub / github.com/python/cpython / FileHeader

Method FileHeader

Lib/zipfile/__init__.py:518–566  ·  view source on GitHub ↗

Return the per-file header as a bytes object. When the optional zip64 arg is None rather than a bool, we will decide based upon the file_size and compress_size, if known, False otherwise.

(self, zip64=None)

Source from the content-addressed store, hash-verified

516 return ''.join(result)
517
518 def FileHeader(self, zip64=None):
519 """Return the per-file header as a bytes object.
520
521 When the optional zip64 arg is None rather than a bool, we will
522 decide based upon the file_size and compress_size, if known,
523 False otherwise.
524 """
525 dt = self.date_time
526 dosdate = (dt[0] - 1980) << 9 | dt[1] << 5 | dt[2]
527 dostime = dt[3] << 11 | dt[4] << 5 | (dt[5] // 2)
528 if self.flag_bits & _MASK_USE_DATA_DESCRIPTOR:
529 # Set these to zero because we write them after the file data
530 CRC = compress_size = file_size = 0
531 else:
532 CRC = self.CRC
533 compress_size = self.compress_size
534 file_size = self.file_size
535
536 extra = self.extra
537
538 min_version = 0
539 if zip64 is None:
540 # We always explicitly pass zip64 within this module.... This
541 # remains for anyone using ZipInfo.FileHeader as a public API.
542 zip64 = file_size > ZIP64_LIMIT or compress_size > ZIP64_LIMIT
543 if zip64:
544 fmt = '<HHQQ'
545 extra = extra + struct.pack(fmt,
546 1, struct.calcsize(fmt)-4, file_size, compress_size)
547 file_size = 0xffffffff
548 compress_size = 0xffffffff
549 min_version = ZIP64_VERSION
550
551 if self.compress_type == ZIP_BZIP2:
552 min_version = max(BZIP2_VERSION, min_version)
553 elif self.compress_type == ZIP_LZMA:
554 min_version = max(LZMA_VERSION, min_version)
555 elif self.compress_type == ZIP_ZSTANDARD:
556 min_version = max(ZSTANDARD_VERSION, min_version)
557
558 self.extract_version = max(min_version, self.extract_version)
559 self.create_version = max(min_version, self.create_version)
560 filename, flag_bits = self._encodeFilenameFlags()
561 header = struct.pack(structFileHeader, stringFileHeader,
562 self.extract_version, self.reserved, flag_bits,
563 self.compress_type, dostime, dosdate, CRC,
564 compress_size, file_size,
565 len(filename), len(extra))
566 return header + filename + extra
567
568 def _encodeFilenameFlags(self):
569 try:

Callers 3

mkdirMethod · 0.95
closeMethod · 0.80
_open_to_writeMethod · 0.80

Calls 2

_encodeFilenameFlagsMethod · 0.95
packMethod · 0.45

Tested by

no test coverage detected