CIME.XML.machines.Machines
- class CIME.XML.machines.Machines(infile=None, files=None, machine=None, extra_machines_dir=None, read_only=True)[source]
Bases:
GenericXML
Methods
__init__
initialize an object if a filename is provided it will be used, otherwise if a files object is provided it will be used otherwise create a files object from default values
Add element node to self at root
attrib
change_file
Returns True if timestamp matches what is expected
copy
get
get_child
This is the critical function, its interface and performance are crucial.
Get the MPILIB to use from the list of MPILIBS
Get the compiler to use from the list of COMPILERS
get_element_text
get_extra_machines_dir
Some of the fields have lists of valid values in the xml, parse these lists and return the first value if reqval is not provided and reqval if it is a valid setting for the machine
Return the names of all the child nodes for the target machine
get_id
Return the name of the machine
Return the directory of the machines file
Return the names of all the child nodes for the target machine
get_optional_child
get_raw_record
A value in the xml file may contain references to other xml variables or to environment variables.
get_suffix
Get Value of fields in the config_machines.xml file
get_values
get_version
has
Return if this machine has a batch system
invalidate
Check the MPILIB is valid for the current machine
Check the compiler is valid for the current machine
Return a list of machines defined for a given CIME_MODEL
A subclass is doing caching, we need to lock the tree structure in order to avoid invalidating cache.
make_child
make_child_comment
name
pop
Prints machine values.
Find a matching regular expression for hostname in the NODENAME_REGEX field in the file.
Read and parse an xml file into the object.
read_fd
remove_child
return a dictionary of machine info This routine is used by external tools in https://github.com/NCAR/CESM_xml2html
Get an xml element matching nodename with optional attributes.
scan_children
Get an xml element matching nodename with optional attributes.
set
set_element_text
Sets the machine block in the Machines object
set_name
set_text
ignore_type is not used in this flavor
text
to_string
unlock
validate_timestamp
validate an XML file against a provided schema file using pylint
Write an xml file from data in self
- class CacheEntry(tree, root, modtime)[source]
Bases:
tuple
- get_children(name=None, attributes=None, root=None)[source]
This is the critical function, its interface and performance are crucial.
You can specify attributes={key:None} if you want to select children with the key attribute but you don’t care what its value is.
- get_field_from_list(listname, reqval=None, attributes=None)[source]
Some of the fields have lists of valid values in the xml, parse these lists and return the first value if reqval is not provided and reqval if it is a valid setting for the machine
- get_first_child_nodes(nodename)[source]
Return the names of all the child nodes for the target machine
- get_resolved_value(raw_value, allow_unresolved_envvars=False, subgroup=None)[source]
A value in the xml file may contain references to other xml variables or to environment variables. These are refered to in the perl style with $name and $ENV{name}.
>>> obj = GenericXML() >>> os.environ["FOO"] = "BAR" >>> os.environ["BAZ"] = "BARF" >>> obj.get_resolved_value("one $ENV{FOO} two $ENV{BAZ} three") 'one BAR two BARF three' >>> obj.get_resolved_value("2 + 3 - 1") '4' >>> obj.get_resolved_value("0001-01-01") '0001-01-01' >>> obj.get_resolved_value("$SHELL{echo hi}") == 'hi' True
- get_value(name, attributes=None, resolved=True, subgroup=None)[source]
Get Value of fields in the config_machines.xml file
- lock()[source]
A subclass is doing caching, we need to lock the tree structure in order to avoid invalidating cache.
- print_values(compiler=None)[source]
Prints machine values.
- Args:
compiler (str, optional): Name of the compiler to print extra details for. Defaults to None.
- probe_machine_name(warn=True)[source]
Find a matching regular expression for hostname in the NODENAME_REGEX field in the file. First match wins.
- read(infile, schema=None)[source]
Read and parse an xml file into the object. The schema variable can either be a path to an xsd schema file or a dictionary of paths to files by version.
- return_values()[source]
return a dictionary of machine info This routine is used by external tools in https://github.com/NCAR/CESM_xml2html
- scan_child(nodename, attributes=None, root=None)[source]
Get an xml element matching nodename with optional attributes.
Error unless exactly one match.
- scan_optional_child(nodename, attributes=None, root=None)[source]
Get an xml element matching nodename with optional attributes.
Return None if no match.
- set_machine(machine, schema=None)[source]
Sets the machine block in the Machines object
>>> machobj = Machines(machine="melvin") >>> machobj.get_machine_name() 'melvin' >>> machobj.set_machine("trump") Traceback (most recent call last): ... CIMEError: ERROR: No machine trump found
- set_value(vid, value, subgroup=None, ignore_type=True)[source]
ignore_type is not used in this flavor