diff options
author | Benjamin Schubert <contact@benschubert.me> | 2019-07-10 08:54:56 +0000 |
---|---|---|
committer | Benjamin Schubert <contact@benschubert.me> | 2019-07-10 08:54:56 +0000 |
commit | 865b90e8ff13094bcab880536fde6109901c77a9 (patch) | |
tree | 366856cc7b7dc44ecddcb57f301a3d093b8d1f6e | |
parent | 76976b6abe2f77de0cb49477bd982911c0f8edbf (diff) | |
parent | 0b4d0605e11080508e3fe384eec891fb49063af3 (diff) | |
download | buildstream-865b90e8ff13094bcab880536fde6109901c77a9.tar.gz |
Merge branch 'bschubert/node-cleanup' into 'bschubert/new-node-api'
_yaml: Remove code duplication on '_new_node_from_*'
See merge request BuildStream/buildstream!1462
-rw-r--r-- | src/buildstream/_yaml.pyx | 22 |
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 |