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):
|
if finish_trigger in self.machine.get_triggers(self.current_state.name):
|
||||||
self.trigger(finish_trigger)
|
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):
|
def prepare_init(self, event):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -98,7 +98,13 @@ class PortfolioStateMachine(
|
|||||||
|
|
||||||
elif self.current_state == FSMStates.STARTED:
|
elif self.current_state == FSMStates.STARTED:
|
||||||
# get the first trigger that starts with 'create_'
|
# 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:
|
if create_trigger:
|
||||||
self.trigger(create_trigger, **kwargs)
|
self.trigger(create_trigger, **kwargs)
|
||||||
else:
|
else:
|
||||||
@ -108,20 +114,16 @@ class PortfolioStateMachine(
|
|||||||
# the create trigger for the next stage should be in the available
|
# the create trigger for the next stage should be in the available
|
||||||
# triggers for the current state
|
# triggers for the current state
|
||||||
triggers = self.machine.get_triggers(state_obj.name)
|
triggers = self.machine.get_triggers(state_obj.name)
|
||||||
try:
|
create_trigger = next(
|
||||||
create_trigger = list(
|
filter(
|
||||||
filter(
|
lambda trigger: trigger.startswith("create_"),
|
||||||
lambda trigger: trigger.startswith("create_"),
|
self.machine.get_triggers(self.state.name),
|
||||||
self.machine.get_triggers(self.state.name),
|
),
|
||||||
)
|
None,
|
||||||
)[0]
|
)
|
||||||
except IndexError:
|
if create_trigger is not None:
|
||||||
# are we done ?
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
self.trigger(create_trigger, **kwargs)
|
self.trigger(create_trigger, **kwargs)
|
||||||
|
|
||||||
# @with_payload
|
|
||||||
def after_in_progress_callback(self, event):
|
def after_in_progress_callback(self, event):
|
||||||
stage = self.current_state.name.split("_IN_PROGRESS")[0].lower()
|
stage = self.current_state.name.split("_IN_PROGRESS")[0].lower()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user