cache skip actions

This commit is contained in:
Andrey Tikhonov 2022-07-30 14:48:17 +04:00
parent 2c9e0fde56
commit 69eeaf2512

View file

@ -110,6 +110,19 @@ class LifetimeControllerMiddleware(BaseMiddleware):
# TODO: Rename class
skip_patterns = None
_skip_actions = None
@property
def skip_actions(self):
if self._skip_actions is None:
self._skip_actions = []
if self.skip_patterns:
self._skip_actions.extend([
f"pre_process_{item}",
f"process_{item}",
f"post_process_{item}",
])
return self._skip_actions
async def pre_process(self, obj, data, *args):
pass
@ -118,13 +131,8 @@ class LifetimeControllerMiddleware(BaseMiddleware):
pass
async def trigger(self, action, args):
if self.skip_patterns:
skip_actions = (
(f"pre_process_{item}", f"process_{item}", f"post_process_{item}")
for item in self.skip_patterns
)
if any(action in item_actions for item_actions in skip_actions):
return False
if action in self.skip_actions:
return False
obj, *args, data = args
if action.startswith('pre_process_'):