From 973f99282e37a4ce02ddc6d1c998621f7b9b7fb5 Mon Sep 17 00:00:00 2001 From: Daniel Hornung <d.hornung@indiscale.com> Date: Thu, 21 Mar 2024 11:09:13 +0100 Subject: [PATCH] ENH: Handling illegal characters. --- .../table_json_conversion/fill_xlsx.py | 7 +++++-- .../data/simple_data_ascii_chars.json | 14 +++++++------- .../data/simple_data_ascii_chars.xlsx | Bin 0 -> 8890 bytes .../table_json_conversion/test_fill_xlsx.py | 3 +-- 4 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 unittests/table_json_conversion/data/simple_data_ascii_chars.xlsx diff --git a/src/caosadvancedtools/table_json_conversion/fill_xlsx.py b/src/caosadvancedtools/table_json_conversion/fill_xlsx.py index 511c006d..88356ccc 100644 --- a/src/caosadvancedtools/table_json_conversion/fill_xlsx.py +++ b/src/caosadvancedtools/table_json_conversion/fill_xlsx.py @@ -32,6 +32,7 @@ from warnings import warn from jsonschema import FormatChecker, validate from jsonschema.exceptions import ValidationError from openpyxl import Workbook, load_workbook +from openpyxl.cell.cell import ILLEGAL_CHARACTERS_RE from openpyxl.worksheet.worksheet import Worksheet from .table_generator import ColumnType, RowType @@ -332,7 +333,8 @@ out: union[dict, None] if insert_row is None: insert_row = _next_row_index(sheet) - sheet.cell(row=insert_row+1, column=col_index+1, value=value) + sheet.cell(row=insert_row+1, column=col_index+1, + value=ILLEGAL_CHARACTERS_RE.sub("", value)) # Insert foreign keys if insert_row is not None and sheet is not None and _is_exploded_sheet(sheet): @@ -343,7 +345,8 @@ out: union[dict, None] raise for index, path in ((f.index, f.path) for f in foreigns.values()): value = context[path] - sheet.cell(row=insert_row+1, column=index+1, value=value) + sheet.cell(row=insert_row+1, column=index+1, + value=ILLEGAL_CHARACTERS_RE.sub("", value)) return None diff --git a/unittests/table_json_conversion/data/simple_data_ascii_chars.json b/unittests/table_json_conversion/data/simple_data_ascii_chars.json index 049b7203..b1d13ebe 100644 --- a/unittests/table_json_conversion/data/simple_data_ascii_chars.json +++ b/unittests/table_json_conversion/data/simple_data_ascii_chars.json @@ -1,17 +1,17 @@ { "Training": { "date": "2023-01-01", - "url": "char: \u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u0009", + "url": "char: >\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u0009<", "subjects": [ - "\u000a\u000b\u000c\u000d\u000e\u000f", - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017", - "\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f", - "\u0020\u0021\u0022\u0023\u0024\u0025\u0026\u0027", - "\u0028\u0029\u002a\u002b\u002c\u002d\u002e\u002f" + ">\u000a\u000b\u000c\u000e\u000f<", + ">\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017<", + ">\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f<", + ">\u0020\u0021\u0022\u0023\u0024\u0025\u0026\u0027<", + ">\u0028\u0029\u002a\u002b\u002c\u002d\u002e\u002f<" ] }, "Person": { - "family_name": "Steve:", + "family_name": "Steve", "given_name": "Stevie", "Organisation": "IMF" } diff --git a/unittests/table_json_conversion/data/simple_data_ascii_chars.xlsx b/unittests/table_json_conversion/data/simple_data_ascii_chars.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..bdf60b568bf51726a0a25e599bb6c7e70988d287 GIT binary patch literal 8890 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 literal 0 HcmV?d00001 diff --git a/unittests/table_json_conversion/test_fill_xlsx.py b/unittests/table_json_conversion/test_fill_xlsx.py index 8609a6eb..946336da 100644 --- a/unittests/table_json_conversion/test_fill_xlsx.py +++ b/unittests/table_json_conversion/test_fill_xlsx.py @@ -134,10 +134,9 @@ def test_fill_xlsx(): template_file=rfp("data/indirect_template.xlsx"), known_good=rfp("data/indirect_data.xlsx"), schema=rfp("data/indirect_schema.json")) - fill_and_compare(json_file=rfp("data/simple_data_ascii_chars.json"), template_file=rfp("data/simple_template.xlsx"), - known_good=rfp("data/simple_data.xlsx"), + known_good=rfp("data/simple_data_ascii_chars.xlsx"), schema=rfp("data/simple_schema.json")) -- GitLab