summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Schubert <ben.c.schubert@gmail.com>2019-07-09 18:13:46 +0100
committerBenjamin Schubert <ben.c.schubert@gmail.com>2019-07-15 13:59:42 +0100
commit0ad4b11cd1cd17b4034242430dfd3248edc07e4c (patch)
treea7fddf40d99f0675e9915a33ea4c966e37b8ca65
parentf60ce059b7709c29280bbc8346af673c05dce1e5 (diff)
downloadbuildstream-0ad4b11cd1cd17b4034242430dfd3248edc07e4c.tar.gz
_yaml: Remove code duplication on '_new_node_from_*'
-rw-r--r--src/buildstream/_yaml.pyx22
1 files changed, 5 insertions, 17 deletions
diff --git a/src/buildstream/_yaml.pyx b/src/buildstream/_yaml.pyx
index 945a82378..13b9d8459 100644
--- a/src/buildstream/_yaml.pyx
+++ b/src/buildstream/_yaml.pyx
@@ -1019,7 +1019,7 @@ cdef Node _create_node_recursive(object value, Node ref_node):
if value_type is list:
node = _new_node_from_list(value, ref_node)
- elif value_type is str:
+ elif value_type in [int, str, bool]:
node = ScalarNode.__new__(ScalarNode, ref_node.file_index, ref_node.line, next_synthetic_counter(), value)
elif value_type is dict:
node = _new_node_from_dict(value, ref_node)
@@ -1169,14 +1169,8 @@ cdef Node _new_node_from_dict(dict indict, Node ref_node):
cdef str k
for k, v in indict.items():
- vtype = type(v)
- if vtype is dict:
- ret.value[k] = _new_node_from_dict(v, ref_node)
- elif vtype is list:
- ret.value[k] = _new_node_from_list(v, ref_node)
- else:
- ret.value[k] = ScalarNode.__new__(
- ScalarNode, ref_node.file_index, ref_node.line, next_synthetic_counter(), v)
+ ret.value[k] = _create_node_recursive(v, ref_node)
+
return ret
@@ -1186,14 +1180,8 @@ cdef Node _new_node_from_list(list inlist, Node ref_node):
SequenceNode, ref_node.file_index, ref_node.line, next_synthetic_counter(), [])
for v in inlist:
- vtype = type(v)
- if vtype is dict:
- ret.value.append(_new_node_from_dict(v, ref_node))
- elif vtype is list:
- ret.value.append(_new_node_from_list(v, ref_node))
- else:
- ret.value.append(
- ScalarNode.__new__(ScalarNode, ref_node.file_index, ref_node.line, next_synthetic_counter(), v))
+ ret.value.append(_create_node_recursive(v, ref_node))
+
return ret