@@ -163,7 +163,10 @@ def handle_finish_event(_event: Event) -> None:
163163 def autorun (
164164 selector : Callable [[State ], SelectorOutput ],
165165 comparator : Callable [[State ], ComparatorOutput ] | None = None ,
166- ) -> AutorunDecorator [State , SelectorOutput ]:
166+ * ,
167+ default_value : AutorunOriginalReturnType | None = None ,
168+ initial_run : bool = _options .autorun_initial_run ,
169+ ) -> AutorunDecorator [State , SelectorOutput , AutorunOriginalReturnType ]:
167170 nonlocal state
168171
169172 def decorator (
@@ -172,7 +175,7 @@ def decorator(
172175 ) -> AutorunReturnType [AutorunOriginalReturnType ]:
173176 last_selector_result : SelectorOutput | None = None
174177 last_comparator_result : ComparatorOutput = cast (ComparatorOutput , object ())
175- last_value : AutorunOriginalReturnType | None = None
178+ last_value : AutorunOriginalReturnType | None = default_value
176179 subscriptions : list [Callable [[AutorunOriginalReturnType ], Any ]] = []
177180
178181 def check_and_call (state : State ) -> None :
@@ -212,7 +215,7 @@ def check_and_call(state: State) -> None:
212215 for subscriber in subscriptions :
213216 subscriber (last_value )
214217
215- if _options . autorun_initial_run and state is not None :
218+ if initial_run and state is not None :
216219 check_and_call (state )
217220
218221 subscribe (check_and_call )
0 commit comments