Example #1
0
    def __call__(self):
        self.alreadyCalled = True
        result = Bag()
        result.obj = self.obj
        obj = self.obj
        if isinstance(obj, BagResolver):
            obj = obj()

        for name, x in obj.items():
            if isinstance(x, GnrStructObj):
                tag = x.getTag()
                attr = {'tag': tag}
                attr.update(x.attributes)
                result.setItem(name, StructObjResolver(x), _attributes=attr)
            # attributes are lost, we should take from parent node, but it can be a structobj...
            elif isinstance(x, Bag) or isinstance(x, BagResolver):
                result.setItem(name, StructObjResolver(x), tag=x.getTag())
            else:
                result.setItem(name, x, tag=x.getTag())
        return result
Example #2
0
 def __call__(self):
     self.alreadyCalled = True
     result = Bag()
     #result.clear()
     result.obj = self.obj
     #obj = self.obj()
     obj = self.obj
     if isinstance(obj, BagResolver):
         obj = obj()
         
     for name, x in obj.items():
         if isinstance(x, GnrStructObj):
             tag = x.getTag()
             attr = {'tag': tag}
             attr.update(x.attributes)
             result.setItem(name, StructObjResolver(x), _attributes=attr)
         elif isinstance(x, Bag) or isinstance(x,
                                               BagResolver):# attributes are lost, we should take from parent node, but it can be a structobj...
             result.setItem(name, StructObjResolver(x), tag=x.getTag())
         else:
             result.setItem(name, x, tag=x.getTag())
     return result