@@ -794,7 +794,7 @@ def check_version_number(myversion=__version__, proname=__program_alt_name__, ne
794794if(platform.python_implementation() != ""):
795795 py_implementation = platform.python_implementation()
796796if(platform.python_implementation() == ""):
797- py_implementation = "Python "
797+ py_implementation = "CPython "
798798geturls_ua_pyfile_python_alt = "Mozilla/5.0 ({osver}; {archtype}; +{prourl}) {pyimp}/{pyver} (KHTML, like Gecko) {proname}/{prover}".format(osver=platform.system(
799799)+" "+platform.release(), archtype=platform.machine(), prourl=__project_url__, pyimp=py_implementation, pyver=platform.python_version(), proname=__project__, prover=__version__)
800800geturls_ua_googlebot_google = "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
@@ -3681,7 +3681,7 @@ def GetHeaderChecksum(inlist=None, checksumtype="md5", encodedata=True, formatsp
36813681
36823682 return "0"
36833683
3684- def GetFileChecksum(instr , checksumtype="md5", encodedata=True, formatspecs=__file_format_dict__):
3684+ def GetFileChecksum(inbytes , checksumtype="md5", encodedata=True, formatspecs=__file_format_dict__):
36853685 """
36863686 Accepts bytes/str/file-like.
36873687 - Hashlib algos: streamed in 1 MiB chunks.
@@ -3691,12 +3691,12 @@ def GetFileChecksum(instr, checksumtype="md5", encodedata=True, formatspecs=__fi
36913691 algo_key = (checksumtype or "md5").lower()
36923692
36933693 # file-like streaming
3694- if hasattr(instr , "read"):
3694+ if hasattr(inbytes , "read"):
36953695 # hashlib
36963696 if CheckSumSupport(algo_key, hashlib_guaranteed):
36973697 h = hashlib.new(algo_key)
36983698 while True:
3699- chunk = instr .read(1 << 20)
3699+ chunk = inbytes .read(1 << 20)
37003700 if not chunk:
37013701 break
37023702 if not isinstance(chunk, (bytes, bytearray, memoryview)):
@@ -3705,11 +3705,11 @@ def GetFileChecksum(instr, checksumtype="md5", encodedata=True, formatspecs=__fi
37053705 return h.hexdigest().lower()
37063706
37073707 # not known streaming algo: fallback to one-shot bytes
3708- data = instr .read()
3708+ data = inbytes .read()
37093709 if not isinstance(data, (bytes, bytearray, memoryview)):
37103710 data = bytes(bytearray(data))
37113711 else:
3712- data = _to_bytes(instr ) if (encodedata or not isinstance(instr , (bytes, bytearray, memoryview))) else instr
3712+ data = _to_bytes(inbytes ) if (encodedata or not isinstance(inbytes , (bytes, bytearray, memoryview))) else inbytes
37133713 data = bytes(data)
37143714
37153715 # one-shot
@@ -3757,7 +3757,7 @@ def GetHeaderChecksum(inlist=None, checksumtype="md5", encodedata=True, formatsp
37573757
37583758 return "0"
37593759
3760- def GetFileChecksum(instr , checksumtype="md5", encodedata=True, formatspecs=__file_format_dict__):
3760+ def GetFileChecksum(inbytes , checksumtype="md5", encodedata=True, formatspecs=__file_format_dict__):
37613761 """
37623762 Accepts bytes/str/file-like.
37633763 - Hashlib algos: streamed in 1 MiB chunks.
@@ -3767,12 +3767,12 @@ def GetFileChecksum(instr, checksumtype="md5", encodedata=True, formatspecs=__fi
37673767 algo_key = (checksumtype or "md5").lower()
37683768
37693769 # file-like streaming
3770- if hasattr(instr , "read"):
3770+ if hasattr(inbytes , "read"):
37713771 # hashlib
37723772 if CheckSumSupport(algo_key, hashlib_guaranteed):
37733773 h = hashlib.new(algo_key)
37743774 while True:
3775- chunk = instr .read(1 << 20)
3775+ chunk = inbytes .read(1 << 20)
37763776 if not chunk:
37773777 break
37783778 if not isinstance(chunk, (bytes, bytearray, memoryview)):
@@ -3781,11 +3781,11 @@ def GetFileChecksum(instr, checksumtype="md5", encodedata=True, formatspecs=__fi
37813781 return h.hexdigest().lower()
37823782
37833783 # not known streaming algo: fallback to one-shot bytes
3784- data = instr .read()
3784+ data = inbytes .read()
37853785 if not isinstance(data, (bytes, bytearray, memoryview)):
37863786 data = bytes(bytearray(data))
37873787 else:
3788- data = _to_bytes(instr ) if (encodedata or not isinstance(instr , (bytes, bytearray, memoryview))) else instr
3788+ data = _to_bytes(inbytes ) if (encodedata or not isinstance(inbytes , (bytes, bytearray, memoryview))) else inbytes
37893789 data = bytes(data)
37903790
37913791 # one-shot
@@ -3862,12 +3862,12 @@ def GetHeaderChecksum(inlist=[], checksumtype="md5", encodedata=True, formatspec
38623862 return format(0, 'x').lower()
38633863
38643864
3865- def GetFileChecksum(instr , checksumtype="md5", encodedata=True, formatspecs=__file_format_dict__):
3866- if encodedata and hasattr(instr , "encode"):
3867- instr = instr .encode('UTF-8')
3865+ def GetFileChecksum(inbytes , checksumtype="md5", encodedata=True, formatspecs=__file_format_dict__):
3866+ if encodedata and hasattr(inbytes , "encode"):
3867+ inbytes = inbytes .encode('UTF-8')
38683868 if CheckSumSupport(checksumtype, hashlib_guaranteed):
38693869 checksumoutstr = hashlib.new(checksumtype)
3870- checksumoutstr.update(instr )
3870+ checksumoutstr.update(inbytes )
38713871 return checksumoutstr.hexdigest().lower()
38723872 return format(0, 'x').lower()
38733873
@@ -4483,7 +4483,7 @@ def ReadFileHeaderDataWithContentToArray(fp, listonly=False, contentasfile=True,
44834483 cfcontents.close()
44844484 fcontents.seek(0, 0)
44854485 fccs = GetFileChecksum(
4486- fcontents, HeaderOut[-3].lower(), False, formatspecs)
4486+ fcontents.read() , HeaderOut[-3].lower(), False, formatspecs)
44874487 fcontentend = fp.tell()
44884488 if(re.findall("^\\+([0-9]+)", fseeknextfile)):
44894489 fseeknextasnum = int(fseeknextfile.replace("+", ""))
@@ -4701,9 +4701,7 @@ def ReadFileDataWithContent(fp, filestart=0, listonly=False, uncompress=True, sk
47014701 curloc = filestart
47024702 try:
47034703 fp.seek(0, 2)
4704- except OSError:
4705- SeekToEndOfFile(fp)
4706- except ValueError:
4704+ except (OSError, ValueError):
47074705 SeekToEndOfFile(fp)
47084706 CatSize = fp.tell()
47094707 CatSizeEnd = CatSize
@@ -4752,9 +4750,7 @@ def ReadFileDataWithContentToArray(fp, filestart=0, seekstart=0, seekend=0, list
47524750 curloc = filestart
47534751 try:
47544752 fp.seek(0, 2)
4755- except OSError:
4756- SeekToEndOfFile(fp)
4757- except ValueError:
4753+ except (OSError, ValueError):
47584754 SeekToEndOfFile(fp)
47594755 CatSize = fp.tell()
47604756 CatSizeEnd = CatSize
@@ -4773,8 +4769,8 @@ def ReadFileDataWithContentToArray(fp, filestart=0, seekstart=0, seekend=0, list
47734769 else:
47744770 inheader = ReadFileHeaderDataWoSize(
47754771 fp, formatspecs['format_delimiter'])
4776- fnumextrafieldsize = int(inheader[5 ], 16)
4777- fnumextrafields = int(inheader[6 ], 16)
4772+ fnumextrafieldsize = int(inheader[6 ], 16)
4773+ fnumextrafields = int(inheader[7 ], 16)
47784774 fextrafieldslist = []
47794775 extrastart = 7
47804776 extraend = extrastart + fnumextrafields
@@ -4795,7 +4791,8 @@ def ReadFileDataWithContentToArray(fp, filestart=0, seekstart=0, seekend=0, list
47954791 fnumfields = int(inheader[1], 16)
47964792 fhencoding = inheader[2]
47974793 fostype = inheader[3]
4798- fnumfiles = int(inheader[4], 16)
4794+ fpythontype = inheader[4]
4795+ fnumfiles = int(inheader[5], 16)
47994796 fprechecksumtype = inheader[-2]
48004797 fprechecksum = inheader[-1]
48014798 headercheck = ValidateHeaderChecksum([formstring] + inheader[:-1], fprechecksumtype, fprechecksum, formatspecs)
@@ -4808,7 +4805,7 @@ def ReadFileDataWithContentToArray(fp, filestart=0, seekstart=0, seekend=0, list
48084805 return False
48094806 formversions = re.search('(.*?)(\\d+)', formstring).groups()
48104807 fcompresstype = ""
4811- outlist = {'fnumfiles': fnumfiles, 'ffilestart': filestart, 'fformat': formversions[0], 'fcompression': fcompresstype, 'fencoding': fhencoding, 'fversion': formversions[1], 'fostype': fostype, 'fheadersize': fheadsize, 'fsize': CatSizeEnd, 'fnumfields': fnumfields + 2, 'fformatspecs': formatspecs, 'fchecksumtype': fprechecksumtype, 'fheaderchecksum': fprechecksum, 'frawheader': [formstring] + inheader, 'fextrafields': fnumextrafields, 'fextrafieldsize': fnumextrafieldsize, 'fextradata': fextrafieldslist, 'ffilelist': []}
4808+ outlist = {'fnumfiles': fnumfiles, 'ffilestart': filestart, 'fformat': formversions[0], 'fcompression': fcompresstype, 'fencoding': fhencoding, 'fversion': formversions[1], 'fostype': fostype, 'fimptype': fpythontype, ' fheadersize': fheadsize, 'fsize': CatSizeEnd, 'fnumfields': fnumfields + 2, 'fformatspecs': formatspecs, 'fchecksumtype': fprechecksumtype, 'fheaderchecksum': fprechecksum, 'frawheader': [formstring] + inheader, 'fextrafields': fnumextrafields, 'fextrafieldsize': fnumextrafieldsize, 'fextradata': fextrafieldslist, 'ffilelist': []}
48124809 if (seekstart < 0) or (seekstart > fnumfiles):
48134810 seekstart = 0
48144811 if (seekend == 0) or (seekend > fnumfiles) or (seekend < seekstart):
@@ -4909,7 +4906,7 @@ def ReadFileDataWithContentToList(fp, filestart=0, seekstart=0, seekend=0, listo
49094906 curloc = filestart
49104907 try:
49114908 fp.seek(0, 2)
4912- except (ValueError, OSError ):
4909+ except (OSError, ValueError ):
49134910 SeekToEndOfFile(fp)
49144911 CatSize = fp.tell()
49154912 CatSizeEnd = CatSize
@@ -5066,7 +5063,7 @@ def ReadInFileWithContentToArray(infile, fmttype="auto", filestart=0, seekstart=
50665063 fp = infile
50675064 try:
50685065 fp.seek(0, 2)
5069- except (ValueError, OSError ):
5066+ except (OSError, ValueError ):
50705067 SeekToEndOfFile(fp)
50715068 outfsize = fp.tell()
50725069 fp.seek(filestart, 0)
@@ -5076,7 +5073,7 @@ def ReadInFileWithContentToArray(infile, fmttype="auto", filestart=0, seekstart=
50765073 shutil.copyfileobj(PY_STDIN_BUF, fp, length=__filebuff_size__)
50775074 try:
50785075 fp.seek(0, 2)
5079- except (ValueError, OSError ):
5076+ except (OSError, ValueError ):
50805077 SeekToEndOfFile(fp)
50815078 outfsize = fp.tell()
50825079 fp.seek(filestart, 0)
@@ -5086,7 +5083,7 @@ def ReadInFileWithContentToArray(infile, fmttype="auto", filestart=0, seekstart=
50865083 fp.write(infile)
50875084 try:
50885085 fp.seek(0, 2)
5089- except (ValueError, OSError ):
5086+ except (OSError, ValueError ):
50905087 SeekToEndOfFile(fp)
50915088 outfsize = fp.tell()
50925089 fp.seek(filestart, 0)
@@ -5095,15 +5092,15 @@ def ReadInFileWithContentToArray(infile, fmttype="auto", filestart=0, seekstart=
50955092 fp = download_file_from_internet_file(infile)
50965093 try:
50975094 fp.seek(0, 2)
5098- except (ValueError, OSError ):
5095+ except (OSError, ValueError ):
50995096 SeekToEndOfFile(fp)
51005097 outfsize = fp.tell()
51015098 fp.seek(filestart, 0)
51025099 currentfilepos = fp.tell()
51035100 elif(isinstance(infile, FileLikeAdapter)):
51045101 try:
51055102 fp.seek(0, 2)
5106- except (ValueError, OSError ):
5103+ except (OSError, ValueError ):
51075104 SeekToEndOfFile(fp)
51085105 outfsize = fp.tell()
51095106 fp.seek(filestart, 0)
@@ -5113,7 +5110,7 @@ def ReadInFileWithContentToArray(infile, fmttype="auto", filestart=0, seekstart=
51135110 fp = open(infile, "rb")
51145111 try:
51155112 fp.seek(0, 2)
5116- except (ValueError, OSError ):
5113+ except (OSError, ValueError ):
51175114 SeekToEndOfFile(fp)
51185115 outfsize = fp.tell()
51195116 fp.seek(filestart, 0)
@@ -5164,7 +5161,7 @@ def ReadInFileWithContentToArray(infile, fmttype="auto", filestart=0, seekstart=
51645161 currentinfilepos = infp.tell()
51655162 try:
51665163 infp.seek(0, 2)
5167- except (ValueError, OSError ):
5164+ except (OSError, ValueError ):
51685165 SeekToEndOfFile(infp)
51695166 outinfsize = infp.tell()
51705167 infp.seek(currentinfilepos, 0)
@@ -5203,7 +5200,7 @@ def ReadInFileWithContentToList(infile, fmttype="auto", filestart=0, seekstart=0
52035200 fp = infile
52045201 try:
52055202 fp.seek(0, 2)
5206- except (ValueError, OSError ):
5203+ except (OSError, ValueError ):
52075204 SeekToEndOfFile(fp)
52085205 outfsize = fp.tell()
52095206 fp.seek(filestart, 0)
@@ -5213,7 +5210,7 @@ def ReadInFileWithContentToList(infile, fmttype="auto", filestart=0, seekstart=0
52135210 shutil.copyfileobj(PY_STDIN_BUF, fp, length=__filebuff_size__)
52145211 try:
52155212 fp.seek(0, 2)
5216- except (ValueError, OSError ):
5213+ except (OSError, ValueError ):
52175214 SeekToEndOfFile(fp)
52185215 outfsize = fp.tell()
52195216 fp.seek(filestart, 0)
@@ -5223,7 +5220,7 @@ def ReadInFileWithContentToList(infile, fmttype="auto", filestart=0, seekstart=0
52235220 fp.write(infile)
52245221 try:
52255222 fp.seek(0, 2)
5226- except (ValueError, OSError ):
5223+ except (OSError, ValueError ):
52275224 SeekToEndOfFile(fp)
52285225 outfsize = fp.tell()
52295226 fp.seek(filestart, 0)
@@ -5232,15 +5229,15 @@ def ReadInFileWithContentToList(infile, fmttype="auto", filestart=0, seekstart=0
52325229 fp = download_file_from_internet_file(infile)
52335230 try:
52345231 fp.seek(0, 2)
5235- except (ValueError, OSError ):
5232+ except (OSError, ValueError ):
52365233 SeekToEndOfFile(fp)
52375234 outfsize = fp.tell()
52385235 fp.seek(filestart, 0)
52395236 currentfilepos = fp.tell()
52405237 elif(isinstance(infile, FileLikeAdapter)):
52415238 try:
52425239 fp.seek(0, 2)
5243- except (ValueError, OSError ):
5240+ except (OSError, ValueError ):
52445241 SeekToEndOfFile(fp)
52455242 outfsize = fp.tell()
52465243 fp.seek(filestart, 0)
@@ -5250,7 +5247,7 @@ def ReadInFileWithContentToList(infile, fmttype="auto", filestart=0, seekstart=0
52505247 fp = open(infile, "rb")
52515248 try:
52525249 fp.seek(0, 2)
5253- except (ValueError, OSError ):
5250+ except (OSError, ValueError ):
52545251 SeekToEndOfFile(fp)
52555252 outfsize = fp.tell()
52565253 fp.seek(filestart, 0)
@@ -5301,7 +5298,7 @@ def ReadInFileWithContentToList(infile, fmttype="auto", filestart=0, seekstart=0
53015298 currentinfilepos = infp.tell()
53025299 try:
53035300 infp.seek(0, 2)
5304- except (ValueError, OSError ):
5301+ except (OSError, ValueError ):
53055302 SeekToEndOfFile(infp)
53065303 outinfsize = infp.tell()
53075304 infp.seek(currentinfilepos, 0)
@@ -5442,11 +5439,11 @@ def AppendFileHeader(fp,
54425439
54435440 # Preserve your original "tmpoutlen" computation exactly
54445441 tmpoutlist = [extrasizelen, extrafields] # you used this as a separate list
5445- tmpoutlen = 3 + len(tmpoutlist) + len(xlist) + 2
5442+ tmpoutlen = 4 + len(tmpoutlist) + len(xlist) + 2
54465443 tmpoutlenhex = _hex_lower(tmpoutlen)
54475444
54485445 # Serialize the first group
5449- fnumfilesa = AppendNullBytes([tmpoutlenhex, fencoding, platform.system(), fnumfiles_hex], delimiter)
5446+ fnumfilesa = AppendNullBytes([tmpoutlenhex, fencoding, platform.system(), py_implementation, fnumfiles_hex], delimiter)
54505447 # Append tmpoutlist
54515448 fnumfilesa += AppendNullBytes(tmpoutlist, delimiter)
54525449 # Append extradata items if any
@@ -9419,19 +9416,19 @@ def CatFileValidate(infile, fmttype="auto", filestart=0,
94199416 else:
94209417 inheader = ReadFileHeaderDataWoSize(fp, formatspecs['format_delimiter'])
94219418
9422- fnumextrafieldsize = int(inheader[5 ], 16)
9423- fnumextrafields = int(inheader[6 ], 16)
9419+ fnumextrafieldsize = int(inheader[6 ], 16)
9420+ fnumextrafields = int(inheader[7 ], 16)
94249421 extrastart = 7
94259422 extraend = extrastart + fnumextrafields
94269423 formversion = re.findall("([\\d]+)", formstring)
94279424 fheadsize = int(inheader[0], 16)
94289425 fnumfields = int(inheader[1], 16)
94299426 fhencoding = inheader[2]
94309427 fostype = inheader[3]
9431- fnumfiles = int(inheader[4], 16)
9428+ fpythontype = inheader[4]
9429+ fnumfiles = int(inheader[5], 16)
94329430 fprechecksumtype = inheader[-2]
94339431 fprechecksum = inheader[-1]
9434-
94359432 il = 0
94369433 headercheck = ValidateHeaderChecksum([formstring] + inheader[:-1], fprechecksumtype, fprechecksum, formatspecs)
94379434 newfcs = GetHeaderChecksum([formstring] + inheader[:-1], fprechecksumtype, True, formatspecs)
0 commit comments