From 76ed7bfeeefb72a2988dd7ad634b46293fc9cd62 Mon Sep 17 00:00:00 2001
From: "i.nueske" <i.nueske@indiscale.com>
Date: Wed, 5 Mar 2025 13:05:56 +0100
Subject: [PATCH] ENH: XLSX Export cleanup incl. remove broken warnings filter

---
 .../table_json_conversion/export_import_xlsx.py            | 7 ++-----
 .../table_json_conversion/validation_utils.py              | 5 ++++-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/caosadvancedtools/table_json_conversion/export_import_xlsx.py b/src/caosadvancedtools/table_json_conversion/export_import_xlsx.py
index ed2b9720..8730d986 100644
--- a/src/caosadvancedtools/table_json_conversion/export_import_xlsx.py
+++ b/src/caosadvancedtools/table_json_conversion/export_import_xlsx.py
@@ -30,9 +30,7 @@ from pathlib import Path
 import linkahead
 from linkahead.common.models import Container
 from linkahead import execute_query
-with warnings.catch_warnings():
-    warnings.filterwarnings("ignore", message="^.*experimental.*$")
-    from linkahead.high_level_api import convert_to_python_object
+from linkahead.high_level_api import convert_to_python_object
 
 from ..json_schema_exporter import JsonSchemaExporter, merge_schemas
 from .table_generator import XLSXTemplateGenerator
@@ -100,7 +98,7 @@ def _generate_jsondata_from_records(records: Container,
         # Convert records to high level api objects
         record_obj = convert_to_python_object(record)
         try:
-            record_obj.resolve_references(True, None)
+            record_obj.resolve_references(False, None)
         except linkahead.LinkAheadException:
             warnings.warn(f"Data for record with id {record_obj.id} might be "
                           f"incomplete, unsuccessful retrieve.")
@@ -231,7 +229,6 @@ def export_container_to_xlsx(records: Container,
                                 message="^.*No validation schema.*$")
         fill_template(data=json_data, template=xlsx_template_filepath,
                       result=xlsx_data_filepath)
-        # ToDo: Validation
     # Cleanup
     if xlsx_template_file is not None:
         xlsx_template_file.close()
diff --git a/src/caosadvancedtools/table_json_conversion/validation_utils.py b/src/caosadvancedtools/table_json_conversion/validation_utils.py
index 4d5e0741..f1e77f48 100644
--- a/src/caosadvancedtools/table_json_conversion/validation_utils.py
+++ b/src/caosadvancedtools/table_json_conversion/validation_utils.py
@@ -80,7 +80,10 @@ def _validate_jsonschema(instance: Union[dict, int, str, bool],
                             _in_schema('format', 'date-time', schema[key])):
                         iterable.pop(key)
                 elif isinstance(iterable, (dict, list)):
-                    _remove_incompatible_vals(elem, schema[key])
+                    try:
+                        _remove_incompatible_vals(elem, schema[key])
+                    except KeyError:
+                        pass
         return iterable
 
     # If jsonschema is a file, load its content
-- 
GitLab