Error Classes
This implementation provides individual error classes for all errors defined by the Erbsland Configuration Language. They all share a common base class Error
, which allows a convenient “catch-all” error handling while parsing and evaluating the configuration.
The ConfValueNotFound
error also subclasses KeyError
, to make value lookup match the usual Python conventions.
Interface
- class ErrorCategory(*values)
The error category is used to classify errors that occur during parsing or evaluation.
- IO = ('IO', 1)
A problem occurred while reading data from an I/O stream.
- ENCODING = ('Encoding', 2)
The document contains a problem with UTF-8 encoding.
- UNEXPECTED_END = ('UnexpectedEnd', 3)
The document ended unexpectedly.
- CHARACTER = ('Character', 4)
The document contains a control character that is not allowed.
- SYNTAX = ('Syntax', 5)
The document has a syntax error.
- LIMIT_EXCEEDED = ('LimitExceeded', 6)
The size of a name, text, or buffer exceeds the permitted limit.
- NAME_CONFLICT = ('NameConflict', 7)
The same name has already been defined earlier in the document.
- INDENTATION = ('Indentation', 8)
The indentation of a continued line does not match the previous line.
- UNSUPPORTED = ('Unsupported', 9)
The requested feature/version is not supported by this parser.
- SIGNATURE = ('Signature', 10)
The document’s signature was rejected.
- ACCESS = ('Access', 11)
The document was rejected due to an access check.
- VALIDATION = ('Validation', 12)
The document did not meet one of the validation rules.
- INTERNAL = ('Internal', 99)
The parser encountered an unexpected internal error.
- VALUE_NOT_FOUND = ('ValueNotFound', 101)
A value does not exist.
- TYPE_MISMATCH = ('TypeMismatch', 102)
A value exists but has the wrong type for a conversion.
- class ErrorOutput(*values)
Flags to control the output of errors.
- FILENAME_ONLY = 1
Only display the filename, not the full path.
- USE_LINES = 2
Break the error message into multiple lines.
- DEFAULT = 0
Default format.
- exception Error(category: ErrorCategory, message: str, *, source: Source | SourceIdentifier | Location | None = None, position: Position | None = None, path: Path | None = None, system_message: str | None = None, name_path: 'NamePath' | None = None, offset: int | None = None)
Represents a problem encountered while parsing a document or accessing a value.
- property category: ErrorCategory
Category of the error.
- property offset: int | None
Offset of the error from the start of the given source location, if available.
- to_text(output: ~erbsland.conf.error.ErrorOutput = <ErrorOutput.DEFAULT: 0>) str
Return a readable string representation of the error.
- with_source(source: Source | SourceIdentifier | Location) Error
Return a copy of the error with
source
replaced.
- exception ConfUnexpectedEnd(message: str, **kwargs)
Error raised when a document ends unexpectedly.
- exception ConfIndentationError(message: str, **kwargs)
Error raised for inconsistent indentation in continued lines.
- exception ConfUnsupportedError(message: str, **kwargs)
Error raised for features not supported by the parser.
- exception ConfSignatureError(message: str, **kwargs)
Error raised when a document’s signature is rejected.
- exception ConfAccessError(message: str, **kwargs)
Error raised when a document fails an access check.
- exception ConfValidationError(message: str, **kwargs)
Error raised when the document violates validation rules.
- exception ConfInternalError(message: str, **kwargs)
Error raised when the parser encounters an unexpected internal issue.