knit_script.knit_script_interpreter.statements.Assertion module

Statements for asserting conditions.

This module provides the Assertion statement class, which implements Python-style assertion functionality in knit script programs. It allows developers to test conditions during script execution and raise exceptions when those conditions are not met, providing a mechanism for runtime validation and debugging.

class Assertion(parser_node, condition, error_str=None)[source]

Bases: Statement

Includes python style assertions in language.

This class provides assertion functionality similar to Python’s assert statement, allowing conditions to be tested during script execution with optional error messages. Assertions are useful for validating assumptions, checking preconditions, and debugging knit script programs by ensuring that expected conditions hold true during execution.

When an assertion fails, it raises a Knit_Script_Assertion_Exception with detailed information about the failed condition and any provided error message,

helping developers identify and fix issues in their knit script programs.

_condition

The condition expression to test for truthiness.

Type:

Expression

_error_str

Optional error message expression to display when assertion fails.

Type:

Expression | None

Parameters:
__init__(parser_node, condition, error_str=None)[source]

Initialize an Assertion statement.

Parameters:
  • parser_node (LRStackNode) – The parser node from the abstract syntax tree.

  • condition (Expression) – The condition expression to test for truthiness. Will be evaluated and converted to boolean.

  • error_str (Expression | None, optional) – Optional error message expression to display when assertion fails. If None, a default error message will be generated. Defaults to None.

execute(context)[source]

Execute the assertion by evaluating the condition.

Evaluates the condition expression and raises an exception if the result is falsy. The assertion follows Python’s truthiness conventions where empty collections, None, zero values, and False are considered false.

Parameters:

context (Knit_Script_Context) – The current execution context of the knit script interpreter.

Raises:
  • Knit_Script_Assertion_Exception – If the condition evaluates to False or any other falsy value.

  • The exception includes the original condition, the actual value that caused the failure, and any optional error message.

Return type:

None

__str__()[source]

Return string representation of the assertion.

Returns:

A string showing the condition and optional error message.

Return type:

str

__repr__()[source]

Return detailed string representation of the assertion.

Returns:

Same as __str__ for this class.

Return type:

str

property line_number: int

Get the line number of the symbol that generated this statement.

Returns:

The line number where this element appears in the source file.

Return type:

int

property location: Location

Get the location of this symbol in KnitScript file.

Returns:

The location of this symbol in the source file, including file name, line number, and position information.

Return type:

Location