예제 #1
0
    def rss2(feed, pretty_print=True):
        indent = '\n    ' if pretty_print else ''
        indent2 = '\n      ' if pretty_print else ''

        rss = Element('rss', version='2.0')
        rss.text = '\n  ' if pretty_print else ''

        channel = SubElement(rss, 'channel')
        channel.text = indent
        channel.tail = '\n' if pretty_print else ''

        set_rss2_text(SubElement(channel, 'title'), feed.title)
        set_rss2_text(SubElement(channel, 'description'), feed.subtitle or '')
        SubElement(channel, 'link').text = feed.link
        SubElement(channel, 'lastBuildDate').text = rss2_date(feed.updated)
        if feed.language: SubElement(channel, 'language').text = feed.language
        if feed.rights: SubElement(channel, 'copyright').text = feed.rights
        if feed.logo:
            image = SubElement(channel, 'image')
            image.text = indent2
            SubElement(image, 'url').text = feed.logo
            SubElement(image, 'title').text = ''
            SubElement(image, 'link').text = feed.link
            for child in image: child.tail = indent2
            image[-1].tail = '\n    ' if pretty_print else ''

        for entry in feed.entries:
            item = entry.rss2(pretty_print)
            item[-1].tail = indent
            channel.append(item)

        for child in channel: child.tail = indent
        channel[-1].tail = '\n  ' if pretty_print else ''
        return rss
예제 #2
0
def account_to_xml(listing, account_name):
    doc = Element('account', name=account_name)
    doc.text = '\n'
    for record in listing:
        if 'subdir' in record:
            name = record.pop('subdir')
            sub = SubElement(doc, 'subdir', name=name)
        else:
            sub = SubElement(doc, 'container')
            for field in ('name', 'count', 'bytes', 'last_modified'):
                SubElement(sub, field).text = six.text_type(record.pop(field))
        sub.tail = '\n'
    return to_xml(doc)
예제 #3
0
 def _to_html_elementtree(self,tblattr=None,method=str):
   if tblattr is None:
     tblattr = {'border':'1'}
   from xml.etree.cElementTree import Element, SubElement, ElementTree
   out = Element('table',**tblattr)
   out.text = out.tail = '\n'
   headings = SubElement(out,'tr')
   headings.tail = '\n'
   for key in self.keys():
     heading = SubElement(headings,'th')
     heading.text=method(key)
   values = [export_string(value) for value in self.values()]
   cols = []
   for col in values:
     if col is None:
       col = [col]*len(self)
     cols.append(col)
   for rownum in range(len(self)):
     datarow = SubElement(out,'tr')
     datarow.tail = '\n'
     for col in cols:
       datacell = SubElement(datarow,'td')
       datacell.text = method(col[rownum])
   return ElementTree(out)
예제 #4
0
def account_to_xml(listing, account_name):
    doc = Element('account', name=account_name.decode('utf-8'))
    doc.text = '\n'
    for record in listing:
        if 'subdir' in record:
            name = record.pop('subdir')
            sub = SubElement(doc, 'subdir', name=name)
        else:
            sub = SubElement(doc, 'container')
            for field in ('name', 'count', 'bytes', 'last_modified'):
                SubElement(sub, field).text = six.text_type(record.pop(field))
        sub.tail = '\n'
    return tostring(doc, encoding='UTF-8').replace(
        "<?xml version='1.0' encoding='UTF-8'?>",
        '<?xml version="1.0" encoding="UTF-8"?>', 1)
예제 #5
0
def account_to_xml(listing, account_name):
    doc = Element('account', name=account_name.decode('utf-8'))
    doc.text = '\n'
    for record in listing:
        if 'subdir' in record:
            name = record.pop('subdir')
            sub = SubElement(doc, 'subdir', name=name)
        else:
            sub = SubElement(doc, 'container')
            for field in ('name', 'count', 'bytes', 'last_modified'):
                SubElement(sub, field).text = six.text_type(
                    record.pop(field))
        sub.tail = '\n'
    return tostring(doc, encoding='UTF-8').replace(
        "<?xml version='1.0' encoding='UTF-8'?>",
        '<?xml version="1.0" encoding="UTF-8"?>', 1)
예제 #6
0
 def _to_xml_elementtree(self,**kwargs):
   cfg = {
     'tbl_element':  'table',
     'row_element':  'row',
   }
   cfg.update(kwargs)
   from xml.etree.cElementTree import Element, SubElement, ElementTree
   out = Element(cfg['tbl_element'])
   out.text = out.tail = '\n'
   values = [export_string(value) for value in self.values()]
   cols = []
   for col in values:
     if col is None:
       col = [col]*len(self)
     cols.append(col)
   row_element = cfg['row_element']
   keys = self.keys()
   for rownum in range(len(self)):
     datarow = SubElement(out,row_element)
     datarow.tail = '\n'
     for key,col in zip(keys,cols):
       datacell = SubElement(datarow,key)
       datacell.text = str(col[rownum])
   return ElementTree(out)
    def rss2(feed, pretty_print=True):
        indent = '\n    ' if pretty_print else ''
        indent2 = '\n      ' if pretty_print else ''

        rss = Element('rss', version='2.0')
        rss.text = '\n  ' if pretty_print else ''

        channel = SubElement(rss, 'channel')
        channel.text = indent
        channel.tail = '\n' if pretty_print else ''

        set_rss2_text(SubElement(channel, 'title'), feed.title)
        set_rss2_text(SubElement(channel, 'description'), feed.subtitle or '')
        SubElement(channel, 'link').text = feed.link
        SubElement(channel, 'lastBuildDate').text = rss2_date(feed.updated)
        if feed.language: SubElement(channel, 'language').text = feed.language
        if feed.rights: SubElement(channel, 'copyright').text = feed.rights
        if feed.logo:
            image = SubElement(channel, 'image')
            image.text = indent2
            SubElement(image, 'url').text = feed.logo
            SubElement(image, 'title').text = ''
            SubElement(image, 'link').text = feed.link
            for child in image:
                child.tail = indent2
            image[-1].tail = '\n    ' if pretty_print else ''

        for entry in feed.entries:
            item = entry.rss2(pretty_print)
            item[-1].tail = indent
            channel.append(item)

        for child in channel:
            child.tail = indent
        channel[-1].tail = '\n  ' if pretty_print else ''
        return rss
예제 #8
0
파일: glyph.py 프로젝트: silnrsi/graide
 def createAP(self, elem, font, autoGdlFile) :
     e = SubElement(elem, 'glyph')
     if self.psname : e.set('PSName', self.psname)
     if self.uid : e.set('UID', self.uid)
     if self.gid is not None : e.set('GID', str(self.gid))
     ce = None
     if 'classes' in self.properties and self.properties['classes'].strip() :
         tempClasses = self.properties['classes']
         self.properties['classes'] = " ".join(font.filterAutoClasses(self.properties['classes'].split(), autoGdlFile))
         
     for k in sorted(self.anchors.keys()) :
         v = self.anchors[k]
         p = SubElement(e, 'point')
         p.set('type', gr_ap(k))
         p.text = "\n        "
         l = SubElement(p, 'location')
         l.set('x', str(v[0]))
         l.set('y', str(v[1]))
         l.tail = "\n    "
         if ce is not None : ce.tail = "\n    "
         ce = p
         
     for k in sorted(self.gdlProperties.keys()) :
         if k == "*skipPasses*" : continue  # not set in GDL
             
         v = self.gdlProperties[k]
         if v :
             p = SubElement(e, 'property')
             p.set('name', 'GDL_' + k)
             p.set('value', v)
             if ce is not None : ce.tail = "\n    "
             ce = p
             
     if self.gdl and (not self.name or self.gdl != self.name.GDL()) :
         p = SubElement(e, 'property')
         p.set('name', 'GDLName')
         p.set('value', self.GDLName())
         if ce is not None : ce.tail = "\n    "
         ce = p
         
     for k in sorted(self.properties.keys()) :
         v = self.properties[k]
         if v :
             p = SubElement(e, 'property')
             p.set('name', k)
             p.set('value', v)
             if ce is not None : ce.tail = "\n    "
             ce = p
             
     if self.comment :
         p = SubElement(e, 'note')
         p.text = self.comment
         if ce is not None : ce.tail = "\n    "
         ce = p
         
     if 'classes' in self.properties and self.properties['classes'].strip() :
         self.properties['classes'] = tempClasses
     if ce is not None :
         ce.tail = "\n"
         e.text = "\n    "
     e.tail = "\n"
     return e
예제 #9
0
    def createAP(self, elem, font, autoGdlFile):
        e = SubElement(elem, 'glyph')
        if self.psname: e.set('PSName', self.psname)
        if self.uid: e.set('UID', self.uid)
        if self.gid is not None: e.set('GID', str(self.gid))
        ce = None
        if 'classes' in self.properties and self.properties['classes'].strip():
            tempClasses = self.properties['classes']
            self.properties['classes'] = " ".join(
                font.filterAutoClasses(self.properties['classes'].split(),
                                       autoGdlFile))

        for k in sorted(self.anchors.keys()):
            v = self.anchors[k]
            p = SubElement(e, 'point')
            p.set('type', gr_ap(k))
            p.text = "\n        "
            l = SubElement(p, 'location')
            l.set('x', str(v[0]))
            l.set('y', str(v[1]))
            l.tail = "\n    "
            if ce is not None: ce.tail = "\n    "
            ce = p

        for k in sorted(self.gdlProperties.keys()):
            if k == "*skipPasses*": continue  # not set in GDL

            v = self.gdlProperties[k]
            if v:
                p = SubElement(e, 'property')
                p.set('name', 'GDL_' + k)
                p.set('value', v)
                if ce is not None: ce.tail = "\n    "
                ce = p

        if self.gdl and (not self.name or self.gdl != self.name.GDL()):
            p = SubElement(e, 'property')
            p.set('name', 'GDLName')
            p.set('value', self.GDLName())
            if ce is not None: ce.tail = "\n    "
            ce = p

        for k in sorted(self.properties.keys()):
            v = self.properties[k]
            if v:
                p = SubElement(e, 'property')
                p.set('name', k)
                p.set('value', v)
                if ce is not None: ce.tail = "\n    "
                ce = p

        if self.comment:
            p = SubElement(e, 'note')
            p.text = self.comment
            if ce is not None: ce.tail = "\n    "
            ce = p

        if 'classes' in self.properties and self.properties['classes'].strip():
            self.properties['classes'] = tempClasses
        if ce is not None:
            ce.tail = "\n"
            e.text = "\n    "
        e.tail = "\n"
        return e