[Treepkg-commits] r370 - branches/treepkg-status/treepkg/info
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Thu Jul 22 13:02:36 CEST 2010
Author: bricks
Date: 2010-07-22 13:02:36 +0200 (Thu, 22 Jul 2010)
New Revision: 370
Modified:
branches/treepkg-status/treepkg/info/status.py
Log:
added a new root element which is called TreepkgRoot for Treepkg Info classes
Modified: branches/treepkg-status/treepkg/info/status.py
===================================================================
--- branches/treepkg-status/treepkg/info/status.py 2010-07-22 10:26:40 UTC (rev 369)
+++ branches/treepkg-status/treepkg/info/status.py 2010-07-22 11:02:36 UTC (rev 370)
@@ -54,8 +54,9 @@
def __init__(self, config, numnewestrev=-1):
self.numnewestrev = numnewestrev
group = get_packager_group(config)
- self.tpkgroot = TreepkgRootInfo(group.name, group.treepkg_dir,
+ treepkgrootinfo = TreepkgRootInfo(group.name, group.treepkg_dir,
group.tracks_dir)
+ self.tpgkroot = TreepkgRoot(version, treepkgrootinfo)
tracks = group.get_package_tracks()
for track in tracks:
@@ -73,7 +74,7 @@
if not root.tagName == "treepkg":
print xmlstr
raise TreepkgInfoException("XML is not valid for treepkginfo")
- return TreepkgRootInfo.fromxml(root)
+ return TreepkgRoot.fromxml(root)
def add_revisions(self, track, trackinfo):
revisions = track.get_revisions()
@@ -115,6 +116,40 @@
pkginfo.add_checksum(checksuminfo)
revision.add_package(pkginfo)
+class TreepkgRoot:
+
+ def __init__(self, version, info)
+ self.version = version
+ self.info = info
+ self.tracks = []
+
+ def add_track(self, track):
+ self.tracks.append(track)
+
+ def toxml(self):
+ (doc, root) = createTpkgRoot("treepkg")
+ root.setAttributeNS(TREEPKG_NAMESPACE_URI, "version", self.version)
+ if len(self.tracks) > 0:
+ tracksele = createTpkgElement(doc, "tracks")
+ for track in self.tracks:
+ tracksele.appendChild(track.toxml())
+ root.appendChild(tracksele)
+ root.appendChild(info.toxml())
+ return root
+
+ @staticmethod
+ def fromxml(node):
+ version = node.getAttribute("version")
+ trackseles = node.getElementsByTagName("tracks")
+ infoele = getChild(node, "info")
+ treepkgrootinfo = TreepkgRootInfo.fromxml(infoele)
+ treepkgroot = TreepkgRoot(version, treepkgrootinfo)
+ tracks = []
+ for trackele in trackseles:
+ tracks.append(TreepkgTrackInfo.fromxml(trackele))
+ treepkgroot.tracks = tracks
+ return treepkgroot
+
class TreepkgRootInfo:
def __init__(self, name, treepkgpath=None, trackspath=None, version=None):
@@ -122,11 +157,7 @@
self.treepkgpath = treepkgpath
self.trackspath = trackspath
self.version = version
- self.tracks = []
- def add_track(self, track):
- self.tracks.append(track)
-
def toxml(self):
(doc, root) = createTpkgRoot("info")
# add <name>
@@ -152,12 +183,7 @@
text = doc.createTextNode(self.version)
versionele.appendChild(text)
root.appendChild(versionele)
- if len(self.tracks) > 0:
- tracksele = createTpkgElement(doc, "tracks")
- for track in self.tracks:
- tracksele.appendChild(track.toxml())
- root.appendChild(tracksele)
- return root
+ return root
@staticmethod
def fromxml(node):
@@ -169,12 +195,7 @@
treepkgpath = getTextFromNode(treepkgpathele)
trackspathele = getChild(infoele, "trackspath")
trackspath = getTextFromNode(trackspathele)
- trackseles = node.getElementsByTagName("tracks")
- tracks = []
- for trackele in trackseles:
- tracks.append(TreepkgTrackInfo.fromxml(trackele))
trackinfo = TreepkgRootInfo(name, treepkgpath, trackspath, version)
- trackinfo.tracks = tracks
return trackinfo
class TreepkgTrackInfo:
More information about the Treepkg-commits
mailing list