CIME.XML.entry_id.EntryID

class CIME.XML.entry_id.EntryID(infile=None, schema=None, read_only=True)[source]

Bases: GenericXML

Methods

__init__

Initialize an object

add_child

Add element node to self at root

add_elements_by_group

Add elements from srcobj to self under the appropriate group element, entries to be added must have a child element <file> with value "infile"

attrib

change_file

check_if_comp_var

check_timestamp

Returns True if timestamp matches what is expected

cleanupnode

in env_base.py, not expected to get here

compare_xml

copy

get

get_child

get_child_content

get_children

This is the critical function, its interface and performance are crucial.

get_default_value

Set the value of an entry to the default value for that entry

get_description

get_element_text

get_elements_from_child_content

get_groups

get_id

get_node_element_info

get_nodes_by_id

get_optional_child

get_raw_record

get_resolved_value

A value in the xml file may contain references to other xml variables or to environment variables.

get_type_info

get_valid_value_string

get_valid_values

get_value

Get a value for entry with id attribute vid.

get_value_match

Handle this case: <entry id ...> <values> <value A="a1">X</value> <value A="a2">Y</value> <value A="a3" B="b1">Z</value> </values> </entry>

get_values

Same functionality as get_value but it returns a list, if the value in xml contains commas the list have multiple elements split on commas

get_version

has

invalidate

lock

A subclass is doing caching, we need to lock the tree structure in order to avoid invalidating cache.

make_child

make_child_comment

name

overwrite_existing_entries

pop

read

Read and parse an xml file into the object.

read_fd

remove_child

scan_child

Get an xml element matching nodename with optional attributes.

scan_children

scan_optional_child

Get an xml element matching nodename with optional attributes.

set

set_default_value

set_element_text

set_name

set_text

set_valid_values

set_value

Set the value of an entry-id field to value Returns the value or None if not found subgroup is ignored in the general routine and applied in specific methods

text

to_string

unlock

validate_timestamp

validate_xml_file

validate an XML file against a provided schema file using pylint

write

Write an xml file from data in self

class CacheEntry(tree, root, modtime)[source]

Bases: tuple

count(value, /)[source]

Return number of occurrences of value.

index(value, start=0, stop=9223372036854775807, /)[source]

Return first index of value.

Raises ValueError if the value is not present.

modtime[source]

Alias for field number 2

root[source]

Alias for field number 1

tree[source]

Alias for field number 0

add_child(node, root=None, position=None)[source]

Add element node to self at root

add_elements_by_group(srcobj, attributes=None, infile=None)[source]

Add elements from srcobj to self under the appropriate group element, entries to be added must have a child element <file> with value “infile”

check_timestamp()[source]

Returns True if timestamp matches what is expected

cleanupnode(node)[source]

in env_base.py, not expected to get here

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_default_value(node, attributes=None)[source]

Set the value of an entry to the default value for that entry

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(vid, attribute=None, resolved=True, subgroup=None)[source]

Get a value for entry with id attribute vid. or from the values field if the attribute argument is provided and matches

get_value_match(vid, attributes=None, exact_match=False, entry_node=None, replacement_for_none=None)[source]

Handle this case: <entry id …>

<values>

<value A=”a1”>X</value> <value A=”a2”>Y</value> <value A=”a3” B=”b1”>Z</value>

</values>

</entry>

If replacement_for_none is provided, then: if the found text value would give a None value, instead replace it with the value given by the replacement_for_none argument. (However, still return None if no match is found.) This may or may not be needed, but is in place to maintain some old logic.

get_values(vid, attribute=None, resolved=True, subgroup=None)[source]

Same functionality as get_value but it returns a list, if the value in xml contains commas the list have multiple elements split on commas

lock()[source]

A subclass is doing caching, we need to lock the tree structure in order to avoid invalidating cache.

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.

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_value(vid, value, subgroup=None, ignore_type=False)[source]

Set the value of an entry-id field to value Returns the value or None if not found subgroup is ignored in the general routine and applied in specific methods

validate_xml_file(filename, schema)[source]

validate an XML file against a provided schema file using pylint

write(outfile=None, force_write=False)[source]

Write an xml file from data in self