pynenc.trigger.conditions.composite¶
Composite condition that combines multiple trigger conditions.
This condition allows combining multiple conditions with either AND or OR logic, enabling complex triggering scenarios where tasks are triggered only when all conditions are met (AND) or when any condition is met (OR).
Module Contents¶
Classes¶
Logic operators for combining multiple conditions. |
|
Combines multiple trigger conditions with logic operators. |
API¶
- class pynenc.trigger.conditions.composite.CompositeLogic[source]¶
Bases:
enum.StrEnumLogic operators for combining multiple conditions.
Initialization
Initialize self. See help(type(self)) for accurate signature.
- AND¶
‘auto(…)’
- OR¶
‘auto(…)’
- class pynenc.trigger.conditions.composite.CompositeCondition(conditions: list[pynenc.trigger.conditions.base.TriggerCondition], logic: pynenc.trigger.conditions.composite.CompositeLogic = CompositeLogic.AND)[source]¶
Bases:
pynenc.trigger.conditions.base.TriggerCondition[pynenc.trigger.conditions.base.ConditionContext]Combines multiple trigger conditions with logic operators.
This condition allows for complex trigger expressions by combining multiple conditions using AND/OR logic.
Initialization
Create a composite condition that combines multiple trigger conditions.
- Parameters:
conditions – List of trigger conditions to combine
logic – Logic operator to use (AND or OR)
- Raises:
ValueError – If no conditions are provided
- context_type: ClassVar[type[pynenc.trigger.conditions.base.ConditionContext]]¶
‘cast(…)’
- property condition_id: str¶
Generate a unique ID for this composite condition.
- Returns:
A string ID based on the logic type and component conditions
- get_source_task_ids() set[str][source]¶
Get the task IDs of all source tasks for this composite condition.
- Returns:
Set of task IDs
- _to_json(app: pynenc.app.Pynenc) dict[str, Any][source]¶
Create a serializable representation of this composite condition.
- Parameters:
app – Pynenc application instance for serializing complex arguments
- Returns:
Dictionary with serialized condition data
- classmethod _from_json(data: dict[str, Any], app: pynenc.app.Pynenc) pynenc.trigger.conditions.composite.CompositeCondition[source]¶
Create a CompositeCondition from parsed JSON data.
- Parameters:
data – Dictionary with condition data
app – Pynenc application instance for deserializing complex arguments
- Returns:
A new CompositeCondition instance
- Raises:
ValueError – If the data is invalid for this condition type
- _is_satisfied_by(context: pynenc.trigger.conditions.base.ConditionContext) bool[source]¶
Check if this composite condition is satisfied by the context.
For AND logic, all child conditions must be satisfied. For OR logic, at least one child condition must be satisfied.
- Parameters:
context – Context to evaluate conditions against
- Returns:
True if the composite condition is satisfied