Source code for delphin.exceptions


"""
Basic exception and warning classes for PyDelphin.
"""

# Default modules need to import the PyDelphin version
from delphin.__about__ import __version__  # noqa: F401


[docs] class PyDelphinException(Exception): """The base class for PyDelphin exceptions.""" def __init__(self, *args, **kwargs): super(PyDelphinException, self).__init__(*args, **kwargs)
[docs] class PyDelphinWarning(Warning): """The base class for PyDelphin warnings.""" def __init__(self, *args, **kwargs): super(PyDelphinWarning, self).__init__(*args, **kwargs)
[docs] class PyDelphinSyntaxError(PyDelphinException): def __init__(self, message=None, filename=None, lineno=None, offset=None, text=None): self.message = message self.filename = filename self.lineno = lineno self.offset = offset self.text = text def __str__(self): parts = [] if self.filename is not None: parts.append(f'File "{self.filename}"') if self.lineno is not None: parts.append(f'line {self.lineno}') if self.offset is not None: parts.append(f'character {self.offset}') if parts: parts = ['', ' ' + ', '.join(parts)] if self.text is not None: parts.append(' ' + self.text) if self.offset is not None: parts.append(' ' + (' ' * self.offset) + '^') if self.message is not None: parts.append(f'{type(self).__name__}: {self.message}') return '\n'.join(parts)