diff options
author | Benjamin Schubert <contact@benschubert.me> | 2019-06-05 22:10:24 +0100 |
---|---|---|
committer | Benjamin Schubert <contact@benschubert.me> | 2019-06-07 17:28:11 +0000 |
commit | 42f2ceceafc09e53f6c6a81bd8bb237a2e8ff0f6 (patch) | |
tree | 3042c72d4982644be8316ceb1edf214fe6854974 /src/buildstream/_loader | |
parent | a4b7eb30b67f49715a074f9b0aed53b3d9129b3e (diff) | |
download | buildstream-42f2ceceafc09e53f6c6a81bd8bb237a2e8ff0f6.tar.gz |
_loader/types: add type information on _extract_depends_from_node
Diffstat (limited to 'src/buildstream/_loader')
-rw-r--r-- | src/buildstream/_loader/types.pyx | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/buildstream/_loader/types.pyx b/src/buildstream/_loader/types.pyx index b54545dcd..7f7c968e8 100644 --- a/src/buildstream/_loader/types.pyx +++ b/src/buildstream/_loader/types.pyx @@ -126,9 +126,8 @@ cdef class Dependency: # # Helper for extract_depends_from_node to get dependencies of a particular type # -# Creates an array of Dependency objects from a given dict node 'node', -# allows both strings and dicts for expressing the dependency and -# throws a comprehensive LoadError in the case that the node is malformed. +# Adds to an array of Dependency objects from a given dict node 'node', +# allows both strings and dicts for expressing the dependency. # # After extracting depends, the symbol is deleted from the node # @@ -140,14 +139,16 @@ cdef class Dependency: # Returns: # (list): a list of Dependency objects # -cdef _extract_depends_from_node(node, key, default_dep_type): - depends = _yaml.node_get(node, list, key, None, []) - output_deps = [] +cdef list _extract_depends_from_node(_yaml.Node node, str key, str default_dep_type): + cdef list depends = <list> _yaml.node_get(node, list, key, None, []) + cdef list output_deps = [] + cdef int index + cdef _yaml.ProvenanceInformation dep_provenance for index, dep in enumerate(depends): # FIXME: the provenance information would be obtainable from the Node directly if we stop # stripping provenance and have proper nodes for str elements - dep_provenance = _yaml.node_get_provenance(node, key=key, indices=[index]) + dep_provenance = <_yaml.ProvenanceInformation> _yaml.node_get_provenance(node, key=key, indices=[index]) dependency = Dependency(dep, dep_provenance, default_dep_type=default_dep_type) output_deps.append(dependency) @@ -171,8 +172,11 @@ cdef _extract_depends_from_node(node, key, default_dep_type): # Returns: # (list): a list of Dependency objects # -def extract_depends_from_node(node): - build_depends = _extract_depends_from_node(node, Symbol.BUILD_DEPENDS, Symbol.BUILD) - runtime_depends = _extract_depends_from_node(node, Symbol.RUNTIME_DEPENDS, Symbol.RUNTIME) - depends = _extract_depends_from_node(node, Symbol.DEPENDS, None) +def extract_depends_from_node(_yaml.Node node): + cdef list build_depends = <list> _extract_depends_from_node( + node, <str> Symbol.BUILD_DEPENDS, <str> Symbol.BUILD) + cdef list runtime_depends = <list> _extract_depends_from_node( + node, <str> Symbol.RUNTIME_DEPENDS, <str> Symbol.RUNTIME) + cdef list depends = <list> _extract_depends_from_node( + node, <str> Symbol.DEPENDS, None) return build_depends + runtime_depends + depends |