@@ -542,7 +542,7 @@ def __init__(
542
542
self .cfg ['scheduling' ]['special tasks' ][s_type ] = result
543
543
544
544
self .process_config_env ()
545
- self ._check_and_upg_wflow_handler_events ()
545
+ self ._upg_wflow_event_names ()
546
546
547
547
self .mem_log ("config.py: before load_graph()" )
548
548
self .load_graph ()
@@ -560,7 +560,7 @@ def __init__(
560
560
self .configure_workflow_state_polling_tasks ()
561
561
562
562
for taskdef in self .taskdefs .values ():
563
- self ._check_task_handler_events (taskdef )
563
+ self ._check_task_event_names (taskdef )
564
564
self ._check_task_event_handlers (taskdef )
565
565
self ._check_special_tasks () # adds to self.implicit_tasks
566
566
self ._check_explicit_cycling ()
@@ -1745,23 +1745,24 @@ def process_config_env(self):
1745
1745
]
1746
1746
)
1747
1747
1748
- def _check_task_handler_events (self , taskdef : 'TaskDef' ) -> None :
1749
- """Validate task handler event names."""
1750
- handler_events : Optional [List [str ]] = taskdef .rtconfig ['events' ][
1751
- 'handler events'
1752
- ]
1753
- if not handler_events :
1754
- return
1755
- invalid = set (handler_events ).difference (
1756
- TaskEventsManager .STD_EVENTS ,
1757
- taskdef .rtconfig ['outputs' ],
1758
- )
1759
- if invalid :
1760
- raise WorkflowConfigError (
1761
- "Invalid event name(s) for "
1762
- f"[runtime][{ taskdef .name } ][events]handler events: "
1763
- + ', ' .join (sorted (invalid ))
1748
+ def _check_task_event_names (self , taskdef : 'TaskDef' ) -> None :
1749
+ """Validate task handler/mail event names."""
1750
+ for setting in ('handler events' , 'mail events' ):
1751
+ event_names : Optional [List [str ]] = taskdef .rtconfig ['events' ][
1752
+ setting
1753
+ ]
1754
+ if not event_names :
1755
+ continue
1756
+ invalid = set (event_names ).difference (
1757
+ TaskEventsManager .STD_EVENTS ,
1758
+ taskdef .rtconfig ['outputs' ],
1764
1759
)
1760
+ if invalid :
1761
+ raise WorkflowConfigError (
1762
+ "Invalid event name(s) for "
1763
+ f"[runtime][{ taskdef .name } ][events]{ setting } : "
1764
+ + ', ' .join (sorted (invalid ))
1765
+ )
1765
1766
1766
1767
def _check_task_event_handlers (self , taskdef : 'TaskDef' ) -> None :
1767
1768
"""Check custom event handler templates can be expanded.
@@ -2726,32 +2727,23 @@ def upgrade_clock_triggers(self):
2726
2727
for seq in taskdef .sequences :
2727
2728
taskdef .add_xtrig_label (label , seq )
2728
2729
2729
- def _check_and_upg_wflow_handler_events (self ) -> None :
2730
- """Validate workflow handler events and upgrade any Cylc 7 event names.
2731
- """
2732
- handler_events : Optional [List [str ]] = self .cfg ['scheduler' ]['events' ][
2733
- 'handler events'
2734
- ]
2735
- if not handler_events :
2736
- return
2737
- upgraded : Dict [str , str ] = {}
2738
- for i , event in enumerate (handler_events ):
2739
- if event in WorkflowEventHandler .EVENTS_DEPRECATED :
2740
- handler_events [i ] = upgraded [event ] = (
2741
- WorkflowEventHandler .EVENTS_DEPRECATED [event ]
2742
- )
2743
- elif event not in WorkflowEventHandler .EVENTS :
2744
- valid = WorkflowEventHandler .EVENTS .copy ()
2745
- if cylc .flow .flags .cylc7_back_compat :
2746
- valid += WorkflowEventHandler .EVENTS_DEPRECATED
2747
- raise WorkflowConfigError (
2748
- f"Invalid workflow handler event '{ event } '. "
2749
- "[scheduler][events][handler events] must be one of: "
2750
- + ', ' .join (valid )
2730
+ def _upg_wflow_event_names (self ) -> None :
2731
+ """Upgrade any Cylc 7 workflow handler/mail events names."""
2732
+ for setting in ('handler events' , 'mail events' ):
2733
+ event_names : Optional [List [str ]] = self .cfg ['scheduler' ]['events' ][
2734
+ setting
2735
+ ]
2736
+ if not event_names :
2737
+ continue
2738
+ upgraded : Dict [str , str ] = {}
2739
+ for i , event in enumerate (event_names ):
2740
+ if event in WorkflowEventHandler .EVENTS_DEPRECATED :
2741
+ event_names [i ] = upgraded [event ] = (
2742
+ WorkflowEventHandler .EVENTS_DEPRECATED [event ]
2743
+ )
2744
+ if upgraded and not cylc .flow .flags .cylc7_back_compat :
2745
+ LOG .warning (
2746
+ f"{ upgrader .DEPR_MSG } \n "
2747
+ f" * (8.0.0) [scheduler][events][{ setting } ] "
2748
+ + ', ' .join (f'{ k } -> { v } ' for k , v in upgraded .items ())
2751
2749
)
2752
- if upgraded and not cylc .flow .flags .cylc7_back_compat :
2753
- LOG .warning (
2754
- f"{ upgrader .DEPR_MSG } \n "
2755
- " * (8.0.0) [scheduler][events][handler events] "
2756
- + ', ' .join (f'{ k } -> { v } ' for k , v in upgraded .items ())
2757
- )
0 commit comments