Skip to content

Commit 8efe44b

Browse files
committed
Utility functions update
1 parent a6bc824 commit 8efe44b

File tree

2 files changed

+18
-21
lines changed

2 files changed

+18
-21
lines changed

cli/config.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,7 @@ def __parse_args(desc: str) -> object:
125125
def __normalize_json(json_data: dict[str, any], remove_empty: bool = True, remove_none: bool = True) -> dict[str, any]:
126126
"""Sorts a JSON file and optionally remove empty and none values"""
127127
log.info("Normalizing JSON - remove empty = %s, remove nones = %s", str(remove_empty), str(remove_none))
128-
if remove_empty:
129-
json_data = utilities.remove_empties(json_data)
130-
if remove_none:
131-
json_data = utilities.remove_nones(json_data)
128+
json_data = utilities.clean_data(json_data, remove_none=remove_none, remove_empty=remove_empty)
132129
json_data = utilities.order_keys(json_data, *_SECTIONS_ORDER)
133130
for key in [k for k in _SECTIONS_TO_SORT if k in json_data]:
134131
json_data[key] = {k: json_data[key][k] for k in sorted(json_data[key])}
@@ -260,7 +257,7 @@ def __prep_json_for_write(json_data: types.ObjectJsonRepr, export_settings: type
260257
json_data = utilities.remove_nones(json_data)
261258
if not export_settings.get(EXPORT_EMPTY, False):
262259
log.debug("Removing empties")
263-
json_data = utilities.remove_empties(json_data)
260+
json_data = utilities.clean_data(json_data, remove_empty=True)
264261
if export_settings.get("INLINE_LISTS", True):
265262
json_data = utilities.inline_lists(json_data, exceptions=("conditions",))
266263
return json_data

sonar/utilities.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -723,15 +723,15 @@ def dict_remap_and_stringify(original_dict: dict[str, str], remapping: dict[str,
723723
return dict_stringify(dict_remap(original_dict, remapping))
724724

725725

726-
def list_to_dict(original_list: list[dict[str, any]], key_field: str) -> dict[str, any]:
726+
def list_to_dict(original_list: list[dict[str, Any]], key_field: str) -> dict[str, any]:
727727
"""Converts a list to dict with list key_field as dict key"""
728728
converted_dict = {elem[key_field]: elem for elem in original_list}
729729
for e in converted_dict.values():
730730
e.pop(key_field)
731731
return converted_dict
732732

733733

734-
def dict_to_list(original_dict: dict[str, any], key_field: str, value_field: Optional[str] = "value") -> list[str, any]:
734+
def dict_to_list(original_dict: dict[str, Any], key_field: str, value_field: Optional[str] = "value") -> list[str, any]:
735735
"""Converts a dict to list adding dict key in list key_field"""
736736
if isinstance(original_dict, list):
737737
return original_dict
@@ -791,20 +791,6 @@ def pretty_print_json(file: str) -> bool:
791791
return True
792792

793793

794-
def order_keys(original_dict: dict[str, any], *keys) -> dict[str, any]:
795-
"""Orders a dict keys in a chosen order, existings keys not in *keys are pushed to the end
796-
:param dict[str, any] original_dict: Dict to order
797-
:param str *keys: List of keys in desired order
798-
:return: same dict with keys in desired order
799-
"""
800-
ordered_dict = {}
801-
for key in [k for k in keys if k in original_dict]:
802-
ordered_dict[key] = original_dict[key]
803-
for key in [k for k in original_dict if k not in keys]:
804-
ordered_dict[key] = original_dict[key]
805-
return ordered_dict
806-
807-
808794
def flatten(original_dict: dict[str, any]) -> dict[str, any]:
809795
"""Flattens a recursive dict into a flat one"""
810796
flat_dict = {}
@@ -834,6 +820,20 @@ def sort_list_by_key(list_to_sort: list[dict[str, Any]], key: str, priority_fiel
834820
return first_elem + list(dict(sorted(tmp_dict.items())).values())
835821

836822

823+
def order_keys(original_dict: dict[str, any], *keys) -> dict[str, any]:
824+
"""Orders a dict keys in a chosen order, existings keys not in *keys are pushed to the end
825+
:param dict[str, any] original_dict: Dict to order
826+
:param str *keys: List of keys in desired order
827+
:return: same dict with keys in desired order
828+
"""
829+
ordered_dict = {}
830+
for key in [k for k in keys if k in original_dict]:
831+
ordered_dict[key] = original_dict[key]
832+
for key in [k for k in original_dict if k not in keys]:
833+
ordered_dict[key] = original_dict[key]
834+
return ordered_dict
835+
836+
837837
def order_dict(d: dict[str, Any], key_order: list[str]) -> dict[str, Any]:
838838
"""Orders keys of a dictionary in a given order"""
839839
new_d = {k: d[k] for k in key_order if k in d}

0 commit comments

Comments
 (0)