def open_selected_item(self): """ displays the currently selected item in the item view window """ selected_item = self.get_item_by_id(self.get_selected_item_id()) if not selected_item: return log.debug('Content: %s'%ET.tostring(selected_item.content)) entry = atom_parser.parse_atom_entry(selected_item.content) if not entry: self.item_viewer._text = str(ET.tostring(selected_item.content)) else: self.item_viewer._text = \ """\x193Title:\x19o %(title)s \x193Author:\x19o %(author_name)s (%(author_uri)s) %(dates)s\x193Link:\x19o %(link)s \x193Summary:\x19o %(summary)s """ % {'title': entry.get('title') or '', 'author_name': entry['author'].get('name') or '', 'author_uri': entry['author'].get('uri') or '', 'link': entry.get('link_href') or '', 'summary': entry.get('summary') or '', 'dates': '\x193Published:\x19o %(published)s\n%(updated)s' % {'published':entry.get('published') or '', 'updated': '' if (entry.get('updated') is None) or (entry.get('published') == entry.get('updated')) else '\x193Published:\x19o %s\n' % entry.get('updated')} } self.item_viewer.rebuild_text() return True
def _handle_battery_info(self, iq): try: self.battery_status = float(iq['power']) / 100 logging.debug("*** battery_status = {:.0%}".format( self.battery_status)) except ValueError: logging.warning("couldn't parse battery status " + ET.tostring(iq))
def _handle_battery_info(self, iq): try: self.battery_status = float(iq['power']) / 100 except ValueError: _LOGGER.warning("couldn't parse battery status " + ET.tostring(iq)) else: self.batteryEvents.notify(self.battery_status) _LOGGER.debug("*** battery_status = {:.0%}".format(self.battery_status))
def handle_battery_report(self, iq): try: battery_status = float( iq.find('{com:ctl}query/{com:ctl}ctl/{com:ctl}battery').get( 'power')) / 100 logging.debug("*** battery_status = {:.0%}".format(battery_status)) self.battery_status = battery_status self.on_state_change() except ValueError: logging.warning("couldn't parse battery status " + ET.tostring(iq))
def get_xhtml(self, element=True): xhtml = ET.XML(markdown_to_xhtml(self.text)) if self.font: span = ET.Element('span') span.set('style', 'font-family: ' + self.font + ';') span.append(xhtml) xhtml = span if element: return xhtml return ET.tostring(xhtml)
def get_xhtml(self, element=True): lines = self.text.split('\n') xhtml = ET.Element('span') if self.font: xhtml.set('style', 'font-family: ' + self.font + ';') for subline in lines[:-1]: p = ET.SubElement(xhtml, 'p') p.text = subline ET.SubElement(xhtml, 'br') p = ET.SubElement(xhtml, 'p') p.text = lines[-1] if element: return xhtml return ET.tostring(xhtml)
def publish(self, event, radius): from events.api.resources.jabber import EventResource resource = EventResource() event_dict = resource.full_dehydrate(resource.build_bundle(obj=event)) event_dict.data['radius'] = radius str_payload = resource.serialize(None, event_dict, 'application/xml') payload = ET.fromstring(str_payload) if logger.level is logging.DEBUG: lxml_payload = etree.fromstring(ET.tostring(payload)) str_payload = etree.tostring(lxml_payload, pretty_print=True) logger.debug('sending publish message with payload:\n%s', str_payload) self._pubsub.publish(self.config.pubsub_server, self.config.node_name, payload=payload)
def set_body(self, content, lang=None): if lang is None: lang = self.get_lang() self.del_body(lang) if lang == '*': for sublang, subcontent in content.items(): self.set_body(subcontent, sublang) else: if isinstance(content, type(ET.Element('test'))): content = ET.tostring(content) else: content = str(content) header = '<body xmlns="%s"' % XHTML_NS if lang: header = '%s xml:lang="%s"' % (header, lang) content = '%s>%s</body>' % (header, content) xhtml = ET.fromstring(content) self.xml.append(xhtml)
def set_body(self, content, lang=None): if lang is None: lang = self.get_lang() self.del_body(lang) if lang == '*': for sublang, subcontent in content.items(): self.set_body(subcontent, sublang) else: if isinstance(content, type(ET.Element('test'))): content = unicode(ET.tostring(content)) else: content = unicode(content) header = '<body xmlns="%s"' % XHTML_NS if lang: header = '%s xml:lang="%s"' % (header, lang) content = '%s>%s</body>' % (header, content) xhtml = ET.fromstring(content) self.xml.append(xhtml)
def assertXMLEqual(a, b): """ Asserts that both xmls should be syntactically valid and equal. Prints human-readable xml on `AssertionError`. """ args = [a, b] parser = etree.XMLParser(remove_blank_text=True) for i, _ in enumerate(args): if isinstance(args[i], basestring): args[i] = etree.XML(args[i], parser=parser) elif isinstance(args[i], etree._Element): pass else: args[i] = etree.fromstring(ET.tostring(args[i])) args[i] = etree.tostring(args[i], pretty_print=True) assert_message = ('XMLs are not equal:\n' '{2}\n{0}{2}\n{1}' .format(args[0], args[1], '-' * 70)) assert (args[0] == args[1]), assert_message
def payload_string(self): return ET.tostring(self.payload)