示例#1
0
    def get_value(self, vid, attribute={}, resolved=True,subgroup=None):
        """
        get a value for entry with id attribute vid.
        or from the values field if the attribute argument is provided
        and matches
        """
        val = None
        if (type(vid) != type(str())):
            node = vid
            vid = node.attrib["id"]
        else:
            nodes = self.get_node("entry", {"id":vid})
            if (len(nodes) == 0):
                val = GenericXML.get_value(self, vid, resolved)
                return val
            else:
                node = nodes[0]

        if (attribute):
            valnodes = self.get_node("value", attribute,root=node)
            if (valnodes is not None and len(valnodes) == 1):
                val = valnodes[0].text
        elif (node.get("value") is not None):
            val = node.get("value")
        else:
            val = self.set_default_value(vid)

        if (val is None):
            # if all else fails
            val = GenericXML.get_value(self,vid,resolved)

        if (resolved):
            val = self.get_resolved_value(val)

        return val
示例#2
0
文件: machines.py 项目: mt5555/cime
    def get_value(self, name, resolved=True):
        """
        Get Value of fields in the config_machines.xml file
        """
        expect(self.machine is not None, "Machine object has no machine defined")
        value = None

        # COMPILER and MPILIB are special, if called without arguments they get the default value from the
        # COMPILERS and MPILIBS lists in the file.
        if (name == "COMPILER"):
            value = self.get_default_compiler()
        elif (name == "MPILIB"):
            value = self.get_default_MPIlib()
        else:
            nodes = self.get_node(name, root=self.machine)
            if (nodes):
                node = nodes[0]
                expect(node is not None, "No match found for %s in machine %s" % (name, self.name))
                value = node.text

        if (value is None):
            # if all else fails
            value = GenericXML.get_value(self, name)

        if (resolved):
            value = self.get_resolved_value(value)

        return value