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 defineconversion-rulesand may also includeto-string-rules,inputs,inputs-from-file, andexclude-patterns.dir_or_files: Sequence[str]- Additional file or directory paths merged with any input paths defined in the config file.out: str- Destination.lobsterfile path. Defaults tolobster-trlc.lobster.
Stable API Function¶
lobster_trlc(config: TrlcToolConfig) -> NoneRuns 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
configis non-empty before execution.Conversion currently supports namespace
req; unsupported namespaces raiseNotImplementedError.API execution propagates parser, config validation, and conversion exceptions to the caller.
Core Goals¶
Parse TRLC
.rsl/.trlcinputs 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
configpath →ValueError.Invalid YAML schema/content →
yamale.YamaleError.Missing file/directory inputs or invalid paths →
ValueError(during input collection), orFileNotFoundError/PathError(during TRLC source registration).TRLC parsing/processing failures →
trlc.errors.TRLC_Error/TrlcFailure.Invalid conversion or to-string rules →
InvalidConversionRuleError,RecordObjectComponentError,TupleToStringMissingError,TupleToStringFailedError.