From cf1c6f5db3bd50af83988ba3533774372340852f Mon Sep 17 00:00:00 2001 From: Jimmy Berry Date: Tue, 20 Jun 2017 16:37:16 -0500 Subject: [PATCH] core: provide depends_on(). --- osclib/core.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/osclib/core.py b/osclib/core.py index dd2acedc..0edc4a47 100644 --- a/osclib/core.py +++ b/osclib/core.py @@ -1,6 +1,7 @@ from xml.etree import cElementTree as ET import osc.core +from osc.core import get_dependson from osc.core import http_GET from osc.core import makeurl from osc.core import show_project_meta @@ -51,3 +52,12 @@ def target_archs(apiurl, project): for arch in meta.findall('repository[@name="standard"]/arch'): archs.append(arch.text) return archs + +@memoize(session=True) +def depends_on(apiurl, project, repository, packages=None, reverse=None): + dependencies = set() + for arch in target_archs(apiurl, project): + root = ET.fromstring(get_dependson(apiurl, project, repository, arch, packages, reverse)) + dependencies.update(pkgdep.text for pkgdep in root.findall('.//pkgdep')) + + return dependencies