From 1fabcf68eeaca9b47197119652e2e504192660c3 Mon Sep 17 00:00:00 2001 From: Sethfire <17826826+Sethfire@users.noreply.github.com> Date: Wed, 3 Sep 2025 19:01:04 +1000 Subject: [PATCH 1/3] fix for enemy database kv pairs --- arkprts/assets/bundle.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arkprts/assets/bundle.py b/arkprts/assets/bundle.py index c474e2b..028937f 100644 --- a/arkprts/assets/bundle.py +++ b/arkprts/assets/bundle.py @@ -217,8 +217,8 @@ def recursively_collapse_keys(obj: typing.Any) -> typing.Any: """Recursively collapse arknights flatc dictionaries.""" if isinstance(obj, list): obj = typing.cast("typing.Any", obj) - if all(isinstance(item, dict) and item.keys() == {"key", "value"} for item in obj): - return {item["key"]: recursively_collapse_keys(item["value"]) for item in obj} + if all(isinstance(item, dict) and (item.keys() == {"key", "value"} or item.keys() == {"Key", "Value"}) for item in obj): + return {(item["key"] if "key" in item else item["Key"]): recursively_collapse_keys(item["value"] if "value" in item else item["Value"]) for item in obj} return [recursively_collapse_keys(item) for item in obj] From 7751cb74d26e9da823326a7084986a3f5377dec8 Mon Sep 17 00:00:00 2001 From: Sethfire <17826826+Sethfire@users.noreply.github.com> Date: Wed, 3 Sep 2025 19:11:35 +1000 Subject: [PATCH 2/3] actually this method of resolving it might be better --- arkprts/assets/bundle.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/arkprts/assets/bundle.py b/arkprts/assets/bundle.py index 028937f..7172267 100644 --- a/arkprts/assets/bundle.py +++ b/arkprts/assets/bundle.py @@ -217,8 +217,11 @@ def recursively_collapse_keys(obj: typing.Any) -> typing.Any: """Recursively collapse arknights flatc dictionaries.""" if isinstance(obj, list): obj = typing.cast("typing.Any", obj) - if all(isinstance(item, dict) and (item.keys() == {"key", "value"} or item.keys() == {"Key", "Value"}) for item in obj): - return {(item["key"] if "key" in item else item["Key"]): recursively_collapse_keys(item["value"] if "value" in item else item["Value"]) for item in obj} + if all(isinstance(item, dict) and item.keys() == {"key", "value"} for item in obj): + return {item["key"]: recursively_collapse_keys(item["value"]) for item in obj} + + elif all(isinstance(item, dict) and item.keys() == {"Key", "Value"} for item in obj): + return {item["Key"]: recursively_collapse_keys(item["Value"]) for item in obj} return [recursively_collapse_keys(item) for item in obj] From ddece558f973118343a334ac850265ac69286397 Mon Sep 17 00:00:00 2001 From: Sethfire <17826826+Sethfire@users.noreply.github.com> Date: Wed, 3 Sep 2025 19:16:47 +1000 Subject: [PATCH 3/3] elif not required for if statement with return --- arkprts/assets/bundle.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arkprts/assets/bundle.py b/arkprts/assets/bundle.py index 7172267..174c589 100644 --- a/arkprts/assets/bundle.py +++ b/arkprts/assets/bundle.py @@ -220,7 +220,7 @@ def recursively_collapse_keys(obj: typing.Any) -> typing.Any: if all(isinstance(item, dict) and item.keys() == {"key", "value"} for item in obj): return {item["key"]: recursively_collapse_keys(item["value"]) for item in obj} - elif all(isinstance(item, dict) and item.keys() == {"Key", "Value"} for item in obj): + if all(isinstance(item, dict) and item.keys() == {"Key", "Value"} for item in obj): return {item["Key"]: recursively_collapse_keys(item["Value"]) for item in obj} return [recursively_collapse_keys(item) for item in obj]