gemseo.core.grammars.json_grammar module#

A Grammar based on JSON schema.

class JSONGrammar(name, file_path='', descriptions=mappingproxy({}), **kwargs)[source]#

Bases: BaseGrammar

A grammar based on a JSON schema.

For the dictionary-like methods similar to update, when a key exists in both grammars, the values can be merged instead of being updated by passing merge = True. In that case, the resulting grammar will allow any of the values.

Initialize self. See help(type(self)) for accurate signature.

Parameters:
  • name (str) -- The name of the grammar.

  • file_path (str | Path) --

    The path to a JSON schema file. If None, do not initialize the grammar from a JSON schema file.

    By default it is set to "".

  • descriptions (Mapping[str, str]) --

    The descriptions of the elements read from file_path, in the form: {element_name: element_meaning}. If None, use the descriptions available in the JSON schema if any.

    By default it is set to {}.

  • **kwargs (Any) -- These arguments are not used.

Raises:

ValueError -- If the name is empty.

DATA_CONVERTER_CLASS#

alias of DataConverter

set_descriptions(descriptions)[source]#

Set the properties descriptions.

Parameters:

descriptions (Mapping[str, str]) -- The descriptions, mapping properties names to the description.

Return type:

None

to_file(path='')[source]#

Write the grammar ,schema to a json file.

Parameters:

path (Path | str) --

The file path. If empty, write to a file named after the grammar and with .json extension.

By default it is set to "".

Return type:

None

to_json(*args, **kwargs)[source]#

Return the JSON representation of the grammar schema.

Parameters:
Returns:

The JSON representation of the schema.

Return type:

str

update_from_file(path, merge=False)[source]#

Update the grammar from a schema file.

Parameters:
  • path (str | Path) -- The path to the schema file.

  • merge (bool) --

    Whether to merge or update the grammar.

    By default it is set to False.

Raises:

FileNotFoundError -- If the schema file does not exist.

Return type:

None

update_from_schema(schema, merge=False)[source]#

Update the grammar from a json schema.

Parameters:
  • schema (Schema) -- The schema to update from.

  • merge (bool) --

    Whether to merge or update the grammar.

    By default it is set to False.

Return type:

None

property schema: Schema#

The dictionary representation of the schema.