Skip to content

Commit 9c0546d

Browse files
refactor: improve variable names in 'update_yaml_file()'
1 parent 9cb5bb2 commit 9c0546d

1 file changed

Lines changed: 17 additions & 19 deletions

File tree

gitopscli/yaml/yaml_util.py

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import re
22
from ruamel.yaml import YAML
33

4-
INDEX_PATTERN = re.compile(r"\[(\d+)\]")
4+
ARRAY_KEY_SEGMENT_PATTERN = re.compile(r"\[(\d+)\]")
55

66

77
def yaml_load(doc):
@@ -28,31 +28,29 @@ def update_yaml_file(file_path, key, value):
2828
with open(file_path, "r") as stream:
2929
content = yaml.load(stream)
3030

31-
keys, item = key.split("."), content
32-
leaf_idx = len(keys) - 1
31+
key_segments = key.split(".")
3332
current_key_segments = []
34-
current_key = ""
35-
for i, k in enumerate(keys):
36-
current_key_segments.append(k)
33+
parent_item = content
34+
for current_key_segment in key_segments:
35+
current_key_segments.append(current_key_segment)
3736
current_key = ".".join(current_key_segments)
38-
is_array = INDEX_PATTERN.match(k)
37+
is_array = ARRAY_KEY_SEGMENT_PATTERN.match(current_key_segment)
3938
if is_array:
40-
k = int(is_array.group(1))
41-
if not isinstance(item, list) or k >= len(item):
39+
current_key_segment = int(is_array.group(1))
40+
if not isinstance(parent_item, list) or current_key_segment >= len(parent_item):
4241
raise KeyError(f"Key '{current_key}' not found in YAML!")
4342
else:
44-
if not isinstance(item, dict) or k not in item:
43+
if not isinstance(parent_item, dict) or current_key_segment not in parent_item:
4544
raise KeyError(f"Key '{current_key}' not found in YAML!")
46-
if i == leaf_idx:
47-
if item[k] == value:
45+
if current_key == key:
46+
if parent_item[current_key_segment] == value:
4847
return False # nothing to update
49-
item[k] = value
50-
break
51-
item = item[k]
52-
53-
with open(file_path, "w+") as stream:
54-
yaml.dump(content, stream)
55-
return True
48+
parent_item[current_key_segment] = value
49+
with open(file_path, "w+") as stream:
50+
yaml.dump(content, stream)
51+
return True
52+
parent_item = parent_item[current_key_segment]
53+
raise KeyError(f"Empty key!")
5654

5755

5856
def merge_yaml_element(file_path, element_path, desired_value, delete_missing_key=False):

0 commit comments

Comments
 (0)