Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Project Configuration

Lilo projects can use an optional lilo.toml at the project root. If the file or any of its fields are missing, sensible defaults apply. The Python SDK and the VS Code extension read this file and apply the semantics accordingly.

Config controls:

  • Project name and source path
  • Language behavior (interval mode, freeze)
  • Diagnostics (consistency, redundancy, optimize, unused defs) and their timeouts
  • Optional registry of system_falsifier entries.

Below are the schema and defaults, followed by a complete example.

Schema and defaults

Top-level keys and their defaults when omitted:

  • project

    • name (string). Default: ""
    • source (path string). Default: "src/"
  • language

    • interval.mode (string). Supported: "static". Default: "static"
    • freeze.enabled (bool). Default: true
  • diagnostics

    • consistency.enabled (bool). Default: true
    • consistency.timeouts.named (seconds, float). Default: 0.5
    • consistency.timeouts.system (seconds, float). Default: 1.0
    • redundancy.enabled (bool). Default: true
    • redundancy.timeouts.named (seconds, float). Default: 0.5
    • redundancy.timeouts.system (seconds, float). Default: 1.0
    • optimize.enabled (bool). Default: true
    • unused_defs.enabled (bool). Default: true
  • [[system_falsifier]] (array of tables, optional)

    • Each entry: name (string), system (string), script (string)
    • If absent or empty, the key is omitted from the file and treated as an empty list

Default file:

[project]
name = ""
source = "src/"

[language]
freeze.enabled = true
interval.mode = "static"

[diagnostics.consistency]
enabled = true

[diagnostics.consistency.timeouts]
named = 0.5
system = 1.0

[diagnostics.optimize]
enabled = true

[diagnostics.redundancy]
enabled = true

[diagnostics.redundancy.timeouts]
named = 0.5
system = 1.0

[diagnostics.unused_defs]
enabled = true

Example lilo.toml

An example project with overrides.

[project]
name = "my-specs"
source = "src/"

[language]
freeze.enabled = true
interval.mode = "static"

[diagnostics.consistency]
enabled = true

[diagnostics.consistency.timeouts]
named = 5.0
system = 10.0

[diagnostics.optimize]
enabled = true

[diagnostics.redundancy]
enabled = false

[diagnostics.unused_defs]
enabled = false

[[system_falsifier]]
name = "Psitaliro ClimateControl Falsifier"
system = "climate_control"
script = "falsifiers/falsify_climate_control.py"

[[system_falsifier]]
name = "Psitaliro ALKS falisifier"
system = "lane_keeping"
script = "falsifiers/alks.py"