58 lines
1.6 KiB
Python
58 lines
1.6 KiB
Python
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 NotImplementedError
|
|
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 NotImplementedError
|
|
else:
|
|
return switcher[flavour]
|
|
|
|
|
|
class PyTeXFileType(Enum):
|
|
PyTeXSourceFile = 'PyTeXSourceFile'
|
|
TeXSourceFile = 'TeXSourceFile'
|
|
TeXOutputFile = 'TeXOutputFile'
|
|
TeXDocumentationFile = 'TeXDocumentationFile'
|