glasswall.determine_file_type.helpers
1from typing import Union 2 3from glasswall.determine_file_type.classes import FileTypeEnum, FileTypeEnumError, FileTypeEnumSuccess 4 5error_list = FileTypeEnumError.__subclasses__() 6success_list = FileTypeEnumSuccess.__subclasses__() 7 8int_str_map = { 9 fte_class.integer: fte_class.string 10 for fte_class in error_list + success_list 11 if all(key in fte_class.__dict__.keys() for key in ["integer", "string"]) 12} 13 14str_int_map = { 15 fte_class.string: fte_class.integer 16 for fte_class in error_list + success_list 17 if all(key in fte_class.__dict__.keys() for key in ["integer", "string"]) 18} 19 20int_class_map = { 21 fte_class.integer: fte_class 22 for fte_class in error_list + success_list 23 if all(key in fte_class.__dict__.keys() for key in ["integer"]) 24} 25 26 27def is_success(file_type: Union[int, str, FileTypeEnumError, FileTypeEnumSuccess]): 28 """ Checks if a file type corresponds to a success. 29 30 Args: 31 file_type (Union[int, str, FileTypeEnumError, FileTypeEnumSuccess]): An enum int returned by Glasswall, str representation of file type, or subclass of FileTypeEnum. 32 33 Returns: 34 bool: Returns True if file_type corresponds to a successful file type, else False. 35 """ 36 if isinstance(file_type, int): 37 return file_type in [s.integer for s in success_list] 38 elif isinstance(file_type, str): 39 return file_type in [s.string for s in success_list] 40 elif issubclass(file_type, FileTypeEnum): 41 return issubclass(file_type, FileTypeEnumSuccess) 42 else: 43 raise TypeError(file_type) 44 45 46def file_type_int_to_str(integer: int): 47 """ Converts a file type enum int to a string. 48 49 Args: 50 integer (int): The enum int that Glasswall returns when ing a file type. 51 52 Returns: 53 Union[type(None), str]: The string representation of a file type, or None. """ 54 return int_str_map.get(integer, None) 55 56 57def file_type_str_to_int(string: str): 58 """ Converts a file type string to an enum int. 59 60 Args: 61 string (str): A string representation of a file type. 62 63 Returns: 64 Union[type(None), int]: The enum int that Glasswall returns when determining a file type, or None. """ 65 return str_int_map.get(string, None)
error_list =
[<class 'glasswall.determine_file_type.errors.UnknownErrorCode'>, <class 'glasswall.determine_file_type.errors.ft_unknown'>, <class 'glasswall.determine_file_type.errors.ft_fileIssues'>, <class 'glasswall.determine_file_type.errors.ft_bufferIssues'>, <class 'glasswall.determine_file_type.errors.ft_internalIssues'>, <class 'glasswall.determine_file_type.errors.ft_licenseExpired'>, <class 'glasswall.determine_file_type.errors.ft_passwordProtectedOpcFile'>, <class 'glasswall.determine_file_type.errors.ft_nullPointerArgument'>, <class 'glasswall.determine_file_type.errors.ft_unsupportedFileType'>]
success_list =
[<class 'glasswall.determine_file_type.successes.ft_pdf'>, <class 'glasswall.determine_file_type.successes.ft_doc'>, <class 'glasswall.determine_file_type.successes.ft_docx'>, <class 'glasswall.determine_file_type.successes.ft_ppt'>, <class 'glasswall.determine_file_type.successes.ft_pptx'>, <class 'glasswall.determine_file_type.successes.ft_xls'>, <class 'glasswall.determine_file_type.successes.ft_xlsx'>, <class 'glasswall.determine_file_type.successes.ft_png'>, <class 'glasswall.determine_file_type.successes.ft_jpeg'>, <class 'glasswall.determine_file_type.successes.ft_gif'>, <class 'glasswall.determine_file_type.successes.ft_emf'>, <class 'glasswall.determine_file_type.successes.ft_wmf'>, <class 'glasswall.determine_file_type.successes.ft_rtf'>, <class 'glasswall.determine_file_type.successes.ft_bmp'>, <class 'glasswall.determine_file_type.successes.ft_tiff'>, <class 'glasswall.determine_file_type.successes.ft_pe'>, <class 'glasswall.determine_file_type.successes.ft_macho'>, <class 'glasswall.determine_file_type.successes.ft_elf'>, <class 'glasswall.determine_file_type.successes.ft_mp4'>, <class 'glasswall.determine_file_type.successes.ft_mp3'>, <class 'glasswall.determine_file_type.successes.ft_mp2'>, <class 'glasswall.determine_file_type.successes.ft_wav'>, <class 'glasswall.determine_file_type.successes.ft_mpg'>, <class 'glasswall.determine_file_type.successes.ft_coff'>, <class 'glasswall.determine_file_type.successes.ft_json'>, <class 'glasswall.determine_file_type.successes.ft_vbamacros'>, <class 'glasswall.determine_file_type.successes.ft_svg'>, <class 'glasswall.determine_file_type.successes.ft_webp'>, <class 'glasswall.determine_file_type.successes.ft_dylib'>, <class 'glasswall.determine_file_type.successes.ft_utf8'>, <class 'glasswall.determine_file_type.successes.ft_ascii'>, <class 'glasswall.determine_file_type.successes.ft_zip'>, <class 'glasswall.determine_file_type.successes.ft_gzip'>, <class 'glasswall.determine_file_type.successes.ft_bzip2'>, <class 'glasswall.determine_file_type.successes.ft_7zip'>, <class 'glasswall.determine_file_type.successes.ft_rar'>, <class 'glasswall.determine_file_type.successes.ft_tar'>, <class 'glasswall.determine_file_type.successes.ft_xz'>, <class 'glasswall.determine_file_type.successes.ft_ooxml'>, <class 'glasswall.determine_file_type.successes.ft_office'>, <class 'glasswall.determine_file_type.successes.ft_bin'>, <class 'glasswall.determine_file_type.successes.ft_xml'>, <class 'glasswall.determine_file_type.successes.ft_docxPackageInCfb'>, <class 'glasswall.determine_file_type.successes.ft_xlsxPackageInCfb'>, <class 'glasswall.determine_file_type.successes.ft_pptxPackageInCfb'>, <class 'glasswall.determine_file_type.successes.ft_xlscore'>, <class 'glasswall.determine_file_type.successes.ft_doccore'>, <class 'glasswall.determine_file_type.successes.ft_pptcore'>, <class 'glasswall.determine_file_type.successes.ft_picturestream'>, <class 'glasswall.determine_file_type.successes.ft_printersettings'>, <class 'glasswall.determine_file_type.successes.ft_equationnative'>, <class 'glasswall.determine_file_type.successes.ft_compobj'>, <class 'glasswall.determine_file_type.successes.ft_docsummary'>, <class 'glasswall.determine_file_type.successes.ft_opc'>, <class 'glasswall.determine_file_type.successes.ft_cfb'>, <class 'glasswall.determine_file_type.successes.ft_interchangePackage'>, <class 'glasswall.determine_file_type.successes.ft_pdf_core2'>, <class 'glasswall.determine_file_type.successes.ft_fi'>, <class 'glasswall.determine_file_type.successes.ft_pdfContentStream'>, <class 'glasswall.determine_file_type.successes.ft_rebuild'>, <class 'glasswall.determine_file_type.successes.ft_gwlens'>]
int_str_map =
{0: 'unknown', 1: 'fileIssues', 2: 'bufferIssues', 3: 'internalIssues', 4: 'licenseExpired', 5: 'passwordProtectedOpcFile', 6: 'nullPointerArgument', 7: 'unsupportedFileType', 16: 'pdf', 17: 'doc', 18: 'docx', 19: 'ppt', 20: 'pptx', 21: 'xls', 22: 'xlsx', 23: 'png', 24: 'jpeg', 25: 'gif', 26: 'emf', 27: 'wmf', 28: 'rtf', 29: 'bmp', 30: 'tiff', 31: 'pe', 32: 'macho', 33: 'elf', 34: 'mp4', 35: 'mp3', 36: 'mp2', 37: 'wav', 38: 'mpg', 39: 'coff', 40: 'json', 41: 'vba', 42: 'svg', 43: 'webp', 44: 'dylib', 45: 'utf8', 46: 'ascii', 256: 'zip', 257: 'gz', 258: 'bz2', 259: '7z', 260: 'rar', 261: 'tar', 262: 'xz', 512: 'ooxml', 513: 'office', 514: 'bin', 515: 'xml', 768: 'docxPackageInCfb', 769: 'xlsxPackageInCfb', 770: 'pptxPackageInCfb', 771: 'xlscore', 772: 'doccore', 773: 'pptcore', 774: 'picturestream', 775: 'printersettings', 776: 'equationnative', 777: 'compobj', 778: 'docsummary', 779: 'opc', 780: 'cfb', 781: 'interchangePackage', 782: 'pdf_core2', 783: 'fi', 784: 'pdfContentStream', 785: 'rebuild', 786: 'gwlens'}
str_int_map =
{'unknown': 0, 'fileIssues': 1, 'bufferIssues': 2, 'internalIssues': 3, 'licenseExpired': 4, 'passwordProtectedOpcFile': 5, 'nullPointerArgument': 6, 'unsupportedFileType': 7, 'pdf': 16, 'doc': 17, 'docx': 18, 'ppt': 19, 'pptx': 20, 'xls': 21, 'xlsx': 22, 'png': 23, 'jpeg': 24, 'gif': 25, 'emf': 26, 'wmf': 27, 'rtf': 28, 'bmp': 29, 'tiff': 30, 'pe': 31, 'macho': 32, 'elf': 33, 'mp4': 34, 'mp3': 35, 'mp2': 36, 'wav': 37, 'mpg': 38, 'coff': 39, 'json': 40, 'vba': 41, 'svg': 42, 'webp': 43, 'dylib': 44, 'utf8': 45, 'ascii': 46, 'zip': 256, 'gz': 257, 'bz2': 258, '7z': 259, 'rar': 260, 'tar': 261, 'xz': 262, 'ooxml': 512, 'office': 513, 'bin': 514, 'xml': 515, 'docxPackageInCfb': 768, 'xlsxPackageInCfb': 769, 'pptxPackageInCfb': 770, 'xlscore': 771, 'doccore': 772, 'pptcore': 773, 'picturestream': 774, 'printersettings': 775, 'equationnative': 776, 'compobj': 777, 'docsummary': 778, 'opc': 779, 'cfb': 780, 'interchangePackage': 781, 'pdf_core2': 782, 'fi': 783, 'pdfContentStream': 784, 'rebuild': 785, 'gwlens': 786}
int_class_map =
{0: <class 'glasswall.determine_file_type.errors.ft_unknown'>, 1: <class 'glasswall.determine_file_type.errors.ft_fileIssues'>, 2: <class 'glasswall.determine_file_type.errors.ft_bufferIssues'>, 3: <class 'glasswall.determine_file_type.errors.ft_internalIssues'>, 4: <class 'glasswall.determine_file_type.errors.ft_licenseExpired'>, 5: <class 'glasswall.determine_file_type.errors.ft_passwordProtectedOpcFile'>, 6: <class 'glasswall.determine_file_type.errors.ft_nullPointerArgument'>, 7: <class 'glasswall.determine_file_type.errors.ft_unsupportedFileType'>, 16: <class 'glasswall.determine_file_type.successes.ft_pdf'>, 17: <class 'glasswall.determine_file_type.successes.ft_doc'>, 18: <class 'glasswall.determine_file_type.successes.ft_docx'>, 19: <class 'glasswall.determine_file_type.successes.ft_ppt'>, 20: <class 'glasswall.determine_file_type.successes.ft_pptx'>, 21: <class 'glasswall.determine_file_type.successes.ft_xls'>, 22: <class 'glasswall.determine_file_type.successes.ft_xlsx'>, 23: <class 'glasswall.determine_file_type.successes.ft_png'>, 24: <class 'glasswall.determine_file_type.successes.ft_jpeg'>, 25: <class 'glasswall.determine_file_type.successes.ft_gif'>, 26: <class 'glasswall.determine_file_type.successes.ft_emf'>, 27: <class 'glasswall.determine_file_type.successes.ft_wmf'>, 28: <class 'glasswall.determine_file_type.successes.ft_rtf'>, 29: <class 'glasswall.determine_file_type.successes.ft_bmp'>, 30: <class 'glasswall.determine_file_type.successes.ft_tiff'>, 31: <class 'glasswall.determine_file_type.successes.ft_pe'>, 32: <class 'glasswall.determine_file_type.successes.ft_macho'>, 33: <class 'glasswall.determine_file_type.successes.ft_elf'>, 34: <class 'glasswall.determine_file_type.successes.ft_mp4'>, 35: <class 'glasswall.determine_file_type.successes.ft_mp3'>, 36: <class 'glasswall.determine_file_type.successes.ft_mp2'>, 37: <class 'glasswall.determine_file_type.successes.ft_wav'>, 38: <class 'glasswall.determine_file_type.successes.ft_mpg'>, 39: <class 'glasswall.determine_file_type.successes.ft_coff'>, 40: <class 'glasswall.determine_file_type.successes.ft_json'>, 41: <class 'glasswall.determine_file_type.successes.ft_vbamacros'>, 42: <class 'glasswall.determine_file_type.successes.ft_svg'>, 43: <class 'glasswall.determine_file_type.successes.ft_webp'>, 44: <class 'glasswall.determine_file_type.successes.ft_dylib'>, 45: <class 'glasswall.determine_file_type.successes.ft_utf8'>, 46: <class 'glasswall.determine_file_type.successes.ft_ascii'>, 256: <class 'glasswall.determine_file_type.successes.ft_zip'>, 257: <class 'glasswall.determine_file_type.successes.ft_gzip'>, 258: <class 'glasswall.determine_file_type.successes.ft_bzip2'>, 259: <class 'glasswall.determine_file_type.successes.ft_7zip'>, 260: <class 'glasswall.determine_file_type.successes.ft_rar'>, 261: <class 'glasswall.determine_file_type.successes.ft_tar'>, 262: <class 'glasswall.determine_file_type.successes.ft_xz'>, 512: <class 'glasswall.determine_file_type.successes.ft_ooxml'>, 513: <class 'glasswall.determine_file_type.successes.ft_office'>, 514: <class 'glasswall.determine_file_type.successes.ft_bin'>, 515: <class 'glasswall.determine_file_type.successes.ft_xml'>, 768: <class 'glasswall.determine_file_type.successes.ft_docxPackageInCfb'>, 769: <class 'glasswall.determine_file_type.successes.ft_xlsxPackageInCfb'>, 770: <class 'glasswall.determine_file_type.successes.ft_pptxPackageInCfb'>, 771: <class 'glasswall.determine_file_type.successes.ft_xlscore'>, 772: <class 'glasswall.determine_file_type.successes.ft_doccore'>, 773: <class 'glasswall.determine_file_type.successes.ft_pptcore'>, 774: <class 'glasswall.determine_file_type.successes.ft_picturestream'>, 775: <class 'glasswall.determine_file_type.successes.ft_printersettings'>, 776: <class 'glasswall.determine_file_type.successes.ft_equationnative'>, 777: <class 'glasswall.determine_file_type.successes.ft_compobj'>, 778: <class 'glasswall.determine_file_type.successes.ft_docsummary'>, 779: <class 'glasswall.determine_file_type.successes.ft_opc'>, 780: <class 'glasswall.determine_file_type.successes.ft_cfb'>, 781: <class 'glasswall.determine_file_type.successes.ft_interchangePackage'>, 782: <class 'glasswall.determine_file_type.successes.ft_pdf_core2'>, 783: <class 'glasswall.determine_file_type.successes.ft_fi'>, 784: <class 'glasswall.determine_file_type.successes.ft_pdfContentStream'>, 785: <class 'glasswall.determine_file_type.successes.ft_rebuild'>, 786: <class 'glasswall.determine_file_type.successes.ft_gwlens'>}
def
is_success( file_type: Union[int, str, glasswall.determine_file_type.classes.FileTypeEnumError, glasswall.determine_file_type.classes.FileTypeEnumSuccess]):
30def is_success(file_type: Union[int, str, FileTypeEnumError, FileTypeEnumSuccess]): 31 """ Checks if a file type corresponds to a success. 32 33 Args: 34 file_type (Union[int, str, FileTypeEnumError, FileTypeEnumSuccess]): An enum int returned by Glasswall, str representation of file type, or subclass of FileTypeEnum. 35 36 Returns: 37 bool: Returns True if file_type corresponds to a successful file type, else False. 38 """ 39 if isinstance(file_type, int): 40 return file_type in [s.integer for s in success_list] 41 elif isinstance(file_type, str): 42 return file_type in [s.string for s in success_list] 43 elif issubclass(file_type, FileTypeEnum): 44 return issubclass(file_type, FileTypeEnumSuccess) 45 else: 46 raise TypeError(file_type)
Checks if a file type corresponds to a success.
Args: file_type (Union[int, str, FileTypeEnumError, FileTypeEnumSuccess]): An enum int returned by Glasswall, str representation of file type, or subclass of FileTypeEnum.
Returns: bool: Returns True if file_type corresponds to a successful file type, else False.
def
file_type_int_to_str(integer: int):
49def file_type_int_to_str(integer: int): 50 """ Converts a file type enum int to a string. 51 52 Args: 53 integer (int): The enum int that Glasswall returns when ing a file type. 54 55 Returns: 56 Union[type(None), str]: The string representation of a file type, or None. """ 57 return int_str_map.get(integer, None)
Converts a file type enum int to a string.
Args: integer (int): The enum int that Glasswall returns when ing a file type.
Returns: Union[type(None), str]: The string representation of a file type, or None.
def
file_type_str_to_int(string: str):
60def file_type_str_to_int(string: str): 61 """ Converts a file type string to an enum int. 62 63 Args: 64 string (str): A string representation of a file type. 65 66 Returns: 67 Union[type(None), int]: The enum int that Glasswall returns when determining a file type, or None. """ 68 return str_int_map.get(string, None)
Converts a file type string to an enum int.
Args: string (str): A string representation of a file type.
Returns: Union[type(None), int]: The enum int that Glasswall returns when determining a file type, or None.