sfini.state.choice module

SFN choice rules.

These rules are used in the ‘Choice’ state of a state-machine, and allow for conditional branching in the state-machine. There are two types of choice rule: comparisons and logical operations.

class sfini.state.choice.And(choice_rules: List[sfini.state.choice.ChoiceRule], next_state=None)[source]

Bases: sfini.state.choice._NonUnary

class sfini.state.choice.BooleanEquals(variable_path: str, comparison_value, next_state=None)[source]

Bases: sfini.state.choice.Comparison

class sfini.state.choice.ChoiceRule(next_state=None)[source]

Bases: object

A choice case for the ‘Choice’ state.

Parameters:next_state (sfini.state.State) – state to execute on success
to_dict() → Dict[str, Union[None, bool, str, int, float, List[JSONable], Dict[str, JSONable]]][source]

Convert this rule to a definition dictionary.

Returns:definition
class sfini.state.choice.Comparison(variable_path: str, comparison_value, next_state=None)[source]

Bases: sfini.state.choice.ChoiceRule

Compare variable value.

Parameters:
  • variable_path – path of variable to compare
  • comparison_value – value to compare against
  • next_state – state to execute on success
to_dict()[source]

Convert this rule to a definition dictionary.

Returns:definition
class sfini.state.choice.Logical(next_state=None)[source]

Bases: sfini.state.choice.ChoiceRule

class sfini.state.choice.Not(choice_rule: sfini.state.choice.ChoiceRule, next_state=None)[source]

Bases: sfini.state.choice.Logical

Logical ‘not’ operation on a choice rule.

Parameters:
  • choice_rule – choice rule to operate on
  • next_state – state to execute on success
class sfini.state.choice.NumericEquals(variable_path: str, comparison_value, next_state=None)[source]

Bases: sfini.state.choice.Comparison

class sfini.state.choice.NumericGreaterThan(variable_path: str, comparison_value, next_state=None)[source]

Bases: sfini.state.choice.Comparison

class sfini.state.choice.NumericGreaterThanEquals(variable_path: str, comparison_value, next_state=None)[source]

Bases: sfini.state.choice.Comparison

class sfini.state.choice.NumericLessThan(variable_path: str, comparison_value, next_state=None)[source]

Bases: sfini.state.choice.Comparison

class sfini.state.choice.NumericLessThanEquals(variable_path: str, comparison_value, next_state=None)[source]

Bases: sfini.state.choice.Comparison

class sfini.state.choice.Or(choice_rules: List[sfini.state.choice.ChoiceRule], next_state=None)[source]

Bases: sfini.state.choice._NonUnary

class sfini.state.choice.StringEquals(variable_path: str, comparison_value, next_state=None)[source]

Bases: sfini.state.choice.Comparison

class sfini.state.choice.StringGreaterThan(variable_path: str, comparison_value, next_state=None)[source]

Bases: sfini.state.choice.Comparison

class sfini.state.choice.StringGreaterThanEquals(variable_path: str, comparison_value, next_state=None)[source]

Bases: sfini.state.choice.Comparison

class sfini.state.choice.StringLessThan(variable_path: str, comparison_value, next_state=None)[source]

Bases: sfini.state.choice.Comparison

class sfini.state.choice.StringLessThanEquals(variable_path: str, comparison_value, next_state=None)[source]

Bases: sfini.state.choice.Comparison

class sfini.state.choice.TimestampEquals(variable_path: str, comparison_value, next_state=None)[source]

Bases: sfini.state.choice._TimestampRule

class sfini.state.choice.TimestampGreaterThan(variable_path: str, comparison_value, next_state=None)[source]

Bases: sfini.state.choice._TimestampRule

class sfini.state.choice.TimestampGreaterThanEquals(variable_path: str, comparison_value, next_state=None)[source]

Bases: sfini.state.choice._TimestampRule

class sfini.state.choice.TimestampLessThan(variable_path: str, comparison_value, next_state=None)[source]

Bases: sfini.state.choice._TimestampRule

class sfini.state.choice.TimestampLessThanEquals(variable_path: str, comparison_value, next_state=None)[source]

Bases: sfini.state.choice._TimestampRule