aac.in_out.parser

AaC Parser and related functions submodule.

exception aac.in_out.parser.ParserError(source: str, errors: list[str] = NOTHING, yaml_error: YAMLError | None = attr_dict['yaml_error'].default)[source]

An error that represents a file that could not be parsed.

Parameters:
  • source (str)

  • errors (list[str])

  • yaml_error (YAMLError | None)

Return type:

None

aac.in_out.parser.get_cache() YamlLFUCache[source]

Return the YAML Parser Cache instance.

Returns:

The YAML Parser Cache instance

Return type:

YamlLFUCache

aac.in_out.parser.parse(source: str, source_uri: str | None = None) list[Definition][source]

Parse the Architecture-as-Code (AaC) definition(s) from the provided source.

Parameters:
  • source (str) – Must be either a file path to an AaC yaml file or a string containing AaC definitions.

  • source_uri (Optional[str]) – Overrides and sets the source_uri

Returns:

A list of Definition objects containing the internal representation of the definition and metadata associated with the definition.

Return type:

list[Definition]

aac.in_out.parser.parse_yaml(source: str, content: str) list[dict][source]

Parse content as a YAML string and return the resulting structure.

Be sure to use the YAML Parser Cache instead of this function.

Parameters:
  • source (str) – The source of the YAML content. Used to provide better error messages.

  • content (str) – The YAML content to be parsed.

Returns:

The parsed YAML content.

Raises:
  • If the YAML is invalid, a ParserError is raised.

  • If the model is not a dictionary, a ParserError is raised.

  • If the model does not have (at least) a "name" field, a ParserError is raised.

Return type:

list[dict]

aac.in_out.parser.reset_cache() None[source]

Resets the cache clearing all data.

Return type:

None

aac.in_out.parser.scan_yaml(source: str, content: str) list[Token][source]

Parse the YAML string and produce a list of scanning tokens.

Parameters:
  • source (str) – The source of the YAML content. Used to provide better error messages.

  • content (str) – The previously parsed YAML content to be scanned.

Returns:

The scanned YAML parse content.

Raises:

If the YAML is invalid, a ParserError is raised.

Return type:

list[Token]