83 lines
2.9 KiB
Python
83 lines
2.9 KiB
Python
|
|
class PyTexError(Exception):
|
|
def __init__(self, message, *args, **kwargs):
|
|
self.message = message
|
|
|
|
def __str__(self):
|
|
return r'{prefix} ERROR: {message}'.format(
|
|
prefix='[PyTeX]',
|
|
message=self.message
|
|
)
|
|
|
|
|
|
class SubmoduleDirtyForbiddenError(PyTexError):
|
|
def __init__(self):
|
|
super().__init__(
|
|
"Submodule PyTeX is dirty, but writing dirty files is not allowed. "
|
|
"Call PyTeX with '--allow-dirty' option, or commit the submodule changes.")
|
|
|
|
|
|
class ExtraHeaderFileNotFoundError(PyTexError):
|
|
def __init__(self):
|
|
super().__init__('Path to extra header content is invalid.')
|
|
|
|
|
|
class ProgrammingError(PyTexError):
|
|
def __init__(self):
|
|
super().__init__("A FATAL programming error has occurred. Please contact the developer.")
|
|
|
|
|
|
class UnknownTexVersionError(PyTexError):
|
|
def __init__(self, tex_version: str):
|
|
super().__init__(
|
|
f"Unknown TeX version {tex_version}given. Only 'LaTeX2e' and 'LaTeX3' "
|
|
f"are currently supported"
|
|
)
|
|
|
|
|
|
class ModifiedFileInBuildDirectoryError(PyTexError):
|
|
def __init__(self, filename: str):
|
|
super().__init__(
|
|
f"File '{filename}' in the build directory has been modified since the last build. "
|
|
f"Refusing to overwrite a modified file, since you could lose your manual changes. "
|
|
f"If you are sure you do not need this anymore, delete it manually and build again. "
|
|
f"Note that for exactly this reason, it is strongly discouraged to edit built files directly."
|
|
)
|
|
|
|
|
|
class UnknownFileInBuildDirectoryNoOverwriteError(PyTexError):
|
|
def __init__(self, filename: str):
|
|
super().__init__(
|
|
f"Unknown file {filename} in build directory found. "
|
|
f"PyTeX has no knowledge whether this file has been built by PyTeX. "
|
|
f"Refusing to overwrite this file, since you could lose your data. "
|
|
f"If you are sure, this can be got rid of, delete the file manually, "
|
|
f"and run the build again."
|
|
)
|
|
|
|
|
|
class UnknownFileInBuildDirectoryError(PyTexError):
|
|
def __init__(self, filename):
|
|
super().__init__(
|
|
f"Detected unknown file {filename} in build directory."
|
|
f"PyTeX has no knowledge about this, you should probably"
|
|
f"remove it."
|
|
)
|
|
|
|
|
|
class LatexMKError(PyTexError):
|
|
def __init__(self, filename):
|
|
super().__init__(
|
|
f"Running latexmk on file {filename} resulted in an error. "
|
|
f"Make sure this file is well-formed and an appropriate "
|
|
f"'.latexmkrc' is present in its directory."
|
|
)
|
|
|
|
|
|
class FileNotGeneratedFromDTXFileError(PyTexError):
|
|
def __init__(self, filename, type):
|
|
super().__init__(
|
|
f"Running latexmk on {filename} did not produce a LaTeX "
|
|
f"{type} file as needed. I do not know how to build "
|
|
f"a {type} from this '.dtx' file."
|
|
)
|