From 1b73832837a2d06953f55e59c4f09c827560b984 Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Tue, 10 Mar 2009 14:25:20 +0000 Subject: [PATCH] added RecordSpec class --- geni/util/rspec.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/geni/util/rspec.py b/geni/util/rspec.py index 0fef4709..0831d917 100644 --- a/geni/util/rspec.py +++ b/geni/util/rspec.py @@ -178,14 +178,14 @@ class Rspec(): def elementNode(tagname, rd): element = minidom.Element(tagname) for key in rd.keys(): - if isinstance(rd[key], StringTypes): - element.setAttribute(key, rd[key]) + if isinstance(rd[key], StringTypes) or isinstance(rd[key], int): + element.setAttribute(key, str(rd[key])) elif isinstance(rd[key], dict): child = elementNode(key, rd[key]) element.appendChild(child) elif isinstance(rd[key], list): for item in rd[key]: - child = elementNode(key, item) + child = elementNode(key, {key:item}) element.appendChild(child) return element @@ -272,4 +272,19 @@ class Rspec(): 'EBoolean' : bool, 'EFloat' : float, 'EDate' : date} + + + +class RecordSpec(Rspec): + + def parseDict(self, rdict, include_doc = False): + """ + Convert a dictionary into a dom object and store it. + """ + self.rootNode = self.dict2dom(rdict, include_doc) + + def dict2dom(self, rdict, include_doc = False): + record_dict = {'record': rdict} + return Rspec.dict2dom(self, record_dict, include_doc) + # vim:ts=4:expandtab -- 2.43.0