from enum import Enum class TeXType(Enum): TeXPackage = 'TeXPackage' TeXClass = 'TeXClass' TeXDocstrip = 'TeXDocstrip' TeXDictionary = 'TeXDictionary' TeXDocumentation = 'TeXDocumentation' @staticmethod def parse(tex_type: str): switcher = { 'package': TeXType.TeXPackage, 'sty': TeXType.TeXPackage, 'class': TeXType.TeXClass, 'cls': TeXType.TeXClass, 'dictionary': TeXType.TeXDictionary, 'dict': TeXType.TeXDictionary, 'documentation': TeXType.TeXDocumentation, 'doc': TeXType.TeXDocumentation, # TODO: dangerous? 'dtx': TeXType.TeXDocstrip, 'docstrip': TeXType.TeXDocstrip, 'strip': TeXType.TeXDocstrip } if tex_type not in switcher.keys(): raise ValueError # TODO else: return switcher[tex_type] class TeXFlavour(Enum): TeX = 'TeX' LaTeX2e = 'LaTeX2e' LaTeX3 = 'LaTeX3' @staticmethod def parse(flavour: str): switcher = { '1': TeXFlavour.TeX, '2': TeXFlavour.LaTeX2e, '2e': TeXFlavour.LaTeX2e, '3': TeXFlavour.LaTeX3, 'TeX': TeXFlavour.TeX, 'LaTeX2e': TeXFlavour.LaTeX2e, 'LateX3': TeXFlavour.LaTeX3 } if flavour not in switcher.keys(): raise ValueError # TODO else: return switcher[flavour] class PyTeXFileType(Enum): PyTeXSourceFile = 'PyTeXSourceFile' TeXSourceFile = 'TeXSourceFile' TeXOutputFile = 'TeXOutputFile' TeXDocumentationFile = 'TeXDocumentationFile'