From 584375ecff135bc6bf4636dd4930fe5b45ad30d7 Mon Sep 17 00:00:00 2001 From: IanCa Date: Tue, 8 Aug 2023 12:00:18 -0500 Subject: [PATCH] Throw better error on deprecated xml files --- hed/errors/exceptions.py | 1 + hed/schema/schema_io/wiki2schema.py | 2 +- hed/schema/schema_io/xml2schema.py | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/hed/errors/exceptions.py b/hed/errors/exceptions.py index a1def1caf..e7ee857b9 100644 --- a/hed/errors/exceptions.py +++ b/hed/errors/exceptions.py @@ -9,6 +9,7 @@ class HedExceptions: 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' diff --git a/hed/schema/schema_io/wiki2schema.py b/hed/schema/schema_io/wiki2schema.py index 0a29176fc..1a996fba9 100644 --- a/hed/schema/schema_io/wiki2schema.py +++ b/hed/schema/schema_io/wiki2schema.py @@ -494,7 +494,7 @@ def _add_fatal_error(self, line_number, line, warning_message="Schema term is em {'code': error_code, ErrorContext.ROW: line_number, ErrorContext.LINE: line, - "message": f"ERROR: {warning_message}" + "message": f"{error_code}: {warning_message}" } ) diff --git a/hed/schema/schema_io/xml2schema.py b/hed/schema/schema_io/xml2schema.py index 45e242668..c300439e3 100644 --- a/hed/schema/schema_io/xml2schema.py +++ b/hed/schema/schema_io/xml2schema.py @@ -80,6 +80,9 @@ def _parse_sections(self, root_element, parse_order): section_element = self._get_elements_by_name(section_name, root_element) if section_element: section_element = section_element[0] + if isinstance(section_element, list): + raise HedFileError(HedExceptions.INVALID_HED_FORMAT, + "Attempting to load an outdated or invalid XML schema", self.filename) parse_func = parse_order[section_key] parse_func(section_element)