7676except NameError :
7777 basestring = str
7878
79+ try :
80+ unicode # Py2
81+ except NameError : # Py3
82+ unicode = str
83+
84+ def to_text (s , encoding = "utf-8" , errors = "ignore" ):
85+ if s is None :
86+ return u""
87+ if isinstance (s , unicode ):
88+ return s
89+ if isinstance (s , (bytes , bytearray )):
90+ return s .decode (encoding , errors )
91+ return unicode (s )
92+
7993baseint = []
8094try :
8195 baseint .append (long )
@@ -8594,16 +8608,30 @@ def UnPackCatFileString(instr, outdir=None, followlink=False, seekstart=0, seeke
85948608 listarchivefiles = UnPackCatFile (fp , outdir , followlink , seekstart , seekend , skipchecksum , formatspecs , seektoend , verbose , returnfp )
85958609 return listarchivefiles
85968610
8611+ def ftype_to_str (ftype ):
8612+ mapping = {
8613+ 0 : "file" ,
8614+ 1 : "link" ,
8615+ 2 : "symlink" ,
8616+ 3 : "char device" ,
8617+ 4 : "block device" ,
8618+ 5 : "directory" ,
8619+ 6 : "fifo" ,
8620+ 12 : "sparse" ,
8621+ 14 : "device" ,
8622+ }
8623+ # Default to "file" if unknown
8624+ return mapping .get (ftype , "file" )
85978625
8598- def CatFileListFiles (infile , fmttype = "auto" , seekstart = 0 , seekend = 0 , skipchecksum = False , formatspecs = __file_format_multi_dict__ , seektoend = False , verbose = False , returnfp = False ):
8626+ def CatFileListFiles (infile , fmttype = "auto" , seekstart = 0 , seekend = 0 , skipchecksum = False , formatspecs = __file_format_multi_dict__ , seektoend = False , verbose = False , newstyle = False , returnfp = False ):
85998627 if (verbose ):
86008628 logging .basicConfig (format = "%(message)s" , stream = sys .stdout , level = logging .DEBUG )
86018629 if (isinstance (infile , dict )):
86028630 listarchivefiles = infile
86038631 else :
86048632 if (infile != "-" and not hasattr (infile , "read" ) and not hasattr (infile , "write" ) and not (sys .version_info [0 ] >= 3 and isinstance (infile , bytes ))):
86058633 infile = RemoveWindowsPath (infile )
8606- listarchivefiles = CatFileToArray (infile , fmttype , seekstart , seekend , True , False , False , skipchecksum , formatspecs , seektoend , returnfp )
8634+ listarchivefiles = ArchiveFileToArray (infile , fmttype , seekstart , seekend , True , False , False , skipchecksum , formatspecs , seektoend , returnfp )
86078635 if (not listarchivefiles ):
86088636 return False
86098637 lenlist = len (listarchivefiles ['ffilelist' ])
@@ -8635,7 +8663,11 @@ def CatFileListFiles(infile, fmttype="auto", seekstart=0, seekend=0, skipchecksu
86358663 fgprint = listarchivefiles ['ffilelist' ][lcfi ]['fgname' ]
86368664 if (len (fgprint ) <= 0 ):
86378665 fgprint = listarchivefiles ['ffilelist' ][lcfi ]['fgid' ]
8638- VerbosePrintOut (PrintPermissionString (listarchivefiles ['ffilelist' ][lcfi ]['fmode' ], listarchivefiles ['ffilelist' ][lcfi ]['ftype' ]) + " " + str (fuprint ) + "/" + str (fgprint ) + " " + str (
8666+ if (newstyle ):
8667+ VerbosePrintOut (ftype_to_str (listarchivefiles ['ffilelist' ][lcfi ]['ftype' ]) + "\t " + listarchivefiles ['ffilelist' ][lcfi ]['fcompression' ] + "\t " + str (
8668+ listarchivefiles ['ffilelist' ][lcfi ]['fsize' ]).rjust (15 ) + "\t " + printfname )
8669+ else :
8670+ VerbosePrintOut (PrintPermissionString (listarchivefiles ['ffilelist' ][lcfi ]['fmode' ], listarchivefiles ['ffilelist' ][lcfi ]['ftype' ]) + " " + str (fuprint ) + "/" + str (fgprint ) + " " + str (
86398671 listarchivefiles ['ffilelist' ][lcfi ]['fsize' ]).rjust (15 ) + " " + datetime .datetime .utcfromtimestamp (listarchivefiles ['ffilelist' ][lcfi ]['fmtime' ]).strftime ('%Y-%m-%d %H:%M' ) + " " + printfname )
86408672 lcfi = lcfi + 1
86418673 if (returnfp ):
@@ -8644,10 +8676,10 @@ def CatFileListFiles(infile, fmttype="auto", seekstart=0, seekend=0, skipchecksu
86448676 return True
86458677
86468678
8647- def CatFileStringListFiles (instr , seekstart = 0 , seekend = 0 , skipchecksum = False , formatspecs = __file_format_multi_dict__ , seektoend = False , verbose = False , returnfp = False ):
8679+ def CatFileStringListFiles (instr , seekstart = 0 , seekend = 0 , skipchecksum = False , formatspecs = __file_format_multi_dict__ , seektoend = False , verbose = False , newstyle = False , returnfp = False ):
86488680 fp = BytesIO (instr )
86498681 listarchivefiles = CatFileListFiles (
8650- instr , seekstart , seekend , skipchecksum , formatspecs , seektoend , verbose , returnfp )
8682+ instr , seekstart , seekend , skipchecksum , formatspecs , seektoend , verbose , newstyle , returnfp )
86518683 return listarchivefiles
86528684
86538685
@@ -9154,7 +9186,7 @@ def SevenZipFileListFiles(infile, verbose=False, returnfp=False):
91549186 return True
91559187
91569188
9157- def InFileListFiles (infile , verbose = False , formatspecs = __file_format_multi_dict__ , seektoend = False , returnfp = False ):
9189+ def InFileListFiles (infile , verbose = False , formatspecs = __file_format_multi_dict__ , seektoend = False , newstyle = False , returnfp = False ):
91589190 if (verbose ):
91599191 logging .basicConfig (format = "%(message)s" , stream = sys .stdout , level = logging .DEBUG )
91609192 checkcompressfile = CheckCompressionSubType (infile , formatspecs , True )
@@ -9169,7 +9201,7 @@ def InFileListFiles(infile, verbose=False, formatspecs=__file_format_multi_dict_
91699201 elif (py7zr_support and checkcompressfile == "7zipfile" and py7zr .is_7zfile (infile )):
91709202 return SevenZipFileListFiles (infile , verbose , returnfp )
91719203 elif (checkcompressfile == formatspecs ['format_magic' ]):
9172- return CatFileListFiles (infile , 0 , 0 , False , formatspecs , seektoend , verbose , returnfp )
9204+ return CatFileListFiles (infile , 0 , 0 , False , formatspecs , seektoend , verbose , newstyle , returnfp )
91739205 else :
91749206 return False
91759207 return False
0 commit comments