From 41e0d2284ee1910a3c2b686d405142ee94475bad Mon Sep 17 00:00:00 2001 From: Josh Shields Date: Mon, 17 Jun 2024 12:03:36 -0400 Subject: [PATCH 1/3] handle case of strings --- stardis/io/base.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/stardis/io/base.py b/stardis/io/base.py index 5f0b4f95..bb580288 100644 --- a/stardis/io/base.py +++ b/stardis/io/base.py @@ -50,11 +50,18 @@ def parse_config_to_model(config_fname, add_config_keys=None, add_config_vals=No pass else: print("Updating config with additional keys and values") - try: + if isinstance(add_config_keys, str): + # Directly set the config item if add_config_keys is a string + config.set_config_item(add_config_keys, add_config_vals) + else: + # Proceed with iteration if add_config_keys is not a string for key, val in zip(add_config_keys, add_config_vals): config.set_config_item(key, val) - except: - config.set_config_item(add_config_keys, add_config_vals) + try: + for key, val in zip(add_config_keys, add_config_vals): + config.set_config_item(key, val) + except: + config.set_config_item(add_config_keys, add_config_vals) try: config_dict = validate_dict(config, schemapath=SCHEMA_PATH) From d700acfd80f18ce42b4a44f21f9aff9ee580680a Mon Sep 17 00:00:00 2001 From: Josh Shields Date: Mon, 17 Jun 2024 14:17:47 -0400 Subject: [PATCH 2/3] remove duplicated code --- stardis/io/base.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/stardis/io/base.py b/stardis/io/base.py index bb580288..1f933e4f 100644 --- a/stardis/io/base.py +++ b/stardis/io/base.py @@ -55,8 +55,6 @@ def parse_config_to_model(config_fname, add_config_keys=None, add_config_vals=No config.set_config_item(add_config_keys, add_config_vals) else: # Proceed with iteration if add_config_keys is not a string - for key, val in zip(add_config_keys, add_config_vals): - config.set_config_item(key, val) try: for key, val in zip(add_config_keys, add_config_vals): config.set_config_item(key, val) From 9d8c1af1437e8119d27b9f3d919a7025cb6447a4 Mon Sep 17 00:00:00 2001 From: Josh Shields Date: Mon, 17 Jun 2024 14:25:19 -0400 Subject: [PATCH 3/3] catch errors --- stardis/io/base.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/stardis/io/base.py b/stardis/io/base.py index 1f933e4f..a4ba029f 100644 --- a/stardis/io/base.py +++ b/stardis/io/base.py @@ -55,11 +55,17 @@ def parse_config_to_model(config_fname, add_config_keys=None, add_config_vals=No config.set_config_item(add_config_keys, add_config_vals) else: # Proceed with iteration if add_config_keys is not a string + if len(add_config_keys) != len(add_config_vals): + raise ValueError( + "Length of additional config keys and values do not match." + ) try: for key, val in zip(add_config_keys, add_config_vals): config.set_config_item(key, val) except: - config.set_config_item(add_config_keys, add_config_vals) + raise ValueError( + f"{add_config_keys} not a valid type. Should be a single string or a list of strings for keys." + ) try: config_dict = validate_dict(config, schemapath=SCHEMA_PATH)