simple_grammar module¶
A basic grammar based on names and types.
- class gemseo.core.grammars.simple_grammar.SimpleGrammar(name, names_to_types=None, required_names=None, **kwargs)[source]¶
Bases:
BaseGrammar
A grammar based on names and types with a dictionary-like interface.
The types are pure Python types, type annotations are not supported.
The grammar could be empty, in that case the data validation always pass. If the type bound to a name is
None
then the type of the corresponding data name is always valid.Warning
This grammar cannot merge elements. Merging will raise an error.
Initialize self. See help(type(self)) for accurate signature.
- Parameters:
name (str) – The name of the grammar.
names_to_types (SimpleGrammarTypes | None) – The mapping defining the data names as keys, and data types as values. If
None
, the grammar is empty.required_names (Iterable[str] | None) – The names of the required elements. If
None
, all the elements are required.**kwargs (Any) – These arguments are not used.
- Raises:
ValueError – If the name is empty.
- add_namespace(name, namespace)¶
Add a namespace prefix to an existing grammar element.
The updated element name will be
namespace``+:data:`~gemseo.core.namespaces.namespace_separator`+``name
.- Parameters:
- Raises:
ValueError – If the variable already has a namespace.
- Return type:
None
- clear()¶
Empty the grammar.
- Return type:
None
- copy()¶
Create a shallow copy.
- Returns:
The shallow copy.
- Return type:
Self
- get(k[, d]) D[k] if k in D, else d. d defaults to None. ¶
- items() a set-like object providing a view on D's items ¶
- keys() a set-like object providing a view on D's keys ¶
- rename_element(current_name, new_name)¶
Rename an element.
- restrict_to(names)¶
Restrict the grammar to the given names.
- to_simple_grammar()[source]¶
Convert the grammar to a
SimpleGrammar
.- Returns:
A
SimpleGrammar
version of the current grammar.- Return type:
Self
- update(grammar, exclude_names=(), merge=False)¶
Update the grammar from another grammar.
- update_from_data(data, merge=False)¶
Update the grammar from name-value pairs.
The updated elements are required.
- Parameters:
data (Data) – The data from which to get the names and types, typically
{element_name: element_value}
.merge (bool) –
Whether to merge or update the grammar.
By default it is set to False.
- Return type:
None
- update_from_names(names, merge=False)¶
Update the grammar from names.
The updated elements are required and bind the names to NumPy arrays.
- update_from_types(names_to_types, merge=False)¶
Update the grammar from names bound to types.
The updated elements are required.
- Parameters:
names_to_types (SimpleGrammarTypes) – The mapping defining the data names as keys, and data types as values.
merge (bool) –
Whether to merge or update the grammar.
By default it is set to False.
- Return type:
None
- validate(data, raise_exception=True)¶
Validate data against the grammar.
- Parameters:
data (Data) – The data to be checked, with a dictionary-like format:
{element_name: element_value}
.raise_exception (bool) –
Whether to raise an exception when the validation fails.
By default it is set to True.
- Raises:
InvalidDataError – If the validation fails and
raise_exception
isTrue
.- Return type:
None
- values() an object providing a view on D's values ¶
- DATA_CONVERTER_CLASS: ClassVar[str] = 'SimpleGrammarDataConverter'¶
The class or the class name of the data converter.
- property data_converter: BaseDataConverter[BaseGrammar]¶
The converter of data values to NumPy arrays and vice versa.
- from_namespaced: NamespacesMapping¶
The mapping from element names with namespace prefix to element names without namespace prefix.
- property required_names: RequiredNames¶
The names of the required elements.
- to_namespaced: NamespacesMapping¶
The mapping from element names without namespace prefix to element names with namespace prefix.