gemseo / core / grammars

Hide inherited members

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:
  • name (str) – The element name to rename.

  • namespace (str) – The name of the namespace.

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.
is_array(name, numeric_only=False)[source]

Check if an element is an array.

Parameters:
  • name (str) – The name of the element.

  • numeric_only (bool) –

    Whether to check if the array elements are numbers.

    By default it is set to False.

Returns:

Whether the element is an array.

Raises:

KeyError – If the element is not in the grammar.

Return type:

bool

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.

Parameters:
  • current_name (str) – The current name of the element.

  • new_name (str) – The new name of the element.

Return type:

None

restrict_to(names)

Restrict the grammar to the given names.

Parameters:

names (Iterable[str]) – The names of the elements to restrict the grammar to.

Raises:

KeyError – If a name is not in the grammar.

Return type:

None

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.

Parameters:
  • grammar (Self) – The grammar to update from.

  • exclude_names (Iterable[str]) –

    The names of the elements that shall not be updated.

    By default it is set to ().

  • merge (bool) –

    Whether to merge or update the grammar.

    By default it is set to False.

Return type:

None

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.

Parameters:
  • names (Iterable[str]) – The names to update from.

  • merge (bool) –

    Whether to merge or update the grammar.

    By default it is set to False.

Return type:

None

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 is True.

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.

property defaults: Defaults

The mapping from the names to the default values, if any.

from_namespaced: NamespacesMapping

The mapping from element names with namespace prefix to element names without namespace prefix.

name: str

The name of the grammar.

property names: KeysView[str]

The names of the elements.

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.