From a504c310338f74ac87e3b71f1e14abadd206573a Mon Sep 17 00:00:00 2001
From: Daniel Hornung <d.hornung@indiscale.com>
Date: Tue, 19 Mar 2024 12:24:55 +0100
Subject: [PATCH] WIP for fill_xlsx.

---
 .../table_json_conversion/fill_xlsx.py             | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/src/caosadvancedtools/table_json_conversion/fill_xlsx.py b/src/caosadvancedtools/table_json_conversion/fill_xlsx.py
index f58cb876..c3859ac1 100644
--- a/src/caosadvancedtools/table_json_conversion/fill_xlsx.py
+++ b/src/caosadvancedtools/table_json_conversion/fill_xlsx.py
@@ -282,7 +282,7 @@ out: union[dict, None]
             if isinstance(content, list):
                 if not content:  # empty list
                     continue
-                # list elements must be all of the same type.
+                # List elements must be all of the same type.
                 assert len(set(type(entry) for entry in content)) == 1
 
                 if isinstance(content[0], dict):  # all elements are dicts
@@ -304,24 +304,20 @@ out: union[dict, None]
                 content = [content]  # make list for unified treatment below
 
             # collecting the data
-            assert isinstance(content, list)  # TODO do we want this??? make list non-lists?
-            if len(content) == 1:
-                value = content[0]
-            else:
-                value = ";".join(content)  # TODO we need escaping of values
+            assert isinstance(content, list)
+            value = ";".join(content)  # TODO we need escaping of values
             path_str = p2s(path)
             assert path_str not in insertables
             insertables[path_str] = value
         if only_collect_insertables:
             return insertables
-        if not current_path:  # top level returns (?)
+        if not current_path:  # Top level returns, because there are only sheets for the children.
             return None
 
         # actual data insertion
         insert_row = None
         sheet = None
         for path_str, value in insertables.items():
-
             sheet_meta = self._sheet_index[path_str]
             if sheet is None:
                 sheet = sheet_meta.sheet
@@ -376,6 +372,8 @@ validation_schema: dict, optional
         except ValidationError as ve:
             print(ve.message)
             raise RuntimeError("Validation failed")
+    else:
+        print("No validation schema given, continue at your own risk.")
 
     # Filling the data
     result_wb = load_workbook(template)
-- 
GitLab