diff options
author | Benjamin Schubert <ben.c.schubert@gmail.com> | 2019-07-09 18:13:46 +0100 |
---|---|---|
committer | Benjamin Schubert <ben.c.schubert@gmail.com> | 2019-07-09 18:13:46 +0100 |
commit | e60cfad7f3a5f99a3d1f438ebf5091b276dc2ca1 (patch) | |
tree | 77ad15eb1c050b3770817189fa29fc47d82bc07e | |
parent | 21887e3a4f777ce54a427956bde1b927450c173a (diff) | |
download | buildstream-bschubert/node-cleanup.tar.gz |
_yaml: Remove code duplication on '_new_node_from_*'bschubert/node-cleanup
-rw-r--r-- | src/buildstream/_yaml.pyx | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/src/buildstream/_yaml.pyx b/src/buildstream/_yaml.pyx index a84c05759..9865c3059 100644 --- a/src/buildstream/_yaml.pyx +++ b/src/buildstream/_yaml.pyx @@ -1184,14 +1184,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 @@ -1201,14 +1195,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 |