This repository has been archived on 2025-09-03. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Alicja Cięciwa cb8886666c login page
2020-10-27 12:57:58 +01:00

203 lines
5.1 KiB
Python

class TOMLKitError(Exception):
pass
class ParseError(ValueError, TOMLKitError):
"""
This error occurs when the parser encounters a syntax error
in the TOML being parsed. The error references the line and
location within the line where the error was encountered.
"""
def __init__(
self, line, col, message=None
): # type: (int, int, Optional[str]) -> None
self._line = line
self._col = col
if message is None:
message = "TOML parse error"
super(ParseError, self).__init__(
"{} at line {} col {}".format(message, self._line, self._col)
)
@property
def line(self):
return self._line
@property
def col(self):
return self._col
class MixedArrayTypesError(ParseError):
"""
An array was found that had two or more element types.
"""
def __init__(self, line, col): # type: (int, int) -> None
message = "Mixed types found in array"
super(MixedArrayTypesError, self).__init__(line, col, message=message)
class InvalidNumberError(ParseError):
"""
A numeric field was improperly specified.
"""
def __init__(self, line, col): # type: (int, int) -> None
message = "Invalid number"
super(InvalidNumberError, self).__init__(line, col, message=message)
class InvalidDateTimeError(ParseError):
"""
A datetime field was improperly specified.
"""
def __init__(self, line, col): # type: (int, int) -> None
message = "Invalid datetime"
super(InvalidDateTimeError, self).__init__(line, col, message=message)
class InvalidDateError(ParseError):
"""
A date field was improperly specified.
"""
def __init__(self, line, col): # type: (int, int) -> None
message = "Invalid date"
super(InvalidDateError, self).__init__(line, col, message=message)
class InvalidTimeError(ParseError):
"""
A date field was improperly specified.
"""
def __init__(self, line, col): # type: (int, int) -> None
message = "Invalid time"
super(InvalidTimeError, self).__init__(line, col, message=message)
class InvalidNumberOrDateError(ParseError):
"""
A numeric or date field was improperly specified.
"""
def __init__(self, line, col): # type: (int, int) -> None
message = "Invalid number or date format"
super(InvalidNumberOrDateError, self).__init__(line, col, message=message)
class InvalidUnicodeValueError(ParseError):
"""
A unicode code was improperly specified.
"""
def __init__(self, line, col): # type: (int, int) -> None
message = "Invalid unicode value"
super(InvalidUnicodeValueError, self).__init__(line, col, message=message)
class UnexpectedCharError(ParseError):
"""
An unexpected character was found during parsing.
"""
def __init__(self, line, col, char): # type: (int, int, str) -> None
message = "Unexpected character: {}".format(repr(char))
super(UnexpectedCharError, self).__init__(line, col, message=message)
class EmptyKeyError(ParseError):
"""
An empty key was found during parsing.
"""
def __init__(self, line, col): # type: (int, int) -> None
message = "Empty key"
super(EmptyKeyError, self).__init__(line, col, message=message)
class EmptyTableNameError(ParseError):
"""
An empty table name was found during parsing.
"""
def __init__(self, line, col): # type: (int, int) -> None
message = "Empty table name"
super(EmptyTableNameError, self).__init__(line, col, message=message)
class InvalidCharInStringError(ParseError):
"""
The string being parsed contains an invalid character.
"""
def __init__(self, line, col, char): # type: (int, int, str) -> None
message = "Invalid character {} in string".format(repr(char))
super(InvalidCharInStringError, self).__init__(line, col, message=message)
class UnexpectedEofError(ParseError):
"""
The TOML being parsed ended before the end of a statement.
"""
def __init__(self, line, col): # type: (int, int) -> None
message = "Unexpected end of file"
super(UnexpectedEofError, self).__init__(line, col, message=message)
class InternalParserError(ParseError):
"""
An error that indicates a bug in the parser.
"""
def __init__(
self, line, col, message=None
): # type: (int, int, Optional[str]) -> None
msg = "Internal parser error"
if message:
msg += " ({})".format(message)
super(InternalParserError, self).__init__(line, col, message=msg)
class NonExistentKey(KeyError, TOMLKitError):
"""
A non-existent key was used.
"""
def __init__(self, key):
message = 'Key "{}" does not exist.'.format(key)
super(NonExistentKey, self).__init__(message)
class KeyAlreadyPresent(TOMLKitError):
"""
An already present key was used.
"""
def __init__(self, key):
message = 'Key "{}" already exists.'.format(key)
super(KeyAlreadyPresent, self).__init__(message)