call next on the results of filter function to get the first value
This commit is contained in:
parent
dfaea2d937
commit
67842748b8
@ -111,14 +111,6 @@ class FSMMixin:
|
||||
if finish_trigger in self.machine.get_triggers(self.current_state.name):
|
||||
self.trigger(finish_trigger)
|
||||
|
||||
def _get_first_stage_create_trigger(self):
|
||||
return list(
|
||||
filter(
|
||||
lambda trigger: trigger.startswith("create_"),
|
||||
self.machine.get_triggers(FSMStates.STARTED.name),
|
||||
)
|
||||
)[0]
|
||||
|
||||
def prepare_init(self, event):
|
||||
pass
|
||||
|
||||
|
@ -98,7 +98,13 @@ class PortfolioStateMachine(
|
||||
|
||||
elif self.current_state == FSMStates.STARTED:
|
||||
# get the first trigger that starts with 'create_'
|
||||
create_trigger = self._get_first_stage_create_trigger()
|
||||
create_trigger = next(
|
||||
filter(
|
||||
lambda trigger: trigger.startswith("create_"),
|
||||
self.machine.get_triggers(FSMStates.STARTED.name),
|
||||
),
|
||||
None,
|
||||
)
|
||||
if create_trigger:
|
||||
self.trigger(create_trigger, **kwargs)
|
||||
else:
|
||||
@ -108,20 +114,16 @@ class PortfolioStateMachine(
|
||||
# the create trigger for the next stage should be in the available
|
||||
# triggers for the current state
|
||||
triggers = self.machine.get_triggers(state_obj.name)
|
||||
try:
|
||||
create_trigger = list(
|
||||
filter(
|
||||
lambda trigger: trigger.startswith("create_"),
|
||||
self.machine.get_triggers(self.state.name),
|
||||
)
|
||||
)[0]
|
||||
except IndexError:
|
||||
# are we done ?
|
||||
pass
|
||||
else:
|
||||
create_trigger = next(
|
||||
filter(
|
||||
lambda trigger: trigger.startswith("create_"),
|
||||
self.machine.get_triggers(self.state.name),
|
||||
),
|
||||
None,
|
||||
)
|
||||
if create_trigger is not None:
|
||||
self.trigger(create_trigger, **kwargs)
|
||||
|
||||
# @with_payload
|
||||
def after_in_progress_callback(self, event):
|
||||
stage = self.current_state.name.split("_IN_PROGRESS")[0].lower()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user