Trlc Python API

Extract requirement items from TRLC models using YAML conversion rules.

API

from lobster.tools.trlc.trlc_tool import TrlcToolConfig, lobster_trlc
lobster_trlc(config: TrlcToolConfig)

First, prepare a configuration:

Configuration Dataclass

from lobster.tools.trlc.trlc_tool import TrlcToolConfig, lobster_trlc

conf = TrlcToolConfig(
   config="config.yaml",
   dir_or_files=["models/"],
   out="trlc_requirements.lobster",
)

TrlcToolConfig fields (dataclass):

  • config: str - Path to the TRLC YAML config file. The file must define conversion-rules and may also include to-string-rules, inputs, inputs-from-file, and exclude-patterns.

  • dir_or_files: Sequence[str] - Additional file or directory paths merged with any input paths defined in the config file.

  • out: str - Destination .lobster file path. Defaults to lobster-trlc.lobster.

Stable API Function

lobster_trlc(config: TrlcToolConfig) -> None

Runs end-to-end: load config, collect TRLC sources, convert matching record objects, and write a LOBSTER output file.

Example (Default Config Inputs)

from lobster.tools.trlc.trlc_tool import TrlcToolConfig, lobster_trlc

conf = TrlcToolConfig(
   config="config.yaml",
   out="trlc_requirements.lobster",
)

lobster_trlc(conf)

Behavioral Notes

  • API validates that config is non-empty before execution.

  • Conversion currently supports namespace req; unsupported namespaces raise NotImplementedError.

  • API execution propagates parser, config validation, and conversion exceptions to the caller.

Core Goals

  • Parse TRLC .rsl / .trlc inputs using configured conversion rules.

  • Convert matching TRLC records into LOBSTER requirement items.

  • Preserve trace tags, description fields, and optional version mapping in output tags.

  • Produce a single LOBSTER artifact for downstream report tools.

Error Conditions

  • Empty config path → ValueError.

  • Invalid YAML schema/content → yamale.YamaleError.

  • Missing file/directory inputs or invalid paths → ValueError (during input collection), or FileNotFoundError / PathError (during TRLC source registration).

  • TRLC parsing/processing failures → trlc.errors.TRLC_Error / TrlcFailure.

  • Invalid conversion or to-string rules → InvalidConversionRuleError, RecordObjectComponentError, TupleToStringMissingError, TupleToStringFailedError.