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 = "fileNotFound"
BAD_PARAMETERS = "badParameters"
CANNOT_PARSE_XML = "cannotParseXML"
CANNOT_PARSE_JSON = "cannotParseJson"
INVALID_EXTENSION = "invalidExtension"
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_MISSING = "SCHEMA_HEADER_INVALID"
SCHEMA_HEADER_INVALID = "SCHEMA_HEADER_INVALID"
SCHEMA_UNKNOWN_HEADER_ATTRIBUTE = "SCHEMA_HEADER_INVALID"
SCHEMA_LIBRARY_INVALID = "SCHEMA_LIBRARY_INVALID"
BAD_HED_LIBRARY_NAME = "SCHEMA_LIBRARY_INVALID"
BAD_WITH_STANDARD = "SCHEMA_LIBRARY_INVALID"
BAD_WITH_STANDARD_MULTIPLE_VALUES = "SCHEMA_LOAD_FAILED"
ROOTED_TAG_INVALID = "SCHEMA_LIBRARY_INVALID"
ROOTED_TAG_HAS_PARENT = "SCHEMA_LIBRARY_INVALID"
ROOTED_TAG_DOES_NOT_EXIST = "SCHEMA_LIBRARY_INVALID"
IN_LIBRARY_IN_UNMERGED = "SCHEMA_LIBRARY_INVALID"
INVALID_LIBRARY_PREFIX = "SCHEMA_LIBRARY_INVALID"
SCHEMA_VERSION_INVALID = "SCHEMA_VERSION_INVALID"
SCHEMA_SECTION_MISSING = "SCHEMA_SECTION_MISSING"
SCHEMA_INVALID = "SCHEMA_INVALID"
WIKI_SEPARATOR_INVALID = "invalidSectionSeparator"
# 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_PREFIX = "SCHEMA_LOAD_FAILED"
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."""
[docs]
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 = []