Example #1
0
 def __init__(self, apt_id, uri, dist, sections, local_path):
     Element.__init__(self, 'aptsource')
     self.setAttribute('apt_id', apt_id)
     self.setAttribute('uri', uri)
     self.setAttribute('dist', dist)
     self.setAttribute('sections', sections)
     self.setAttribute('local_path', local_path)
Example #2
0
 def xml_encode(self, text):
     from xml.dom.minidom import Text, Element
     t = Text()
     t.data = text
     e = Element('x')
     e.appendChild(t)
     return e.toxml()[3:-4]
Example #3
0
 def __init__(self, name, subtag_name, data, name_att='name'):
     Element.__init__(self, name)
     self.__data_dict__  = {}
     for key, value in data.items():
         self.__data_dict__[key] = TextElement(subtag_name, value)
         self.__data_dict__[key].setAttribute('name', key)
         self.appendChild(self.__data_dict__[key])
Example #4
0
    def get(self, *args):
        self.response.headers['Content-Type'] = "application/rss+xml"

        items = self.getItems(*args)

        itemElems = []
        for item in items:
            itemElem = Element("item")
            self._appendElementWithTextNode(itemElem, "title", item.title)
            self._appendElementWithTextNode(itemElem, "link", item.link)
            self._appendElementWithTextNode(itemElem, "description", item.description)
            self._appendElementWithTextNode(itemElem, "guid", item.link)
            if item.subPlaceFeedLink:
                self._appendElementWithTextNode(itemElem, "sharkattackdata:subPlaceFeedLink", item.subPlaceFeedLink)
            if item.attackFeedLink:
                self._appendElementWithTextNode(itemElem, "sharkattackdata:attackFeedLink", item.attackFeedLink)

            itemElems.append(itemElem)

        # Need to make channel element after the generator returned by getItems has been iterated.
        channelElem = Element("channel")
        self._appendElementWithTextNode(channelElem, "title", self._feedTitle)
        self._appendElementWithTextNode(channelElem, "link", self._feedLink)
        self._appendElementWithTextNode(channelElem, "description", self._feedDescription)

        for itemElem in itemElems:
            channelElem.appendChild(itemElem)

        responseText = """<?xml version="1.0"?>
<rss version="2.0" xmlns:sharkattackdata="http://sharkattackdata.com/rss/modules/1.0/">
%s
</rss>
""" % (channelElem.toprettyxml())
        self.response.out.write(responseText)
Example #5
0
 def __init__(self, conn, machines=None):
     raise RuntimeError , "ClientMachineDatabaseElement isn't working"
     Element.__init__(self, 'machine_database')
     self.conn = conn
     if machines is not None:
         self.machines = MachinesElement(conn, machines)
         self.appendChild(self.machines)
Example #6
0
 def __init__(self, name):
     Element.__init__(self, 'family')
     self.setAttribute('name', name)
     self.parents = Element('parents')
     self.environ = Element('environ')
     self.appendChild(self.parents)
     self.appendChild(self.environ)
Example #7
0
 def __init__(self, name, localpath, paramvalues=[],
              responsedestination=None):
     Element.__init__(self, 'METHODCALL')
     self.setName(name)
     self.appendChild(localpath)
     self.appendChildren(paramvalues)
     self.appendOptionalChild(responsedestination)
Example #8
0
    def __init__(
        self,
        name,
        type,
        value_array=None,
        array_size=None,
        class_origin=None,
        propagated=None,
        qualifiers=[],
        xml_lang=None,
        embedded_object=None,
    ):

        Element.__init__(self, "PROPERTY.ARRAY")

        self.setName(name)
        self.setAttribute("TYPE", type)

        if array_size is not None:
            self.setAttribute("ARRAYSIZE", str(array_size))
        self.setOptionalAttribute("CLASSORIGIN", class_origin)
        self.setOptionalAttribute("EmbeddedObject", embedded_object)

        if propagated is not None:
            self.setAttribute("PROPAGATED", str(propagated).lower())

        self.setOptionalAttribute("xml:lang", xml_lang)

        self.appendChildren(qualifiers)
        self.appendOptionalChild(value_array)
Example #9
0
 def __init__(self, name, type, array_size=None, qualifiers=[]):
     Element.__init__(self, "PARAMETER.ARRAY")
     self.setName(name)
     self.setAttribute("TYPE", type)
     if array_size is not None:
         self.setAttribute("ARRAYSIZE", str(array_size))
     self.appendChildren(qualifiers)
Example #10
0
 def __init__(self, name, reference_class=None, array_size=None, qualifiers=[]):
     Element.__init__(self, "PARAMETER.REFARRAY")
     self.setName(name)
     self.setOptionalAttribute("REFERENCECLASS", reference_class)
     if array_size is not None:
         self.setAttribute("ARRAYSIZE", str(array_size))
     self.appendChildren(qualifiers)
Example #11
0
    def __init__(self, ownerDocument, name=""):
        Element.__init__(self, TAG_CATEGORY)
        self.name = name
        self.ownerDocument = ownerDocument
        self._items = []

        self.setAttribute("name", self.name)
Example #12
0
    def __init__(
        self,
        name,
        type,
        value=None,
        propagated=None,
        overridable=None,
        tosubclass=None,
        toinstance=None,
        translatable=None,
        xml_lang=None,
    ):

        Element.__init__(self, "QUALIFIER")

        self.setName(name)
        self.setAttribute("TYPE", type)

        if propagated is not None:
            self.setAttribute("PROPAGATED", str(propagated).lower())

        if overridable is not None:
            self.setAttribute("OVERRIDABLE", str(overridable).lower())
        if tosubclass is not None:
            self.setAttribute("TOSUBCLASS", str(tosubclass).lower())
        if toinstance is not None:
            self.setAttribute("TOINSTANCE", str(toinstance).lower())
        if translatable is not None:
            self.setAttribute("TRANSLATABLE", str(translatable).lower())

        self.setOptionalAttribute("xml:lang", xml_lang)

        self.appendOptionalChild(value)
Example #13
0
    def __init__(self, name, type, value, is_array=None,
                 array_size=None, qualifier_scopes={},
                 overridable=None, tosubclass=None,
                 toinstance=None, translatable=None):

        Element.__init__(self, 'QUALIFIER.DECLARATION')
        self.setName(name)
        self.setAttribute('TYPE', type)
        if is_array is not None:
            self.setOptionalAttribute('ISARRAY', str(is_array).lower())
        if array_size is not None:
            self.setAttribute('ARRAYSIZE', str(array_size))
        if overridable is not None:
            self.setAttribute('OVERRIDABLE', str(overridable).lower())
        if tosubclass is not None:
            self.setAttribute('TOSUBCLASS', str(tosubclass).lower())
        if toinstance is not None:
            self.setAttribute('TOINSTANCE', str(toinstance).lower())
        if translatable is not None:
            self.setAttribute('TRANSLATABLE', str(translatable).lower())

        if qualifier_scopes:
            scope = SCOPE(qualifier_scopes)
            self.appendOptionalChild(scope)
        if value is not None:
            if is_array:
                xval = VALUE_ARRAY(value)
            else:
                xval = VALUE(value)
            self.appendOptionalChild(xval)
Example #14
0
 def __init__(self, suite, nonus=False, updates=False, local=False, common=False):
     Element.__init__(self, 'suite')
     self.setAttribute('name', suite)
     self.setAttribute('nonus', nonus)
     self.setAttribute('updates', updates)
     self.setAttribute('local', local)
     self.setAttribute('common', common)
def _add_lang_to_html(htmltext, lang):
    '''
    Take a piece of HTML and add an xml:lang attribute to it.
    '''
    if lang == 'und':
        return htmltext
    parser = html5lib.HTMLParser(
        tree=html5lib.treebuilders.getTreeBuilder("dom")
    )
    html = parser.parseFragment(htmltext)
    html.normalize()
    if len(html.childNodes) == 0:
        return '<div xml:lang="%s"></div>' % lang
    elif len(html.childNodes) == 1:
        node = html.firstChild
        if node.nodeType == Node.TEXT_NODE:
            div = Element('div')
            div.ownerDocument = html
            div.setAttribute('xml:lang', lang)
            div.childNodes = [node]
            html.childNodes = [div]
        else:
            node.setAttribute('xml:lang', lang)
    else:
        #add a single encompassing div
        div = Element('div')
        div.ownerDocument = html
        div.setAttribute('xml:lang', lang)
        div.childNodes = html.childNodes
        html.childNodes = [div]
    return html.toxml()
Example #16
0
 def __init__(self, conn, path='/'):
     Element.__init__(self, 'paelladatabase')
     self.conn = conn
     self.stmt = StatementCursor(self.conn)
     self._profile_traits_ = ProfileTrait(self.conn)
     self.path = path
     self.aptsources = AptSourceListElement()
     self.appendChild(self.aptsources)
     if 'apt_sources' in self.stmt.tables():
         for row in self.stmt.select(table='apt_sources', order=['apt_id']):
             element = AptSourceElement(row.apt_id, row.uri, row.dist, row.sections,
                                        row.local_path)
             self.aptsources.appendChild(element)
         self.suites = SuitesElement()
         self.appendChild(self.suites)
         for row in self._suite_rows():
             args = map(str, [row.suite, row.nonus, row.updates, row.local, row.common])
             element = SuiteElement(*args)
             for suiteapt in self.stmt.select(table='suite_apt_sources', order=['ord'],
                                              clause=Eq('suite', row.suite)):
                 element.appendChild(SuiteAptElement(row.suite,
                                                     suiteapt.apt_id, str(suiteapt.ord)))
             self.suites.appendChild(element)
     else:
         print 'WARNING, apt_sources table does not exist, backing up anyway'
     self.profiles = PaellaProfiles(self.conn)
     self.family = Family(self.conn)
     suites = [x.suite for x in self._suite_rows()]
     for suite in suites:
         self.appendChild(TraitsElement(self.conn, suite))
Example #17
0
 def __init__(self, suite, nonus=False, updates=False, local=False, common=False):
     Element.__init__(self, "suite")
     self.setAttribute("name", suite)
     self.setAttribute("nonus", nonus)
     self.setAttribute("updates", updates)
     self.setAttribute("local", local)
     self.setAttribute("common", common)
Example #18
0
 def __init__(self, name, data=None, paramtype=None,
              embedded_object=None):
     Element.__init__(self, 'PARAMVALUE')
     self.setName(name)
     self.setOptionalAttribute('PARAMTYPE', paramtype)
     self.setOptionalAttribute('EmbeddedObject', embedded_object)
     self.appendOptionalChild(data)
Example #19
0
 def __init__(self, mnt_name, mnt_point, fstype, mnt_opts, dump, pass_):
     Element.__init__(self, "mount")
     self.setAttribute("mnt_name", mnt_name)
     self.setAttribute("mnt_point", mnt_point)
     self.setAttribute("fstype", fstype)
     self.setAttribute("mnt_opts", mnt_opts)
     self.setAttribute("dump", dump)
     self.setAttribute("pass", pass_)
Example #20
0
 def __init__(self, name, suite):
     Element.__init__(self, "profile")
     self.setAttribute("name", name)
     self.setAttribute("suite", suite)
     self.traits = Element("traits")
     self.appendChild(self.traits)
     self.environ = Element("environ")
     self.appendChild(self.environ)
Example #21
0
def node2xml(node):
    """Takes in a node object and returns an XML object for that node"""
    ele = Element("node")
    for k, v in node.attrs.items():
        ele.setAttribute(k, v)
    for k, v in node.tags.items():
        ele.appendChild(tag2xml(k, v))
    return ele
Example #22
0
 def set_scripts(self):
     self.scripts = [x.script for x in self.traitscripts.scripts(self.name)]
     while self.scripts_element.hasChildNodes():
         del self.scripts_element.childNodes[0]
     for script in self.scripts:
         element = Element('script')
         element.setAttribute('name', script)
         self.scripts_element.appendChild(element)
Example #23
0
 def _getElementForMappingEntry(entry, mappingStyle):
     e = Element(mappingStyle)
     for k, v in entry.items():
         # ignore empty, None or compiled regexp items into output
         if not v or (k == "path-match-expr"):
             continue
         e.setAttribute(k, str(v))
     return e
Example #24
0
 def __init__(self, classname, data):
     Element.__init__(self, "INSTANCENAME")
     self.setAttribute("CLASSNAME", classname)
     if data is not None:
         if type(data) == list:
             self.appendChildren(data)
         else:
             self.appendChild(data)
Example #25
0
 def __init__(self):
     Element.__init__(self, 'paelladatabase')
     self.aptsources = AptSourceListElement()
     self.appendChild(self.aptsources)
     self.suites_element = SuitesElement()
     self.suites = {}
     self.suite_traits = {}
     self.appendChild(self.suites_element)
Example #26
0
    def __init__(self, conn):
        Element.__init__(self, 'machine_database')
        self.conn = conn
        self.kernels = KernelsElement(conn)
        self.machines = MachineListElement(conn)

        for e in [self.machines, self.kernels]:
            self.appendChild(e)
Example #27
0
 def __init__(self, name, data=None):
     Element.__init__(self, "METHODRESPONSE")
     self.setName(name)
     if data is not None:
         if type(data) == tuple or type(data) == list:
             self.appendChildren(data)
         else:
             self.appendChild(data)
Example #28
0
 def __init__(self, name, rows, key=False):
     Element.__init__(self, name)
     for row in rows:
         if key:
             rowdata = PkRowElement(row[key], row)
         else:
             rowdata = RowElement(row)
         self.appendChild(rowdata)
Example #29
0
 def __init__(self, conn):
     Element.__init__(self, 'profiles')
     self.conn = conn
     self.stmt = StatementCursor(self.conn)
     self.env = ProfileEnvironment(self.conn)
     self.profiletraits = ProfileTrait(self.conn)
     self._profiles = {}
     for row in self.stmt.select(table='profiles', order='profile'):
         self._append_profile(row.profile, row.suite)
Example #30
0
 def __init__(self, conn):
     Element.__init__(self, "mounts")
     self.conn = conn
     self.cursor = StatementCursor(self.conn)
     self.cursor.set_table("mounts")
     self.mounts = []
     rows = self.cursor.select(order="mnt_name")
     for r in rows:
         self.append_mount(r.mnt_name, r.mnt_point, r.fstype, r.mnt_opts, r.dump, r["pass"])
Example #31
0
    def value_from_xml_element(self, xml: minidom.Element, registry: ObjectRegistry):
        if xml.tagName != self.tag_name:
            raise ValueError("Wrong value type (%s instead of %s)" % (xml.tagName, self.tag_name))

        guid = xml.getAttribute("guid")
        if guid and guid in registry.registry:
            value = registry.registry[guid]
        elif self.typename == "vector":
            value = NVector(
                float(xml_text(xml.getElementsByTagName("x")[0])),
                float(xml_text(xml.getElementsByTagName("y")[0]))
            )
            if xml.getAttribute("guid"):
                value.guid = xml.getAttribute("guid")
                registry.register(value)
        elif self.typename == "color":
            value = NVector(
                float(xml_text(xml.getElementsByTagName("r")[0])),
                float(xml_text(xml.getElementsByTagName("g")[0])),
                float(xml_text(xml.getElementsByTagName("b")[0])),
                float(xml_text(xml.getElementsByTagName("a")[0]))
            )
        elif self.typename == "gradient":
            value = [
                GradientPoint.from_dom(sub, registry)
                for sub in xml_child_elements(xml, GradientPoint.type.typename)
            ]
        elif self.typename == "real" or self.typename == "angle":
            value = float(xml.getAttribute("value"))
        elif self.typename == "integer":
            value = int(xml.getAttribute("value"))
        elif self.typename == "time":
            value = FrameTime.parse_string(xml.getAttribute("value"), registry)
        elif self.typename == "bool":
            value = str_to_bool(xml.getAttribute("value"))
        elif self.typename == "string":
            return xml_text(xml)
        elif self.typename == "bone_object":
            # Already done above but this forces the guid to be present
            return registry.get_object(xml.getAttribute("guid"))
        else:
            raise ValueError("Unsupported type %s" % self.typename)

        return self.type_wrapper(value)
Example #32
0
    def test_head(self):
        """
        L{LatexSpitter.visitNode} writes out author information for each
        I{link} element with a I{rel} attribute set to I{author}.
        """
        head = Element('head')
        first = Element('link')
        first.setAttribute('rel', 'author')
        first.setAttribute('title', 'alice')
        second = Element('link')
        second.setAttribute('rel', 'author')
        second.setAttribute('href', 'http://example.com/bob')
        third = Element('link')
        third.setAttribute('rel', 'author')
        third.setAttribute('href', 'mailto:[email protected]')
        head.appendChild(first)
        head.appendChild(second)
        head.appendChild(third)

        self.spitter.visitNode(head)

        self.assertEqual(
            ''.join(self.output),
            '\\author{alice \\and $<$http://example.com/bob$>$ \\and $<[email protected]$>$}')
Example #33
0
    def toXml(self):
        xml = Element("ChapterAtom")

        subtag = Element("ChapterUID")
        text = Text()
        text.data = str(self.UID)
        subtag.appendChild(text)
        xml.appendChild(subtag)

        if self.timeStart is not None:
            subtag = Element("ChapterTimeStart")
            text = Text()

            m, ms = divmod(self.timeStart, 60 * 10**9)
            s1 = ms / 10**9
            h1, m1 = divmod(m, 60)

            text.data = f"{h1}:{m1:02d}:{s1:012.9f}"
            subtag.appendChild(text)
            xml.appendChild(subtag)

        if self.timeEnd is not None:
            subtag = Element("ChapterTimeEnd")
            text = Text()

            m, ms = divmod(self.timeEnd, 60 * 10**9)
            s1 = ms / 10**9
            h1, m1 = divmod(m, 60)

            text.data = f"{h1}:{m1:02d}:{s1:012.9f}"
            subtag.appendChild(text)
            xml.appendChild(subtag)

        subtag = Element("ChapterFlagHidden")
        text = Text()
        text.data = str(int(bool(self.hidden)))
        subtag.appendChild(text)
        xml.appendChild(subtag)

        subtag = Element("ChapterFlagEnabled")
        text = Text()
        text.data = str(int(bool(self.enabled)))
        subtag.appendChild(text)
        xml.appendChild(subtag)

        # TODO

        if self.segmentUID is not None:
            pass

        if self.segmentEditionUID is not None:
            pass

        if self.tracks is not None:
            pass

        for display in self.displays:
            xml.appendChild(display.toXml())

        return xml
Example #34
0
 def __init__(self, suite):
     Element.__init__(self, 'traits')
     self.suite = suite
     self.setAttribute('suite', self.suite)
Example #35
0
 def __init__(self, tag):
     Element.__init__(self, tag)
Example #36
0
class TraitElement(Element):
    def __init__(self, conn, suite):
        self.conn = conn
        self.cursor = StatementCursor(self.conn, name='_Trait_')
        Element.__init__(self, 'trait')
        self.desc_element = TextElement('description', None)
        self.parent_element = Element('parents')
        self.pkg_element = Element('packages')
        self.env_element = Element('environ')
        self.templ_element = Element('templates')
        self.scripts_element = Element('scripts')
        self.appendChild(self.desc_element)
        self.appendChild(self.parent_element)
        self.appendChild(self.pkg_element)
        self.appendChild(self.env_element)
        self.appendChild(self.templ_element)
        self.appendChild(self.scripts_element)
        self.set_suite(suite)

    def set_suite(self, suite):
        self.suite = suite
        # will probably make this a configuration option later
        # turning it off for now.
        if False:
            self.setAttribute('suite', self.suite)
        self.traitparent = TraitParent(self.conn, self.suite)
        self.traitpackage = TraitPackage(self.conn, self.suite)
        self.traittemplate = TraitTemplate(self.conn, self.suite)
        self.traitscripts = TraitScript(self.conn, self.suite)

    def set_environ(self):
        self.environ = TraitEnvironment(self.conn, self.suite, self.name)
        while self.env_element.hasChildNodes():
            del self.env_element.childNodes[0]
        for key, value in self.environ.items():
            var_element = TraitVariableElement(self.name, key, value)
            self.env_element.appendChild(var_element)

    def set_parents(self):
        self.parents = self.traitparent.parents(self.name)
        while self.parent_element.hasChildNodes():
            del self.parent_element.childNodes[0]
        for parent in self.parents:
            self.parent_element.appendChild(ParentElement(parent.parent))

    def set_packages(self):
        self.packages = self.traitpackage.packages([self.name])
        while self.pkg_element.hasChildNodes():
            del self.pkg_element.childNodes[0]
        for package in self.packages:
            pelement = PackageElement(package.package)
            pelement.setAttribute('action', package.action)
            self.pkg_element.appendChild(pelement)

    def set_templates(self):
        self.templates = self.traittemplate.templates(self.name)
        while self.templ_element.hasChildNodes():
            del self.templ_element.childNodes[0]
        for template in self.templates:
            element = TemplateElement(template.template)
            for att in ['mode', 'owner', 'grp_owner']:
                element.setAttribute(att, template[att])
            self.templ_element.appendChild(element)

    def set_scripts(self):
        self.scripts = [x.script for x in self.traitscripts.scripts(self.name)]
        while self.scripts_element.hasChildNodes():
            del self.scripts_element.childNodes[0]
        for script in self.scripts:
            element = Element('script')
            element.setAttribute('name', script)
            self.scripts_element.appendChild(element)

    def set_name(self, name):
        self.name = name
        self.setAttribute('name', self.name)

    def set_priority(self, priority):
        self.priority = priority
        self.setAttribute('priority', self.priority)

    def set(self, name):
        self.set_name(name)
        # this is probably not needed here, and slows things down
        # considerably
        #self.set_suite(self.suite)
        self.set_environ()
        self.set_parents()
        self.set_packages()
        self.set_templates()
        self.set_scripts()

    def str(self):
        print self.toprettyxml()
Example #37
0
    def add_register(self, parent: minidom.Element, node: RegNode) -> None:
        register = self.doc.createElement(self.ns + "register")
        parent.appendChild(register)

        self.add_nameGroup(register, self.get_name(node),
                           node.get_property("name", default=None),
                           node.get_property("desc"))

        if (self.standard >= Standard.IEEE_1685_2014
            ) and not node.get_property("ispresent"):
            self.add_value(register, self.ns + "isPresent", "0")

        if node.is_array:
            if node.array_stride != (node.get_property("regwidth") / 8):
                self.msg.fatal(
                    "IP-XACT does not support register arrays whose stride is larger then the register's size",
                    node.inst.inst_src_ref)
            for dim in node.array_dimensions:
                self.add_value(register, self.ns + "dim", "%d" % dim)

        self.add_value(register, self.ns + "addressOffset",
                       self.hex_str(self.get_reg_addr_offset(node)))

        # DNE: <spirit/ipxact:typeIdentifier>

        self.add_value(register, self.ns + "size",
                       "%d" % node.get_property("regwidth"))

        if self._max_width is None:
            self._max_width = node.get_property("regwidth")
        else:
            self._max_width = max(node.get_property("regwidth"),
                                  self._max_width)

        # DNE: <spirit/ipxact:volatile>
        # DNE: <spirit/ipxact:access>

        if self.standard <= Standard.IEEE_1685_2009:
            reset = 0
            mask = 0
            for field in node.fields(skip_not_present=False):
                field_reset = field.get_property("reset")
                if field_reset is not None:
                    field_mask = ((1 << field.width) - 1) << field.lsb
                    field_reset = (field_reset << field.lsb) & field_mask
                    reset |= field_reset
                    mask |= field_mask

            if mask != 0:
                reset_el = self.doc.createElement(self.ns + "reset")
                register.appendChild(reset_el)
                self.add_value(reset_el, self.ns + "value",
                               self.hex_str(reset))
                self.add_value(reset_el, self.ns + "mask", self.hex_str(mask))

        for field in node.fields(skip_not_present=False):
            self.add_field(register, field)

        # DNE: <spirit/ipxact:alternateRegisters> [...]
        # DNE: <spirit/ipxact:parameters>

        vendorExtensions = self.doc.createElement(self.ns + "vendorExtensions")
        self.register_vendorExtensions(vendorExtensions, node)
        if vendorExtensions.hasChildNodes():
            register.appendChild(vendorExtensions)
Example #38
0
 def __init__(self, name):
     Element.__init__(self, 'script')
     self.setAttribute('name', name)
Example #39
0
 def _create_failure_or_error(self, document, test, element_type):
     element = Element(element_type)
     element.setAttribute('type', self._get_attr(test, 'fail_class'))
     element.setAttribute('message', self._get_attr(test, 'fail_reason'))
     traceback_content = self._escape_cdata(
         test.get('traceback', self.UNKNOWN))
     traceback = document.createCDATASection(traceback_content)
     element.appendChild(traceback)
     system_out = Element('system-out')
     try:
         with open(test.get("logfile"), "r") as logfile_obj:
             text_output = logfile_obj.read()
     except (TypeError, IOError):
         text_output = self.UNKNOWN
     system_out_cdata_content = self._escape_cdata(text_output)
     system_out_cdata = document.createCDATASection(
         system_out_cdata_content)
     system_out.appendChild(system_out_cdata)
     element.appendChild(system_out)
     return element
Example #40
0
 def __init__(self, partition, start, size, id):
     Element.__init__(self, 'partition')
     self.setAttribute('partition', partition)
     self.setAttribute('start', start)
     self.setAttribute('size', size)
     self.setAttribute('Id', id)
Example #41
0
 def __init__(self, name):
     Element.__init__(self, 'machine_type')
     self.setAttribute('name', name)
     self.devices = []
     self.modules = []
     self.machine_type = name
Example #42
0
 def from_dom(cls, xml: minidom.Element, registry: ObjectRegistry):
     return GradientPoint(
         value_from_xml_string(xml.getAttribute("pos"), float, registry),
         cls.type.value_from_xml_element(xml, registry)
     )
 def setAttribute(self, attname, value):
     if not attname in self.attOrder:
         self.attOrder += [attname]
     Element.setAttribute(self, attname, value)
Example #44
0
    def get_mobjects_from(
        self,
        element: MinidomElement,
        inherited_style: Dict[str, str],
        within_defs: bool = False,
    ) -> List[VMobject]:
        """Parses a given SVG element into a Mobject.

        Parameters
        ----------
        element : :class:`Element`
            The SVG data in the XML to be parsed.

        inherited_style : :class:`dict`
            Dictionary of the SVG attributes for children to inherit.

        within_defs : :class:`bool`
            Whether ``element`` is within a ``defs`` element, which indicates
            whether elements with `id` attributes should be added to the
            definitions list.

        Returns
        -------
        List[VMobject]
            A VMobject representing the associated SVG element.
        """

        result = []
        # First, let all non-elements pass (like text entries)
        if not isinstance(element, MinidomElement):
            return result

        style = cascade_element_style(element, inherited_style)
        is_defs = element.tagName == "defs"

        if element.tagName == "style":
            pass  # TODO, handle style
        elif element.tagName in ["g", "svg", "symbol", "defs"]:
            result += it.chain(*[
                self.get_mobjects_from(
                    child, style, within_defs=within_defs or is_defs)
                for child in element.childNodes
            ])
        elif element.tagName == "path":
            temp = element.getAttribute("d")
            if temp != "":
                result.append(self.path_string_to_mobject(temp, style))
        elif element.tagName == "use":
            # note, style is calcuated in a different way for `use` elements.
            result += self.use_to_mobjects(element, style)
        elif element.tagName == "rect":
            result.append(self.rect_to_mobject(element, style))
        elif element.tagName == "circle":
            result.append(self.circle_to_mobject(element, style))
        elif element.tagName == "ellipse":
            result.append(self.ellipse_to_mobject(element, style))
        elif element.tagName in ["polygon", "polyline"]:
            result.append(self.polygon_to_mobject(element, style))
        else:
            pass  # TODO

        result = [m for m in result if m is not None]
        self.handle_transforms(element, VGroup(*result))
        if len(result) > 1 and not self.unpack_groups:
            result = [VGroup(*result)]

        if within_defs and element.hasAttribute("id"):
            # it seems wasteful to throw away the actual element,
            # but I'd like the parsing to be as similar as possible
            self.def_map[element.getAttribute("id")] = (style, element)
        if is_defs:
            # defs shouldn't be part of the result tree, only the id dictionary.
            return []

        return result
Example #45
0
    def add_field(self, parent: minidom.Element, node: FieldNode) -> None:
        field = self.doc.createElement(self.ns + "field")
        parent.appendChild(field)

        self.add_nameGroup(field, self.get_name(node),
                           node.get_property("name", default=None),
                           node.get_property("desc"))

        if (self.standard >= Standard.IEEE_1685_2014
            ) and not node.get_property("ispresent"):
            self.add_value(field, self.ns + "isPresent", "0")

        self.add_value(field, self.ns + "bitOffset", "%d" % node.low)

        if self.standard >= Standard.IEEE_1685_2014:
            reset = node.get_property("reset")
            if reset is not None:
                resets_el = self.doc.createElement(self.ns + "resets")
                field.appendChild(resets_el)
                reset_el = self.doc.createElement(self.ns + "reset")
                resets_el.appendChild(reset_el)
                self.add_value(reset_el, self.ns + "value",
                               self.hex_str(reset))

        # DNE: <spirit/ipxact:typeIdentifier>

        self.add_value(field, self.ns + "bitWidth", "%d" % node.width)

        if node.is_volatile:
            self.add_value(field, self.ns + "volatile", "true")

        sw = node.get_property("sw")
        self.add_value(field, self.ns + "access", typemaps.access_from_sw(sw))

        encode = node.get_property("encode")
        if encode is not None:
            enum_values_el = self.doc.createElement(self.ns +
                                                    "enumeratedValues")
            field.appendChild(enum_values_el)
            for enum_value in encode:
                enum_value_el = self.doc.createElement(self.ns +
                                                       "enumeratedValue")
                enum_values_el.appendChild(enum_value_el)
                self.add_nameGroup(enum_value_el, enum_value.name,
                                   enum_value.rdl_name, enum_value.rdl_desc)
                self.add_value(enum_value_el, self.ns + "value",
                               self.hex_str(enum_value.value))
                # DNE <spirit/ipxact:vendorExtensions>

        onwrite = node.get_property("onwrite")
        if onwrite:
            self.add_value(field, self.ns + "modifiedWriteValue",
                           typemaps.mwv_from_onwrite(onwrite))

        # DNE: <spirit/ipxact:writeValueConstraint>

        onread = node.get_property("onread")
        if onread:
            self.add_value(field, self.ns + "readAction",
                           typemaps.readaction_from_onread(onread))

        if node.get_property("donttest"):
            self.add_value(field, self.ns + "testable", "false")

        # DNE: <ipxact:reserved>

        # DNE: <spirit/ipxact:parameters>

        vendorExtensions = self.doc.createElement(self.ns + "vendorExtensions")
        self.field_vendorExtensions(vendorExtensions, node)
        if vendorExtensions.hasChildNodes():
            field.appendChild(vendorExtensions)
Example #46
0
 def render(self, request):
     """
     Render as HTML a listing of all known users with links to their
     personal resources.
     """
     listing = Element('ul')
     for link, text in self._users():
         linkElement = Element('a')
         linkElement.setAttribute('href', link + '/')
         textNode = Text()
         textNode.data = text
         linkElement.appendChild(textNode)
         item = Element('li')
         item.appendChild(linkElement)
         listing.appendChild(item)
     return self.template % {'users': listing.toxml()}
Example #47
0
 def add_value(self, parent: minidom.Element, tag: str, value: str) -> None:
     el = self.doc.createElement(tag)
     txt = self.doc.createTextNode(value)
     el.appendChild(txt)
     parent.appendChild(el)
Example #48
0
    def rect_to_mobject(self, rect_element: MinidomElement, style: dict):
        """Converts a SVG <rect> command to a VMobject.

        Parameters
        ----------
        rect_element : minidom.Element
            A SVG rect path command.

        style : dict
            Style specification, using the SVG names for properties.

        Returns
        -------
        Rectangle
            Creates either a Rectangle, or RoundRectangle, VMobject from a
            rect element.
        """

        stroke_width = rect_element.getAttribute("stroke-width")
        corner_radius = rect_element.getAttribute("rx")

        if stroke_width in ["", "none", "0"]:
            stroke_width = 0

        if corner_radius in ["", "0", "none"]:
            corner_radius = 0

        corner_radius = float(corner_radius)

        parsed_style = parse_style(style)
        parsed_style["stroke_width"] = stroke_width

        if corner_radius == 0:
            if config["renderer"] == "opengl":
                mob = OpenGLRectangle(
                    width=self.attribute_to_float(
                        rect_element.getAttribute("width")),
                    height=self.attribute_to_float(
                        rect_element.getAttribute("height")),
                    **parsed_style,
                )
            else:
                mob = Rectangle(
                    width=self.attribute_to_float(
                        rect_element.getAttribute("width")),
                    height=self.attribute_to_float(
                        rect_element.getAttribute("height")),
                    **parsed_style,
                )
        else:
            if config["renderer"] == "opengl":
                mob = OpenGLRoundedRectangle(
                    width=self.attribute_to_float(
                        rect_element.getAttribute("width")),
                    height=self.attribute_to_float(
                        rect_element.getAttribute("height")),
                    corner_radius=corner_radius,
                    **parsed_style,
                )
            else:
                mob = RoundedRectangle(
                    width=self.attribute_to_float(
                        rect_element.getAttribute("width")),
                    height=self.attribute_to_float(
                        rect_element.getAttribute("height")),
                    corner_radius=corner_radius,
                    **parsed_style,
                )

        mob.shift(mob.get_center() - mob.get_corner(UP + LEFT))
        return mob
def _merge_placeholder_broken_inside_runs_if_required(paragraph: Element):
    """Merge broken runs containing mustache placeholders.

    :param paragraph: paragraph xml element containing broken runs

    docx document is made up of paragraph among other things. A run is a part
    of a paragraph with different formatting(color, bold...). But most times
    Microsoft word and libreoffice Writer splits up text with same formatting
    into different runs. If this text contains mustache placeholders, it will
    be missed by mustache renderer.
    This method merges runs into one if it contains mustache placeholders.
    """

    runs = paragraph.getElementsByTagNameNS(_namespaces['w'], 'r')

    def _merge(run: Element,
               text_to_replace='',
               open_brace_count=0,
               close_brace_count=0,
               runs_to_merge=None):
        """Merge placeholders broken into runs

        Microsoft Word and libreoffice most times split placeholders into
        multiple runs. For example
        <w:r>
            <w:rPr>
                <w:b w:val="false"/>
                <w:bCs w:val="false"/>
            </w:rPr>
            <w:t>{{PRODUCTS</w:t>
        </w:r>
        <w:r>
            <w:rPr/>
            <w:t>}}</w:t>
        </w:r>

        We need to merge this into one run while retaining the style
        """
        if runs_to_merge is None:
            runs_to_merge = []

        if run is None:
            return
        elif not run_contains_text(run):
            pass
        else:
            text = get_run_text(run)

            open_brace_count += text.count('{{')
            close_brace_count += text.count('}}')

            text_to_replace += text

            # Once we have matching nodes, set text_to_replace as value to the
            # last run and remove previous runs
            if not open_brace_count == close_brace_count:
                runs_to_merge.append(run)
            elif runs_to_merge:
                set_run_text(run, text_to_replace)
                for r in runs_to_merge:
                    paragraph.removeChild(r)
                runs_to_merge = []
                text_to_replace = ''
        return _merge(run.nextSibling, text_to_replace, open_brace_count,
                      close_brace_count, runs_to_merge)

    _merge(runs[0])
Example #50
0
 def __init__(self, conn, suite):
     self.conn = conn
     self.cursor = StatementCursor(self.conn, name='_Trait_')
     Element.__init__(self, 'trait')
     self.desc_element = TextElement('description', None)
     self.parent_element = Element('parents')
     self.pkg_element = Element('packages')
     self.env_element = Element('environ')
     self.templ_element = Element('templates')
     self.scripts_element = Element('scripts')
     self.debconf_element = DebConfigurationElement()
     self.appendChild(self.desc_element)
     self.appendChild(self.parent_element)
     self.appendChild(self.pkg_element)
     self.appendChild(self.env_element)
     self.appendChild(self.templ_element)
     self.appendChild(self.debconf_element)
     self.appendChild(self.scripts_element)
     self.set_suite(suite)
Example #51
0
 def append_trait(self, trait):
     element = Element('trait')
     element.setAttribute('name', trait)
     self.appendChild(element)
Example #52
0
class TraitElement(Element):
    def __init__(self, conn, suite):
        self.conn = conn
        self.cursor = StatementCursor(self.conn, name='_Trait_')
        Element.__init__(self, 'trait')
        self.desc_element = TextElement('description', None)
        self.parent_element = Element('parents')
        self.pkg_element = Element('packages')
        self.env_element = Element('environ')
        self.templ_element = Element('templates')
        self.scripts_element = Element('scripts')
        self.debconf_element = DebConfigurationElement()
        self.appendChild(self.desc_element)
        self.appendChild(self.parent_element)
        self.appendChild(self.pkg_element)
        self.appendChild(self.env_element)
        self.appendChild(self.templ_element)
        self.appendChild(self.debconf_element)
        self.appendChild(self.scripts_element)
        self.set_suite(suite)

    def set_suite(self, suite):
        self.suite = suite
        self.setAttribute('suite', self.suite)
        self.traitparent = TraitParent(self.conn, self.suite)
        self.traitpackage = TraitPackage(self.conn, self.suite)
        self.traittemplate = TraitTemplate(self.conn, self.suite)
        self.traitdebconf = TraitDebconf(self.conn, self.suite)
        self.traitscripts = TraitScript(self.conn, self.suite)

    def set_environ(self):
        self.environ = TraitEnvironment(self.conn, self.suite, self.name)
        new_element = EnvironElement(self.environ)
        self.replaceChild(new_element, self.env_element)
        self.env_element = new_element

    def set_parents(self):
        self.parents = self.traitparent.parents(self.name)
        while self.parent_element.hasChildNodes():
            del self.parent_element.childNodes[0]
        for parent in self.parents:
            self.parent_element.appendChild(ParentElement(parent.parent))

    def set_packages(self):
        self.packages = self.traitpackage.packages([self.name])
        while self.pkg_element.hasChildNodes():
            del self.pkg_element.childNodes[0]
        for package in self.packages:
            pelement = PackageElement(package.package)
            pelement.setAttribute('action', package.action)
            self.pkg_element.appendChild(pelement)

    def set_templates(self):
        self.templates = self.traittemplate.templates(self.name)
        while self.templ_element.hasChildNodes():
            del self.templ_element.childNodes[0]
        for template in self.templates:
            element = TemplateElement(template.package, template.template)
            for att in ['package', 'mode', 'owner', 'grp_owner']:
                element.setAttribute(att, template[att])
            self.templ_element.appendChild(element)

    def set_debconf(self):
        self.debconf = self.traitdebconf.trait_debconf(self.name)
        while self.debconf_element.hasChildNodes():
            del self.debconf_element.childNodes[0]
        for debconf in self.debconf:
            element = DebConfElement(self.name, debconf)
            self.debconf_element.appendChild(element)

    def set_scripts(self):
        self.scripts = [x.script for x in self.traitscripts.scripts(self.name)]
        while self.scripts_element.hasChildNodes():
            del self.scripts_element.childNodes[0]
        for script in self.scripts:
            element = Element('script')
            element.setAttribute('name', script)
            self.scripts_element.appendChild(element)

    def set_name(self, name):
        self.name = name
        self.setAttribute('name', self.name)

    def set_priority(self, priority):
        self.priority = priority
        self.setAttribute('priority', self.priority)

    def set(self, name):
        self.set_name(name)
        self.set_suite(self.suite)
        self.set_environ()
        self.set_parents()
        self.set_packages()
        self.set_templates()
        self.set_debconf()
        self.set_scripts()

    def str(self):
        print self.toprettyxml()
Example #53
0
    def toXml(self):
        xml = Element("EditionEntry")

        subtag = Element("EditionUID")
        text = Text()
        text.data = str(self.UID)
        subtag.appendChild(text)
        xml.appendChild(subtag)

        subtag = Element("EditionFlagHidden")
        text = Text()
        text.data = str(int(bool(self.hidden)))
        subtag.appendChild(text)
        xml.appendChild(subtag)

        subtag = Element("EditionFlagDefault")
        text = Text()
        text.data = str(int(bool(self.default)))
        subtag.appendChild(text)
        xml.appendChild(subtag)

        subtag = Element("EditionFlagOrdered")
        text = Text()
        text.data = str(int(bool(self.ordered)))
        subtag.appendChild(text)
        xml.appendChild(subtag)

        for chapter in self:
            xml.appendChild(chapter.toXml())

        return xml
Example #54
0
def create_domain_xml(vm_name, mem_size, vcpus, dev_type, img_source, vnc_port,
                      clock_type, vnc_passwd, arch, machine, interfaces):

    # domain
    result = Element("domain")
    result.setAttribute("type", "kvm")

    # name
    name = Element("name")
    vmname = Text()
    vmname.data = vm_name
    name.appendChild(vmname)
    result.appendChild(name)

    # uuid
    uid = Element("uuid")
    vmuid = Text()
    vmuid.data = uuid.uuid4()
    uid.appendChild(vmuid)
    result.appendChild(uid)

    # memory 最大
    memory = Element("memory")
    vmmemory = Text()
    vmmemory.data = int(mem_size) * 1024
    memory.appendChild(vmmemory)
    result.appendChild(memory)

    # currentMemory 大小写区分,注意
    currentmemory = Element("currentMemory")
    vmcurrentmemory = Text()
    vmcurrentmemory.data = int(mem_size) * 1024
    currentmemory.appendChild(vmcurrentmemory)
    result.appendChild(currentmemory)

    # vcpus
    vcpu = Element("vcpu")
    vmvcpu = Text()
    vmvcpu.data = str(vcpus)
    vcpu.appendChild(vmvcpu)
    result.appendChild(vcpu)

    # os
    osys = Element("os")
    ostype = Element("type")
    #ostype.setAttribute("arch", os.popen('uname -m').readline().strip('\n'))
    ostype.setAttribute("arch", arch)
    ostype.setAttribute("machine", machine)
    osvirt = Text()
    osvirt.data = "hvm"
    ostype.appendChild(osvirt)
    osys.appendChild(ostype)
    #boot
    boot = Element("boot")
    boot.setAttribute("dev", dev_type)
    osys.appendChild(boot)
    result.appendChild(osys)

    # clock
    clock = Element("clock")
    clock.setAttribute("sync", clock_type)
    result.appendChild(clock)

    # features
    features = Element("features")
    acpi = Element("acpi")
    apic = Element("apic")
    pae = Element("pae")
    features.appendChild(acpi)
    features.appendChild(apic)
    features.appendChild(pae)
    result.appendChild(features)

    # devices
    devices = Element("devices")
    #1 emulator
    emulator = Element("emulator")
    vmemulator = Text()
    vmemulator.data = "/usr/libexec/qemu-kvm"
    emulator.appendChild(vmemulator)
    devices.appendChild(emulator)
    #2 disk
    disk = Element("disk")
    disk.setAttribute("type", "file")
    disk.setAttribute("device", "disk")
    source = Element("source")
    source.setAttribute("file", img_source)
    target = Element("target")
    target.setAttribute("dev", "hda")
    target.setAttribute("bus", "ide")
    driver = Element("driver")
    driver.setAttribute("name", "qemu")
    driver.setAttribute("type", "qcow2")
    disk.appendChild(source)
    disk.appendChild(target)
    disk.appendChild(driver)
    devices.appendChild(disk)
    #3 cdrom
    disk = Element("disk")
    disk.setAttribute("type", "block")
    disk.setAttribute("device", "cdrom")
    source = Element("source")
    #source.setAttribute("file", "/home/local/ubuntu.iso")
    target = Element("target")
    target.setAttribute("dev", "hdc")
    target.setAttribute("bus", "ide")
    disk.appendChild(source)
    disk.appendChild(target)
    devices.appendChild(disk)
    #4 interface for 多网卡
    for inter in interfaces:
        interface = Element("interface")
        interface.setAttribute("type", "bridge")
        mac = Element("mac")
        mac.setAttribute("address", inter["macs"])
        model = Element("model")
        model.setAttribute("type", inter["br_type"])
        source = Element("source")
        source.setAttribute("bridge", inter["br"])
        vifname = Element("target")
        vifname.setAttribute("dev", inter["vif_name"])
        interface.appendChild(model)
        interface.appendChild(mac)
        interface.appendChild(source)
        interface.appendChild(vifname)
        devices.appendChild(interface)
    #5. input
    input = Element("input")
    input.setAttribute("type", "mouse")
    input.setAttribute("bus", "ps2")
    devices.appendChild(input)
    #5.2 input
    inputusb = Element("input")
    inputusb.setAttribute("type", "tablet")
    inputusb.setAttribute("bus", "usb")
    devices.appendChild(inputusb)
    #6 vnc
    vnc = Element("graphics")
    vnc.setAttribute("type", "vnc")
    vnc.setAttribute("port", str(vnc_port))
    vnc.setAttribute("passwd", vnc_passwd)
    vnc.setAttribute("autoport", "no")
    vnc.setAttribute("keymap", "en-us")
    vnc.setAttribute("listen", "0.0.0.0")

    devices.appendChild(vnc)

    result.appendChild(devices)

    # states
    vmstate = Text()
    vmstate.data = "destroy"
    state = Element("on_poweroff")
    state.appendChild(vmstate)
    result.appendChild(state)
    vmstate = Text()
    vmstate.data = "restart"
    state = Element("on_reboot")
    state.appendChild(vmstate)
    result.appendChild(state)
    vmstate = Text()
    vmstate.data = "destroy"
    state = Element("on_crash")
    state.appendChild(vmstate)
    result.appendChild(state)

    return result
Example #55
0
    def toXml(self):
        xml = Element("ChapterDisplay")

        subtag = Element("ChapterString")
        text = Text()
        text.data = self.string
        subtag.appendChild(text)
        xml.appendChild(subtag)

        for lang in self.languages:
            subtag = Element("ChapterLanguage")
            text = Text()
            text.data = lang
            subtag.appendChild(text)
            xml.appendChild(subtag)

        for lang in self.langIETF:
            subtag = Element("ChapterLanguageIETF")
            text = Text()
            text.data = lang
            subtag.appendChild(text)
            xml.appendChild(subtag)

        for country in self.countries:
            subtag = Element("ChapterCountry")
            text = Text()
            text.data = country
            subtag.appendChild(text)
            xml.appendChild(subtag)

        return xml
Example #56
0
 def _create_failure_or_error(self, document, test, element_type):
     element = Element(element_type)
     element.setAttribute('type', self._get_attr(test, 'fail_class'))
     element.setAttribute('message', self._get_attr(test, 'fail_reason'))
     traceback_content = self._escape_cdata(
         test.get('traceback', self.UNKNOWN))
     traceback = document.createCDATASection(traceback_content)
     element.appendChild(traceback)
     system_out = Element('system-out')
     system_out_cdata_content = self._escape_cdata(
         test.get('text_output', self.UNKNOWN))
     system_out_cdata = document.createCDATASection(
         system_out_cdata_content)
     system_out.appendChild(system_out_cdata)
     element.appendChild(system_out)
     return element
Example #57
0
 def __init__(self, diskname, device):
     Element.__init__(self, 'machine_disk')
     self.setAttribute('diskname', diskname)
     self.setAttribute('device', device)
Example #58
0
 def __init__(self, mnt_name, ord, partition):
     Element.__init__(self, 'filesystem_mount')
     self.setAttribute('mnt_name', mnt_name)
     self.setAttribute('ord', ord)
     self.setAttribute('partition', partition)
Example #59
0
 def __init__(self, diskname):
     Element.__init__(self, 'diskname')
     self.setAttribute('name', diskname)
     self.partitions = []
     self.diskname = diskname
def get_file_address(root: minidom.Element, base: str):
    filename = root.getElementsByTagName(name="filename")[0].childNodes[0].data
    return os.path.join(base, str(filename))