Source code for hed.errors.exceptions
"""HED exceptions and exception codes."""
[docs]
class HedExceptions:
"""HED exception codes."""
GENERIC_ERROR = "GENERIC_ERROR"
# A list of all exceptions that can be generated by the hedtools.
URL_ERROR = "URL_ERROR"
FILE_NOT_FOUND = "FILE_NOT_FOUND"
BAD_PARAMETERS = "BAD_PARAMETERS"
CANNOT_PARSE_XML = "CANNOT_PARSE_XML"
CANNOT_PARSE_JSON = "CANNOT_PARSE_JSON"
INVALID_EXTENSION = "INVALID_EXTENSION"
INVALID_HED_FORMAT = "INVALID_HED_FORMAT"
INVALID_DATAFRAME = "INVALID_DATAFRAME"
INVALID_FILE_FORMAT = "INVALID_FILE_FORMAT"
# These are actual schema issues, not that the file cannot be found or parsed
SCHEMA_HEADER_INVALID = "SCHEMA_HEADER_INVALID"
SCHEMA_LIBRARY_INVALID = "SCHEMA_LIBRARY_INVALID"
SCHEMA_VERSION_INVALID = "SCHEMA_VERSION_INVALID"
SCHEMA_SECTION_MISSING = "SCHEMA_SECTION_MISSING"
SCHEMA_INVALID = "SCHEMA_INVALID"
WIKI_SEPARATOR_INVALID = "WIKI_SEPARATOR_INVALID"
# This issue will contain a list of lines with issues.
WIKI_DELIMITERS_INVALID = "WIKI_DELIMITERS_INVALID"
WIKI_LINE_START_INVALID = "WIKI_LINE_START_INVALID"
WIKI_LINE_INVALID = "WIKI_LINE_INVALID"
HED_SCHEMA_NODE_NAME_INVALID = "HED_SCHEMA_NODE_NAME_INVALID"
SCHEMA_DUPLICATE_LIBRARY = "SCHEMA_LIBRARY_INVALID"
BAD_COLUMN_NAMES = "BAD_COLUMN_NAMES"
SCHEMA_DUPLICATE_NAMES = "SCHEMA_DUPLICATE_NAMES"
CANNOT_PARSE_RDF = "CANNOT_PARSE_RDF"
SCHEMA_LOAD_FAILED = "SCHEMA_LOAD_FAILED"
SCHEMA_TAG_TSV_BAD_PARENT = "SCHEMA_TAG_TSV_BAD_PARENT"
[docs]
class HedFileError(Exception):
"""Exception raised when a file cannot be parsed due to being malformed, file IO, etc."""
def __init__(self, code, message, filename, issues=None):
self.code = code
self.message = message
self.filename = filename
self.issues = issues
if self.issues is None:
self.issues = []
class HedQueryError(ValueError):
"""Exception raised when a HED query string cannot be parsed.
Inherits from :class:`ValueError` so that existing ``except ValueError`` handlers
continue to work, while allowing callers that need finer-grained control to
catch only query parse errors with ``except HedQueryError``.
"""