Exemple #1
0
    def get_texts_nested(self,prep=False,compare_to=None):
        if self.data is None and len(self.children) > 0 :
            sub = []
            for c in self.children:
                sub.extend(c.get_texts_nested(prep,compare_to))
            rt = [{"id":self.identifier,"tag":self.xml.tag,"data":sub,"meta":self.meta}]
        else:
            if self.data is None:
                self.data = ''
            if compare_to is None:
                data = self.data
            else:
                print "diffing"
                el = compare_to.xml.find(".//{0}[@id='{1}']".format(self.xml.tag,self.identifier))
                if(el is not None):
                    original = self.__class__(el)
                    do = original.data
                    if do == None:
                        do = ""
                    ds = self.data
                    if ds == None:
                        ds = ""         
 
                    data = simplediff.html_diff(do,ds)
                else:
                    print "element not found"
                    data = simplediff.html_diff("",self.data)

            if prep:
                data = utils.prep_for_display(data)
            rt = [{"id":self.identifier,"tag":self.xml.tag,"data":data,"meta":self.meta}]
        
        return rt
Exemple #2
0
def zipem(texts,forms):
    try:
        assert len(texts) == len(forms)
    except:
        raise Exception("yep {0} != {1}".format(len(texts),len(forms)))
    rt = []
    for i in xrange(len(texts)):
        if not isinstance(texts[i]["data"],unicode) and not isinstance(texts[i]["data"],str): #it's a list
            data = zipem(texts[i]["data"],forms[i]["data"])
            texts[i].update({"data":data})
            rt.append(texts[i])
        else:
            texts[i].update({"form":utils.prep_for_display(forms[i]["data"])})
            texts[i]["data"] = utils.prep_for_display(texts[i]["data"])
            rt.append(texts[i])

    return rt