@@ -7057,24 +7057,70 @@ def ArchiveFileValidate(infile, fmttype="auto", filestart=0, formatspecs=__file_
70577057 return False
70587058
70597059
7060- def ArchiveFileValidateFile (infile , fmttype = "auto" , formatspecs = __file_format_multi_dict__ , verbose = False , returnfp = False ):
7061- return ArchiveFileValidate (infile , fmttype , formatspecs , verbose , returnfp )
7060+ def ArchiveFileValidateFile (infile , fmttype = "auto" , filestart = 0 , formatspecs = __file_format_multi_dict__ , seektoend = False , verbose = False , returnfp = False ):
7061+ return ArchiveFileValidate (infile , fmttype , filestart , formatspecs , seektoend , verbose , returnfp )
70627062
70637063
7064- def ArchiveFileValidateMultiple (infile , fmttype = "auto" , formatspecs = __file_format_multi_dict__ , verbose = False , returnfp = False ):
7064+ def ArchiveFileValidateMultiple (infile , fmttype = "auto" , filestart = 0 , formatspecs = __file_format_multi_dict__ , seektoend = False , verbose = False , returnfp = False ):
70657065 if (isinstance (infile , (list , tuple , ))):
70667066 pass
70677067 else :
70687068 infile = [infile ]
70697069 outretval = True
70707070 for curfname in infile :
7071- curretfile = ArchiveFileValidate (curfname , fmttype , formatspecs , verbose , returnfp )
7071+ curretfile = ArchiveFileValidate (curfname , fmttype , filestart , formatspecs , seektoend , verbose , returnfp )
70727072 if (not curretfile ):
70737073 outretval = False
70747074 return outretval
70757075
7076- def ArchiveFileValidateMultipleFiles (infile , fmttype = "auto" , formatspecs = __file_format_multi_dict__ , verbose = False , returnfp = False ):
7077- return ArchiveFileValidateMultiple (infile , fmttype , formatspecs , verbose , returnfp )
7076+ def ArchiveFileValidateMultipleFiles (infile , fmttype = "auto" , filestart = 0 , formatspecs = __file_format_multi_dict__ , seektoend = False , verbose = False , returnfp = False ):
7077+ return ArchiveFileValidateMultiple (infile , fmttype , filestart , formatspecs , seektoend , verbose , returnfp )
7078+
7079+
7080+ def StackedArchiveFileValidate (infile , fmttype = "auto" , filestart = 0 , formatspecs = __file_format_multi_dict__ , seektoend = False , verbose = False , returnfp = False ):
7081+ outretval = []
7082+ outstartfile = filestart
7083+ outfsize = float ('inf' )
7084+ while True :
7085+ if outstartfile >= outfsize : # stop when function signals False
7086+ break
7087+ is_valid_file = ArchiveFileValidate (infile , fmttype , filestart , formatspecs , seektoend , verbose , True )
7088+ if is_valid_file is False : # stop when function signals False
7089+ outretval .append (is_valid_file )
7090+ else :
7091+ outretval .append (True )
7092+ infile = is_valid_file
7093+ outstartfile = infile .tell ()
7094+ try :
7095+ infile .seek (0 , 2 )
7096+ except OSError :
7097+ SeekToEndOfFile (infile )
7098+ except ValueError :
7099+ SeekToEndOfFile (infile )
7100+ outfsize = infile .tell ()
7101+ infile .seek (outstartfile , 0 )
7102+ return outretval
7103+
7104+
7105+ def StackedArchiveFileValidateFile (infile , fmttype = "auto" , filestart = 0 , formatspecs = __file_format_multi_dict__ , seektoend = False , verbose = False , returnfp = False ):
7106+ return StackedArchiveFileValidate (infile , fmttype , filestart , formatspecs , seektoend , verbose , returnfp )
7107+
7108+
7109+ def StackedArchiveFileValidateMultiple (infile , fmttype = "auto" , filestart = 0 , formatspecs = __file_format_multi_dict__ , seektoend = False , verbose = False , returnfp = False ):
7110+ if (isinstance (infile , (list , tuple , ))):
7111+ pass
7112+ else :
7113+ infile = [infile ]
7114+ outretval = True
7115+ for curfname in infile :
7116+ curretfile = StackedArchiveFileValidate (curfname , fmttype , filestart , formatspecs , seektoend , verbose , returnfp )
7117+ if (not curretfile ):
7118+ outretval = False
7119+ return outretval
7120+
7121+ def StackedArchiveFileValidateMultipleFiles (infile , fmttype = "auto" , filestart = 0 , formatspecs = __file_format_multi_dict__ , seektoend = False , verbose = False , returnfp = False ):
7122+ return StackedArchiveFileValidateMultiple (infile , fmttype , filestart , formatspecs , seektoend , verbose , returnfp )
7123+
70787124
70797125def ArchiveFileToArray (infile , fmttype = "auto" , filestart = 0 , seekstart = 0 , seekend = 0 , listonly = False , contentasfile = True , uncompress = True , skipchecksum = False , formatspecs = __file_format_multi_dict__ , seektoend = False , returnfp = False ):
70807126 if (IsNestedDict (formatspecs ) and fmttype != "auto" and fmttype in formatspecs ):
0 commit comments