def get_value(self, item, attribute=None, resolved=True, subgroup="case.run"): """ Must default subgroup to something in order to provide single return value """ value = None if subgroup is None: nodes = self.get_nodes(item, attribute) if len(nodes) == 1: node = nodes[0] value = node.text if resolved: value = self.get_resolved_value(value) elif not nodes: value = EnvBase.get_value(self, item, attribute, resolved) else: value = EnvBase.get_value(self, item, attribute=attribute, resolved=resolved, subgroup=subgroup) return value
def get_value(self, item, attribute=None, resolved=True, subgroup="case.run"): """ Must default subgroup to something in order to provide single return value """ value = None if subgroup is None: node = self.get_optional_child(item, attribute) if node is not None: value = self.text(node) if resolved: value = self.get_resolved_value(value) else: value = EnvBase.get_value(self, item, attribute, resolved) else: value = EnvBase.get_value(self, item, attribute=attribute, resolved=resolved, subgroup=subgroup) return value
def get_value( self, vid, attribute=None, resolved=True, subgroup=None, max_mpitasks_per_node=None, ): # pylint: disable=arguments-differ # Special variable NINST_MAX is used to determine the number of # drivers in multi-driver mode. if vid == "NINST_MAX": # in the nuopc driver there is only a single NINST value value = 1 for comp in self._components: if comp != "CPL": value = max(value, self.get_value("NINST_{}".format(comp))) return value value = EnvBase.get_value(self, vid, attribute, resolved, subgroup) if "NTASKS" in vid or "ROOTPE" in vid: if max_mpitasks_per_node is None: max_mpitasks_per_node = self.get_value("MAX_MPITASKS_PER_NODE") if value is not None and value < 0: value = -1 * value * max_mpitasks_per_node # in the nuopc driver there is only one NINST value # so that NINST_{comp} = NINST if "NINST_" in vid and value is None: value = self.get_value("NINST") return value
def get_value(self, item, attribute=None, resolved=True, subgroup="case.run"): """ Must default subgroup to something in order to provide single return value """ value = None if subgroup is None: node = self.get_optional_node(item, attribute) if node is not None: value = node.text if resolved: value = self.get_resolved_value(value) else: value = EnvBase.get_value(self, item, attribute, resolved) else: job_node = self.get_optional_node("job", {"name": subgroup}) if job_node is not None: node = self.get_optional_node("entry", {"id": item}, root=job_node) if node is not None: value = node.get("value") if resolved: value = self.get_resolved_value(value) # Return value as right type if we were able to fully resolve # otherwise, we have to leave as string. if "$" not in value: type_str = self._get_type_info(node) value = convert_to_type(value, type_str, item) return value
def get_value(self, vid, attribute=None, resolved=True, subgroup=None): value = EnvBase.get_value(self, vid, attribute, resolved, subgroup) if value is None: tnode = self.get_optional_child("test") if tnode is not None: value = self.get_element_text(vid, root=tnode) return value
def get_value(self, item, attribute=None, resolved=True, subgroup="case.run"): """ Must default subgroup to something in order to provide single return value """ value = None if subgroup is None: node = self.get_optional_node(item, attribute) if node is not None: value = node.text if resolved: value = self.get_resolved_value(value) else: value = EnvBase.get_value(self,item,attribute,resolved) else: job_node = self.get_optional_node("job", {"name":subgroup}) if job_node is not None: node = self.get_optional_node("entry", {"id":item}, root=job_node) if node is not None: value = node.get("value") if resolved: value = self.get_resolved_value(value) # Return value as right type if we were able to fully resolve # otherwise, we have to leave as string. if "$" not in value: type_str = self._get_type_info(node) value = convert_to_type(value, type_str, item) return value
def get_value(self, item, attribute=None, resolved=True, subgroup="case.run"): """ Must default subgroup to something in order to provide single return value """ value = None if subgroup is None: node = self.get_optional_child(item, attribute) if node is not None: value = self.text(node) if resolved: value = self.get_resolved_value(value) else: value = EnvBase.get_value(self,item,attribute,resolved) else: value = EnvBase.get_value(self, item, attribute=attribute, resolved=resolved, subgroup=subgroup) return value
def get_value(self, vid, attribute={}, resolved=True, subgroup=None): value = EnvBase.get_value(self, vid, attribute, resolved, subgroup) if "NTASKS" in vid and value < 0: value = -1*value*self.get_value("PES_PER_NODE") if "NTHRDS" in vid and value < 0: value = -1*value*self.get_value("PES_PER_NODE") if "ROOTPE" in vid and value < 0: value = -1*value*self.get_value("PES_PER_NODE") return value
def get_value(self, vid, attribute=None, resolved=True, subgroup=None, pes_per_node=None): # pylint: disable=arguments-differ value = EnvBase.get_value(self, vid, attribute, resolved, subgroup) if "NTASKS" in vid or "ROOTPE" in vid: if pes_per_node is None: pes_per_node = self.get_value("PES_PER_NODE") if value is not None and value < 0: value = -1*value*pes_per_node return value
def get_value(self, item, attribute=None, resolved=True, subgroup="case.run"): """ Must default subgroup to something in order to provide single return value """ value = None if subgroup is None: nodes = self.get_nodes(item, attribute) if len(nodes) == 1: node = nodes[0] value = node.text if resolved: value = self.get_resolved_value(value) elif not nodes: value = EnvBase.get_value(self,item,attribute,resolved) else: value = EnvBase.get_value(self, item, attribute=attribute, resolved=resolved, subgroup=subgroup) return value
def get_value(self, vid, attribute=None, resolved=True, subgroup=None, pes_per_node=None): # pylint: disable=arguments-differ value = EnvBase.get_value(self, vid, attribute, resolved, subgroup) if "NTASKS" in vid or "ROOTPE" in vid and pes_per_node is None: pes_per_node = self.get_value("PES_PER_NODE") if "NTASKS" in vid and value < 0: value = -1*value*pes_per_node if "ROOTPE" in vid and value < 0: value = -1*value*pes_per_node return value
def get_value(self, vid, attribute=None, 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. Special case for pio variables when PIO_ASYNC_INTERFACE is True. """ if self._pio_async_interface: vid, comp, iscompvar = self.check_if_comp_var(vid, attribute) if vid.startswith("PIO") and iscompvar: if comp and comp != "CPL": logger.warning("Only CPL settings are used for PIO in async mode") subgroup = "CPL" return EnvBase.get_value(self, vid, attribute, resolved, subgroup)
def get_value(self, vid, attribute=None, resolved=True, subgroup=None, MAX_MPITASKS_PER_NODE=None): # pylint: disable=arguments-differ # Special variable NINST_MAX is used to determine the number of # drivers in multi-driver mode. if vid == "NINST_MAX": value = 1 for comp in self._components: if comp != "CPL": value = max(value, self.get_value("NINST_{}".format(comp))) return value value = EnvBase.get_value(self, vid, attribute, resolved, subgroup) if "NTASKS" in vid or "ROOTPE" in vid: if MAX_MPITASKS_PER_NODE is None: MAX_MPITASKS_PER_NODE = self.get_value("MAX_MPITASKS_PER_NODE") if value is not None and value < 0: value = -1*value*MAX_MPITASKS_PER_NODE return value
def get_value(self, vid, attribute=None, resolved=True, subgroup=None, max_mpitasks_per_node=None): # pylint: disable=arguments-differ # Special variable NINST_MAX is used to determine the number of # drivers in multi-driver mode. if vid == "NINST_MAX": # in the nuopc driver there is only a single NINST value value = 1 for comp in self._components: if comp != "CPL": value = max(value, self.get_value("NINST_{}".format(comp))) return value value = EnvBase.get_value(self, vid, attribute, resolved, subgroup) if "NTASKS" in vid or "ROOTPE" in vid: if max_mpitasks_per_node is None: max_mpitasks_per_node = self.get_value("MAX_MPITASKS_PER_NODE") if value is not None and value < 0: value = -1*value*max_mpitasks_per_node # in the nuopc driver there is only one NINST value # so that NINST_{comp} = NINST if "NINST_" in vid and value is None: value = self.get_value("NINST") return value
def get_value(self, vid, attribute=None, resolved=True, subgroup=None, MAX_MPITASKS_PER_NODE=None): # pylint: disable=arguments-differ # Special variable NINST_MAX is used to determine the number of # drivers in multi-driver mode. if vid == "NINST_MAX": value = 1 for comp in self._components: value = max(value, self.get_value("NINST_{}".format(comp))) return value value = EnvBase.get_value(self, vid, attribute, resolved, subgroup) if "NTASKS" in vid or "ROOTPE" in vid: if MAX_MPITASKS_PER_NODE is None: MAX_MPITASKS_PER_NODE = self.get_value("MAX_MPITASKS_PER_NODE") if value is not None and value < 0: value = -1 * value * MAX_MPITASKS_PER_NODE return value