Skip to content

Commit bb2a64a

Browse files
author
Kazuki Suzuki Przyborowski
committed
Update pyfoxfile.py
1 parent d56e5ad commit bb2a64a

1 file changed

Lines changed: 38 additions & 47 deletions

File tree

pyfoxfile.py

Lines changed: 38 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -6531,7 +6531,7 @@ def AppendFilesWithContent(infiles, fp, dirlistfromtxt=False, filevalues=[], ext
65316531
ftype = 0
65326532
if(hasattr(os.path, "isjunction") and os.path.isjunction(fname)):
65336533
ftype = 13
6534-
elif(fstatinfo.st_blocks * 512 < fstatinfo.st_size):
6534+
elif(hasattr(fstatinfo, "st_blocks") and fstatinfo.st_blocks * 512 < fstatinfo.st_size):
65356535
ftype = 12
65366536
elif(stat.S_ISREG(fpremode)):
65376537
ftype = 0
@@ -6757,14 +6757,6 @@ def AppendFilesWithContent(infiles, fp, dirlistfromtxt=False, filevalues=[], ext
67576757
fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev, fdev_minor, fdev_major, "+"+str(len(formatspecs['format_delimiter']))]
67586758
AppendFileHeaderWithContent(
67596759
fp, tmpoutlist, extradata, jsondata, fcontents.read(), [checksumtype[1], checksumtype[2], checksumtype[3]], formatspecs)
6760-
try:
6761-
fp.seek(0, 0)
6762-
except io.UnsupportedOperation:
6763-
pass
6764-
except AttributeError:
6765-
pass
6766-
except OSError:
6767-
pass
67686760
return fp
67696761

67706762
def AppendFilesWithContentFromTarFile(infile, fp, extradata=[], jsondata={}, compression="auto", compresswholefile=True, compressionlevel=None, compressionuselist=compressionlistalt, checksumtype=["crc32", "crc32", "crc32", "crc32"], formatspecs=__file_format_dict__, verbose=False):
@@ -6981,14 +6973,6 @@ def AppendFilesWithContentFromTarFile(infile, fp, extradata=[], jsondata={}, com
69816973
AppendFileHeaderWithContent(
69826974
fp, tmpoutlist, extradata, jsondata, fcontents.read(), [checksumtype[1], checksumtype[2], checksumtype[3]], formatspecs)
69836975
fcontents.close()
6984-
try:
6985-
fp.seek(0, 0)
6986-
except io.UnsupportedOperation:
6987-
pass
6988-
except AttributeError:
6989-
pass
6990-
except OSError:
6991-
pass
69926976
return fp
69936977

69946978
def AppendFilesWithContentFromZipFile(infile, fp, extradata=[], jsondata={}, compression="auto", compresswholefile=True, compressionlevel=None, compressionuselist=compressionlistalt, checksumtype=["crc32", "crc32", "crc32", "crc32"], formatspecs=__file_format_dict__, verbose=False):
@@ -7199,14 +7183,6 @@ def AppendFilesWithContentFromZipFile(infile, fp, extradata=[], jsondata={}, com
71997183
AppendFileHeaderWithContent(
72007184
fp, tmpoutlist, extradata, jsondata, fcontents.read(), [checksumtype[1], checksumtype[2], checksumtype[3]], formatspecs)
72017185
fcontents.close()
7202-
try:
7203-
fp.seek(0, 0)
7204-
except io.UnsupportedOperation:
7205-
pass
7206-
except AttributeError:
7207-
pass
7208-
except OSError:
7209-
pass
72107186
return fp
72117187

72127188
if(not rarfile_support):
@@ -7443,14 +7419,6 @@ def AppendFilesWithContentFromRarFile(infile, fp, extradata=[], jsondata={}, com
74437419
AppendFileHeaderWithContent(
74447420
fp, tmpoutlist, extradata, jsondata, fcontents.read(), [checksumtype[1], checksumtype[2], checksumtype[3]], formatspecs)
74457421
fcontents.close()
7446-
try:
7447-
fp.seek(0, 0)
7448-
except io.UnsupportedOperation:
7449-
pass
7450-
except AttributeError:
7451-
pass
7452-
except OSError:
7453-
pass
74547422
return fp
74557423

74567424
if(not py7zr_support):
@@ -7621,14 +7589,6 @@ def AppendFilesWithContentFromSevenZip(infile, fp, extradata=[], jsondata={}, co
76217589
AppendFileHeaderWithContent(
76227590
fp, tmpoutlist, extradata, jsondata, fcontents.read(), [checksumtype[1], checksumtype[2], checksumtype[3]], formatspecs)
76237591
fcontents.close()
7624-
try:
7625-
fp.seek(0, 0)
7626-
except io.UnsupportedOperation:
7627-
pass
7628-
except AttributeError:
7629-
pass
7630-
except OSError:
7631-
pass
76327592
return fp
76337593

76347594
def AppendListsWithContent(inlist, fp, dirlistfromtxt=False, filevalues=[], extradata=[], jsondata={}, compression="auto", compresswholefile=True, compressionlevel=None, followlink=False, checksumtype=["crc32", "crc32", "crc32", "crc32"], formatspecs=__file_format_dict__, verbose=False):
@@ -7727,6 +7687,8 @@ def AppendFilesWithContentToOutFile(infiles, outfile, dirlistfromtxt=False, fmtt
77277687
if(outfile == "-" or outfile is None):
77287688
verbose = False
77297689
fp = MkTempFile()
7690+
elif(isinstance(outfile, FileLikeAdapter)):
7691+
fp = outfile
77307692
elif(hasattr(outfile, "read") or hasattr(outfile, "write")):
77317693
fp = outfile
77327694
elif(re.findall(__upload_proto_support__, outfile)):
@@ -7772,12 +7734,25 @@ def AppendFilesWithContentToOutFile(infiles, outfile, dirlistfromtxt=False, fmtt
77727734
fp.seek(0, 0)
77737735
upload_file_to_internet_file(fp, outfile)
77747736
if(returnfp):
7775-
fp.seek(0, 0)
77767737
return fp
77777738
else:
77787739
fp.close()
77797740
return True
77807741

7742+
def AppendFilesWithContentToStackedOutFile(infiles, outfile, dirlistfromtxt=False, fmttype="auto", compression="auto", compresswholefile=True, compressionlevel=None, compressionuselist=compressionlistalt, filevalues=[], extradata=[], jsondata={}, followlink=False, checksumtype=["crc32", "crc32", "crc32", "crc32"], formatspecs=__file_format_multi_dict__, verbose=False, returnfp=False):
7743+
if not isinstance(infiles, list):
7744+
infiles = [infiles]
7745+
returnout = False
7746+
for infileslist in infiles:
7747+
returnout = AppendFilesWithContentToOutFile(infileslist, outfile, dirlistfromtxt, fmttype, compression, compresswholefile, compressionlevel, compressionuselist, filevalues, extradata, jsondata, followlink, checksumtype, formatspecs, verbose, True)
7748+
if(not returnout):
7749+
break
7750+
else:
7751+
outfile = returnout
7752+
if(not returnfp and returnout):
7753+
returnout.close()
7754+
return True
7755+
return returnout
77817756

77827757
def AppendListsWithContentToOutFile(inlist, outfile, dirlistfromtxt=False, fmttype="auto", compression="auto", compresswholefile=True, compressionlevel=None, filevalues=[], extradata=[], jsondata={}, followlink=False, checksumtype=["crc32", "crc32", "crc32", "crc32"], formatspecs=__file_format_dict__, verbose=False, returnfp=False):
77837758
if(IsNestedDict(formatspecs) and fmttype=="auto" and
@@ -9731,7 +9706,14 @@ def CompressOpenFileAlt(fp, compression="auto", compressionlevel=None,
97319706
if not hasattr(fp, "read"):
97329707
return False
97339708

9734-
fp.seek(0, 0)
9709+
try:
9710+
fp.seek(0, 0)
9711+
except io.UnsupportedOperation:
9712+
pass
9713+
except AttributeError:
9714+
pass
9715+
except OSError:
9716+
pass
97359717

97369718
if (not compression or compression == formatspecs['format_magic']
97379719
or (compression not in compressionuselist and compression is None)):
@@ -9787,7 +9769,14 @@ def _lvl(x):
97879769
except FileNotFoundError:
97889770
return False
97899771

9790-
bytesfp.seek(0, 0)
9772+
try:
9773+
bytesfp.seek(0, 0)
9774+
except io.UnsupportedOperation:
9775+
pass
9776+
except AttributeError:
9777+
pass
9778+
except OSError:
9779+
pass
97919780
out = FileLikeAdapter(bytesfp, mode="rb") # read interface for the caller
97929781
try:
97939782
out.write_through = True
@@ -9806,12 +9795,12 @@ def CompressOpenFile(outfile, compressionenable=True, compressionlevel=None,
98069795
return False
98079796

98089797
# If caller already gave us a FileLikeAdapter => honor it and return it.
9809-
if isinstance(fp, FileLikeAdapter):
9798+
if isinstance(outfile, FileLikeAdapter):
98109799
try:
9811-
fp.write_through = True
9800+
outfile.write_through = True
98129801
except Exception:
98139802
pass
9814-
return fp
9803+
return outfile
98159804

98169805
fbasename, fextname = os.path.splitext(outfile)
98179806
compressionlevel = 9 if compressionlevel is None else int(compressionlevel)
@@ -9954,6 +9943,8 @@ def CheckSumSupportAlt(checkfor, guaranteed=True):
99549943
def PackFoxFile(infiles, outfile, dirlistfromtxt=False, fmttype="auto", compression="auto", compresswholefile=True, compressionlevel=None, compressionuselist=compressionlistalt, followlink=False, checksumtype=["crc32", "crc32", "crc32", "crc32"], extradata=[], jsondata={}, formatspecs=__file_format_multi_dict__, verbose=False, returnfp=False):
99559944
return AppendFilesWithContentToOutFile(infiles, outfile, dirlistfromtxt, fmttype, compression, compresswholefile, compressionlevel, compressionuselist, [], extradata, jsondata, followlink, checksumtype, formatspecs, verbose, returnfp)
99569945

9946+
def PackStackedFoxFile(infiles, outfile, dirlistfromtxt=False, fmttype="auto", compression="auto", compresswholefile=True, compressionlevel=None, compressionuselist=compressionlistalt, followlink=False, checksumtype=["crc32", "crc32", "crc32", "crc32"], extradata=[], jsondata={}, formatspecs=__file_format_multi_dict__, verbose=False, returnfp=False):
9947+
return AppendFilesWithContentToStackedOutFile(infiles, outfile, dirlistfromtxt, fmttype, compression, compresswholefile, compressionlevel, compressionuselist, [], extradata, jsondata, followlink, checksumtype, formatspecs, verbose, returnfp)
99579948

99589949
def PackFoxFileFromDirList(infiles, outfile, dirlistfromtxt=False, fmttype="auto", compression="auto", compresswholefile=True, compressionlevel=None, compressionuselist=compressionlistalt, followlink=False, checksumtype=["crc32", "crc32", "crc32"], extradata=[], formatspecs=__file_format_dict__, verbose=False, returnfp=False):
99599950
return PackFoxFile(infiles, outfile, dirlistfromtxt, fmttype, compression, compresswholefile, compressionlevel, compressionuselist, followlink, checksumtype, extradata, formatspecs, verbose, returnfp)

0 commit comments

Comments
 (0)