From c1ac6b81c2597c30bf8853c9bf7f19fd0bcaa4f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eray=20=C3=96zkural?= Date: Fri, 10 Jun 2005 20:08:56 +0000 Subject: [PATCH] * fix: XmlFile.getAllNodes returns [] when it finds nothing * specfile: parse packages except file specs --- popt/popt.pspec | 2 +- src/specfile.py | 15 ++++++++++++--- src/xmlfile.py | 7 +++---- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/popt/popt.pspec b/popt/popt.pspec index 4cc19f07..6968f3ff 100644 --- a/popt/popt.pspec +++ b/popt/popt.pspec @@ -49,7 +49,7 @@ gettext - /usr/lib/ + /usr/lib /usr/share/doc /usr/share/man /usr/share/locale diff --git a/src/specfile.py b/src/specfile.py index 9ceb5d2b..50fb366b 100644 --- a/src/specfile.py +++ b/src/specfile.py @@ -20,8 +20,15 @@ class DepInfo: class PackageInfo: def __init__(self, node): - comps = getChildElts(node) - self.name = comps[0] + self.name = getNodeText(getNode(node, "Name")) + self.summary = getNodeText(getNode(node, "Summary")) + self.description = getNodeText(getNode(node, "Description")) + self.category = getNodeText(getNode(node, "Category")) + iDepElts = getAllNodes(node, "InstallDependencies") + self.installDeps = [DepInfo(d) for d in iDepElts] + rtDepElts = getAllNodes(node, "RuntimeDependencies") + self.runtimeDeps = [DepInfo(d) for d in rtDepElts] + class SpecFile(XmlFile): """A class for reading/writing from/to a PSPEC (PISI SPEC) file.""" @@ -53,7 +60,9 @@ class SpecFile(XmlFile): packageElts = self.getAllNodes("Package") packages = [PackageInfo(p) for p in packageElts] print packages - + for x in packages: + print 'package', x.name + def verify(self): """Verify PSPEC structures, are they what we want of them?""" return True diff --git a/src/xmlfile.py b/src/xmlfile.py index 11bd57f9..c55ff37b 100644 --- a/src/xmlfile.py +++ b/src/xmlfile.py @@ -54,13 +54,12 @@ def getNode(node, tagpath): def getAllNodes(node, tags): """retrieve all nodes that match a given tag path.""" - print "tags = ", tags if len(tags)==0: - return None + return [] nodeList = node.getElementsByTagName(tags[0]) if len(nodeList)==0: - return None + return [] for tag in tags[1:]: results = map(lambda x: x.getElementsByTagName(tag),nodeList) @@ -70,7 +69,7 @@ def getAllNodes(node, tags): pass # emacs indentation error, keep it here if len(nodeList)==0: - return None + return [] return nodeList