Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
148 commits
Select commit Hold shift + click to select a range
60debf5
early async draft
Dan1lD Oct 12, 2021
4cd3796
delete ignite_thread_adapter
Dan1lD Oct 18, 2021
7f2367f
async db_adapter in BaseMainLoop
Dan1lD Oct 19, 2021
af2cf9a
main_coro in main_loop_kafka
SyrexMinus Oct 19, 2021
8981238
Merge branch 'refactoring/async' of github.com:sberdevices/smart_app_…
SyrexMinus Oct 19, 2021
2b1ea81
async Behaviors and main_loop_kafka
Dan1lD Oct 19, 2021
5ff2dd4
async run main_loop_kafka, minor async in iterate_coro
SyrexMinus Oct 20, 2021
1dab8d4
asynced: MainLoop.{__init__, main_coro, main_work}
SyrexMinus Oct 20, 2021
edcc4e6
fix imports
Dan1lD Oct 20, 2021
ed07439
Merge branch 'refactoring/async' of https://github.com/sberdevices/sm…
Dan1lD Oct 20, 2021
36eea5e
async MainLoop.healthcheck_coro
SyrexMinus Oct 21, 2021
1b427c0
asyncify part MailLoop.process_message
SyrexMinus Oct 21, 2021
1297cf1
main_loop_kafka healthcheck
SyrexMinus Oct 25, 2021
170f9f3
fix
Dan1lD Oct 25, 2021
cd7ccbd
remove async method from __init__
Dan1lD Oct 25, 2021
7e52bce
async exc_handler
Dan1lD Oct 27, 2021
f16bccf
fix bug main_loop_kafka
SyrexMinus Oct 27, 2021
2e4f0e2
Merge https://github.com/sberdevices/smart_app_framework into refacto…
Dan1lD Oct 27, 2021
4223c8e
Merge branch 'refactoring/async_2gen' of https://github.com/sberdevic…
Dan1lD Oct 27, 2021
c9b10b4
fix bug in main_loop_kafka and make it more async
SyrexMinus Oct 27, 2021
af485af
remove unneccessary async in main_loop_kafka
SyrexMinus Oct 27, 2021
adf15b4
main_loop_kafka remove outdated code
SyrexMinus Oct 27, 2021
0cd3ead
main_loop_kafka fix self.concurrent_messages
SyrexMinus Oct 28, 2021
88c260b
main_loop_kafka refactoring
Dan1lD Oct 28, 2021
b3c5b97
Merge branch 'refactoring/async_2gen' of https://github.com/sberdevic…
Dan1lD Oct 28, 2021
ea19cc0
main_loop_kafka refactoring
Dan1lD Oct 28, 2021
07f696e
refactoring main_loop_kafka
SyrexMinus Oct 28, 2021
579eb7f
done async for main_loop_kafka
SyrexMinus Nov 1, 2021
504622b
async handlers and smartAppModel
Dan1lD Nov 1, 2021
5adbe1d
async scenarios
Dan1lD Nov 1, 2021
80e2d8a
async tests
Dan1lD Nov 1, 2021
68ba609
fix run in HandlerText
Dan1lD Nov 1, 2021
c78ebd4
make actions async
SyrexMinus Nov 2, 2021
4380876
Merge branch 'refactoring/async_2gen' of github.com:sberdevices/smart…
SyrexMinus Nov 2, 2021
41a736d
async deep actions
SyrexMinus Nov 2, 2021
2b49e3e
make half of runs of actions async
SyrexMinus Nov 3, 2021
0d97688
async fillers
Dan1lD Nov 8, 2021
0afbc8b
done async actions
SyrexMinus Nov 8, 2021
1c2dac7
async fillers
Dan1lD Nov 8, 2021
d38246a
remove useless import
Dan1lD Nov 8, 2021
4ad7dd0
async tests for fillers
Dan1lD Nov 9, 2021
193257b
make all requirements and their usages async
SyrexMinus Nov 9, 2021
8960dc7
fix merge conflict
SyrexMinus Nov 9, 2021
dd8f952
fix asyncio bugs
SyrexMinus Nov 9, 2021
3648712
fix some async code and async tests
Dan1lD Nov 9, 2021
8363b12
remove useless files
Dan1lD Nov 9, 2021
9757553
async tests for dialogue_manager
Dan1lD Nov 10, 2021
2475255
async tests for device_requirements
Dan1lD Nov 10, 2021
cc52688
remove useless imports and comments
Dan1lD Nov 10, 2021
eae3bfc
remove useless files
Dan1lD Nov 10, 2021
d99b426
async tests for requirements
Dan1lD Nov 10, 2021
15f1fa6
async tests fot token_part_in_set_requirements
Dan1lD Nov 10, 2021
e70970f
async test_is_int_value
Dan1lD Nov 10, 2021
91d5798
async tests for requirements
Dan1lD Nov 10, 2021
2f42418
async test_handler_timeout
Dan1lD Nov 10, 2021
1a621fe
async test_handler_text
Dan1lD Nov 10, 2021
ba95af5
async test_nothing_found_action
Dan1lD Nov 10, 2021
ca997ed
async test_handle_respond
Dan1lD Nov 10, 2021
a4d14c8
async test_handle_close_app
Dan1lD Nov 10, 2021
0667020
async test_run_scenario_by_project_name
Dan1lD Nov 10, 2021
98e6863
async test_composite_filler
Dan1lD Nov 10, 2021
560d1c5
small refactoring
Dan1lD Nov 10, 2021
2dc233c
fix tests
SyrexMinus Nov 11, 2021
de458f8
update smartapp template
SyrexMinus Nov 11, 2021
cf0fb4c
fix tests
Dan1lD Nov 11, 2021
16ef002
fix
Dan1lD Nov 11, 2021
8824b82
change python-version in github/workflows/python-package.yml
Dan1lD Nov 11, 2021
569bd17
fix tests
Dan1lD Nov 12, 2021
d472cf8
Merge branch 'refactoring/async_2gen' of github.com:sberdevices/smart…
SyrexMinus Nov 12, 2021
cbf76f3
delete temp files
SyrexMinus Nov 12, 2021
19d671a
remove run_until_complete() where it is not necessary
Dan1lD Nov 14, 2021
d85325c
Merge branch 'refactoring/async_2gen' of https://github.com/sberdevic…
Dan1lD Nov 14, 2021
48dd518
remove useless files
Dan1lD Nov 14, 2021
1302356
fix tests
Dan1lD Nov 14, 2021
32604e7
draft async db_adapters and repositories
SyrexMinus Nov 15, 2021
94deb90
small fixes in main_loop_kafka
Dan1lD Nov 16, 2021
a0672e6
semi-fix async repos
SyrexMinus Nov 16, 2021
e5094a0
fixes of repos
SyrexMinus Nov 18, 2021
d6552d0
fix logging kafka error
SyrexMinus Nov 19, 2021
7ef0a44
async fixes
SyrexMinus Nov 22, 2021
c054e91
update async main loop kafka
SyrexMinus Nov 23, 2021
f0f7b89
add some awaits
Dan1lD Nov 24, 2021
a8958e3
hotfix kafka bug main_loop_kafka
SyrexMinus Nov 26, 2021
ecaeae0
add AsyncDBAdapter class
Dan1lD Nov 26, 2021
135c77e
fix Rerunable and AsyncDBAdapter
Dan1lD Nov 26, 2021
9b9cb34
fix Rerunable
Dan1lD Nov 26, 2021
e0df62d
fix async
Dan1lD Nov 27, 2021
6c17997
fix async
Dan1lD Nov 27, 2021
5f55268
fix kafka consumer multithreading
SyrexMinus Nov 29, 2021
991fc3a
fix kafka init bug
SyrexMinus Dec 1, 2021
f32e451
Merge branch 'refactoring/async_2gen_new_loop' of github.com:sberdevi…
SyrexMinus Dec 1, 2021
59130a5
Merge branch 'refactoring/async_2gen' of github.com:sberdevices/smart…
SyrexMinus Dec 1, 2021
ac28533
make memory adapter async
SyrexMinus Dec 1, 2021
c12179a
fix testing
Dan1lD Dec 2, 2021
2670208
fix testing
Dan1lD Dec 2, 2021
6d7e4d8
Merge branch 'refactoring/async_2gen' of https://github.com/sberdevic…
Dan1lD Dec 2, 2021
ab5be22
fix testing
Dan1lD Dec 2, 2021
2cea7e7
fix async field
SyrexMinus Dec 2, 2021
298aac2
fix async behaviors
Dan1lD Dec 6, 2021
fb0c248
fix async behaviors
Dan1lD Dec 6, 2021
dba65d3
Merge branch 'main' into refactoring/async_2gen
Dan1lD Dec 10, 2021
1e54d47
fix async tests
Dan1lD Dec 13, 2021
d688142
remove jaeger
Dan1lD Dec 19, 2021
d451c74
fix FirstPersonFiller
Dan1lD Dec 19, 2021
205bbcf
Merge branch 'main' into refactoring/async_2gen
Dan1lD Dec 19, 2021
e773dea
async DatePeriodFiller
Dan1lD Dec 20, 2021
a279e9c
Merge branch 'main' of https://github.com/sberdevices/smart_app_frame…
Dan1lD Dec 20, 2021
4bd2e54
fix DatePeriodFiller
Dan1lD Dec 28, 2021
3c33f2e
refactoring of AIOHttpMainLoop
Dan1lD Dec 28, 2021
5165e6f
refactoring of AIOHttpMainLoop
Dan1lD Dec 28, 2021
ddd9a0f
Merge branch 'main' of https://github.com/sberdevices/smart_app_frame…
Dan1lD Dec 30, 2021
93e72cd
merge last framework changes
Feb 2, 2022
ccffc85
DPNLPF-1300: sync kafka main loop with DP version
Feb 7, 2022
a9ff617
DPNLPF-1300: fix
Feb 7, 2022
df1c9e1
DPNLPF-1300: fix
Feb 7, 2022
4716ee2
DPNLPF-1300: fix
Feb 8, 2022
1a7d992
moved BaseHttpRequestAction on async
intsynko Feb 9, 2022
87c6e3c
moved HttpRequestActionTest on async
intsynko Feb 9, 2022
9c72027
Merge branch 'main' into feature/async_http_action
dangerink Feb 9, 2022
04c61b5
DPNLPF-1300: fix
Feb 11, 2022
eca49af
py3.8 3.9
Feb 11, 2022
377ef92
Merge branch 'main' of https://github.com/sberdevices/smart_app_frame…
Dan1lD Feb 14, 2022
83dc05f
Merge branch 'main' of https://github.com/sberdevices/smart_app_frame…
Dan1lD Feb 14, 2022
c749e77
Merge branch 'refactoring/async_2gen' of https://github.com/sberdevic…
Dan1lD Feb 15, 2022
517aa56
fix
Feb 16, 2022
eeab42e
Merge branch 'refactoring/async_2gen' of github.com:sberdevices/smart…
Feb 16, 2022
1841618
async tree_scenario
Dan1lD Feb 16, 2022
6ffd8ce
Merge branch 'refactoring/async_2gen' into feature/async_http_action
intsynko Feb 22, 2022
ce8b314
Add DEFAULT_METHOD and _get_response method
Feb 22, 2022
d3fd253
combined HttpRequestAction and BaseHttpRequestAction into one
intsynko Feb 28, 2022
cd06de1
fix tests bug
intsynko Feb 28, 2022
986309e
Merge branch 'feature/unify_http_request_and_base_http' into feature/…
intsynko Feb 28, 2022
81ec812
use behavior params as optional
intsynko Feb 28, 2022
bbdb293
Merge pull request #208 from sberdevices/feature/async_http_action
AivanF Feb 28, 2022
cbeda21
Fix http cookies logging
Mar 2, 2022
9f27852
Merge pull request #212 from sberdevices/HOTFIX-cookies-log
intsynko Mar 9, 2022
6d6feda
make http main loop support async
SyrexMinus Mar 22, 2022
3d8d6a8
Merge branch 'main' into refactoring/async_2gen
intsynko Mar 23, 2022
14930dd
DPNLPF-1300: make children of AsyncDBAdapter async
SyrexMinus Mar 24, 2022
cfca340
Merge branch 'refactoring/async_2gen' of github.com:sberdevices/smart…
SyrexMinus Mar 24, 2022
642e2da
DPNLPF-1300: make children of AsyncDBAdapter async
SyrexMinus Mar 24, 2022
ebfea63
DPNLPF-1300: fix httprequestaction tests
SyrexMinus Mar 24, 2022
ee57cfb
Merge branch 'main' into refactoring/async_2gen
intsynko Mar 28, 2022
effa139
Merge branch 'main' into refactoring/async_2gen
intsynko Apr 4, 2022
7fd1bdb
Make postprocessor async
Apr 5, 2022
ae30a18
Access to monitoring singleton only via monitoring module
Apr 4, 2022
27e0c3b
Merge pull request #230 from sberdevices/fix/async-postprocessor
SyrexMinus Apr 7, 2022
1d1091a
Merge pull request #232 from sberdevices/fix/monitoring_singleton
SyrexMinus Apr 7, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
105 changes: 75 additions & 30 deletions core/basic_models/actions/basic_actions.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# coding: utf-8
import asyncio
import random
from typing import Union, Dict, List, Any, Optional

Expand All @@ -25,8 +26,8 @@ def __init__(self, items: Dict[str, Any], id: Optional[str] = None):
self.id = id
self.version = items.get("version", -1)

def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> Optional[List[Command]]:
async def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> Optional[List[Command]]:
raise NotImplementedError

def on_run_error(self, text_preprocessing_result, user):
Expand All @@ -51,9 +52,9 @@ def __init__(self, items: Dict[str, Any], id: Optional[str] = None):
self.request_type = items.get("request_type") or self.DEFAULT_REQUEST_TYPE
self.request_data = items.get("request_data")

def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> Optional[List[Command]]:
super(CommandAction, self).run(user, text_preprocessing_result, params)
async def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> Optional[List[Command]]:
await super(CommandAction, self).run(user, text_preprocessing_result, params)
return None


Expand All @@ -66,8 +67,8 @@ def __init__(self, items: Dict[str, Any], id: Optional[str] = None):
super(DoingNothingAction, self).__init__(items, id)
self.nodes = items.get("nodes") or {}

def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> List[Command]:
async def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> List[Command]:
commands = [Command(self.command, self.nodes, self.id, request_type=self.request_type,
request_data=self.request_data)]
return commands
Expand Down Expand Up @@ -98,11 +99,56 @@ def build_requirement(self):
def build_internal_item(self):
return self._item

def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> Optional[List[Command]]:
async def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> Optional[List[Command]]:
result = None
if self.requirement.check(text_preprocessing_result, user, params):
result = self.internal_item.run(user, text_preprocessing_result, params)
if await self.requirement.check(text_preprocessing_result, user, params):
result = await self.internal_item.run(user, text_preprocessing_result, params)
return result


class GatherChoiceAction(Action):
version: Optional[int]
requirement_actions: RequirementAction
else_action: Action

FIELD_REQUIREMENT_KEY = "requirement_actions"
FIELD_ELSE_KEY = "else_action"

def __init__(self, items: Dict[str, Any], id: Optional[str] = None):
super(GatherChoiceAction, self).__init__(items, id)
self._requirement_items = items[self.FIELD_REQUIREMENT_KEY]
self._else_item = items.get(self.FIELD_ELSE_KEY)

self.items = self.build_items()

if self._else_item:
self.else_item = self.build_else_item()
else:
self.else_item = None

@list_factory(RequirementAction)
def build_items(self):
return self._requirement_items

@factory(Action)
def build_else_item(self):
return self._else_item

async def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> Optional[List[Command]]:
result = None
choice_is_made = False
check_results = await asyncio.gather(
item.requirement.check(text_preprocessing_result, user, params) for item in self.items)
for i, checked in enumerate(check_results):
if checked:
item = self.items[i]
result = await item.internal_item.run(user, text_preprocessing_result, params)
choice_is_made = True
break
if not choice_is_made and self._else_item:
result = await self.else_item.run(user, text_preprocessing_result, params)
return result


Expand Down Expand Up @@ -134,18 +180,17 @@ def build_items(self):
def build_else_item(self):
return self._else_item

def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> Optional[List[Command]]:
async def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> Optional[List[Command]]:
result = None
choice_is_made = False
for item in self.items:
checked = item.requirement.check(text_preprocessing_result, user, params)
if checked:
result = item.internal_item.run(user, text_preprocessing_result, params)
if await item.requirement.check(text_preprocessing_result, user, params):
result = await item.internal_item.run(user, text_preprocessing_result, params)
choice_is_made = True
break
if not choice_is_made and self._else_item:
result = self.else_item.run(user, text_preprocessing_result, params)
result = await self.else_item.run(user, text_preprocessing_result, params)
return result


Expand Down Expand Up @@ -182,13 +227,13 @@ def build_item(self):
def build_else_item(self):
return self._else_item

def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Optional[Dict[str, Union[str, float, int]]]] = None) -> Optional[List[Command]]:
async def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Optional[Dict[str, Union[str, float, int]]]] = None) -> Optional[List[Command]]:
result = None
if self.requirement.check(text_preprocessing_result, user, params):
result = self.item.run(user, text_preprocessing_result, params)
if await self.requirement.check(text_preprocessing_result, user, params):
result = await self.item.run(user, text_preprocessing_result, params)
elif self._else_item:
result = self.else_item.run(user, text_preprocessing_result, params)
result = await self.else_item.run(user, text_preprocessing_result, params)
return result


Expand All @@ -205,11 +250,11 @@ def __init__(self, items: Dict[str, Any], id: Optional[str] = None):
def build_actions(self):
return self._actions

def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> Optional[List[Command]]:
async def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> Optional[List[Command]]:
commands = []
for action in self.actions:
action_result = action.run(user, text_preprocessing_result, params)
action_result = await action.run(user, text_preprocessing_result, params)
if action_result:
commands += action_result
return commands
Expand All @@ -225,8 +270,8 @@ def __init__(self, items: Dict[str, Any], id: Optional[str] = None):
self._actions_count = len(items["actions"])
self._last_action_ids_storage = items["last_action_ids_storage"]

def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> Optional[List[Command]]:
async def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> Optional[List[Command]]:
last_ids = user.last_action_ids[self._last_action_ids_storage]
all_indexes = list(range(self._actions_count))
max_last_ids_count = self._actions_count - 1
Expand All @@ -236,7 +281,7 @@ def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingRe
action_index = random.choice(available_indexes)
action = self.actions[action_index]
last_ids.add(action_index)
result = action.run(user, text_preprocessing_result, params)
result = await action.run(user, text_preprocessing_result, params)
return result


Expand All @@ -251,8 +296,8 @@ def __init__(self, items, id=None):
def build_actions(self):
return self._raw_actions

def run(self, user, text_preprocessing_result, params=None):
async def run(self, user, text_preprocessing_result, params=None):
pos = random.randint(0, len(self._raw_actions) - 1)
action = self.actions[pos]
command_list = action.run(user, text_preprocessing_result, params=params)
command_list = await action.run(user, text_preprocessing_result, params=params)
return command_list
12 changes: 6 additions & 6 deletions core/basic_models/actions/client_profile_actions.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ def __init__(self, items: Dict[str, Any], id: Optional[str] = None):
{"memoryPartition": key, "tags": val} for key, val in self._nodes["memory"].items()
]

def run(self, user: User, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> Optional[List[Command]]:
async def run(self, user: User, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> Optional[List[Command]]:
self._nodes["consumer"] = {"projectId": user.settings["template_settings"]["project_id"]}

settings_kafka_key = user.settings["template_settings"].get("client_profile_kafka_key")
Expand All @@ -70,7 +70,7 @@ def run(self, user: User, text_preprocessing_result: BaseTextPreprocessingResult
user.behaviors.add(user.message.generate_new_callback_id(), self.behavior, scenario_id,
text_preprocessing_result.raw, action_params=pickle_deepcopy(params))

commands = super().run(user, text_preprocessing_result, params)
commands = await super().run(user, text_preprocessing_result, params)
return commands


Expand Down Expand Up @@ -144,8 +144,8 @@ def __init__(self, items: Dict[str, Any], id: Optional[str] = None):
self.kafka_key = items.get("kafka_key")
self._nodes["root_nodes"] = {"protocolVersion": items.get("protocolVersion") or 3}

def run(self, user: User, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> Optional[List[Command]]:
async def run(self, user: User, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> Optional[List[Command]]:
self._nodes["consumer"] = {"projectId": user.settings["template_settings"]["project_id"]}

settings_kafka_key = user.settings["template_settings"].get("client_profile_kafka_key")
Expand All @@ -155,5 +155,5 @@ def run(self, user: User, text_preprocessing_result: BaseTextPreprocessingResult
"kafka_replyTopic": user.settings["template_settings"]["consumer_topic"]
}

commands = super().run(user, text_preprocessing_result, params)
commands = await super().run(user, text_preprocessing_result, params)
return commands
20 changes: 10 additions & 10 deletions core/basic_models/actions/counter_actions.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,20 @@ def __init__(self, items: Dict[str, Any], id: Optional[str] = None):
self.value = items.get("value", 1)
self.lifetime = items.get("lifetime")

def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> None:
async def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> None:
user.counters[self.key].inc(self.value, self.lifetime)


class CounterDecrementAction(CounterIncrementAction):
def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> None:
async def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> None:
user.counters[self.key].dec(-self.value, self.lifetime)


class CounterClearAction(CounterIncrementAction):
def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> None:
async def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> None:
user.counters.clear(self.key)


Expand All @@ -48,8 +48,8 @@ def __init__(self, items: Dict[str, Any], id: Optional[str] = None):
self.reset_time = items.get("reset_time", False)
self.time_shift = items.get("time_shift", 0)

def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> None:
async def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> None:
user.counters[self.key].set(self.value, self.reset_time, self.time_shift)


Expand All @@ -61,7 +61,7 @@ def __init__(self, items: Dict[str, Any], id: Optional[str] = None):
self.reset_time = items.get("reset_time", False)
self.time_shift = items.get("time_shift", 0)

def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> None:
async def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> None:
value = user.counters[self.src].value
user.counters[self.dst].set(value, self.reset_time, self.time_shift)
6 changes: 3 additions & 3 deletions core/basic_models/actions/external_actions.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ def __init__(self, items: Dict[str, Any], id: Optional[str] = None):
super(ExternalAction, self).__init__(items, id)
self._action_key = items["action"]

def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> List[Command]:
async def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> List[Command]:
action = user.descriptions["external_actions"][self._action_key]
commands = action.run(user, text_preprocessing_result, params)
commands = await action.run(user, text_preprocessing_result, params)
return commands
4 changes: 2 additions & 2 deletions core/basic_models/actions/push_action.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@ def _render_request_data(self, action_params):
}
return request_data

def run(self, user: User, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> List[Command]:
async def run(self, user: User, text_preprocessing_result: BaseTextPreprocessingResult,
params: Optional[Dict[str, Union[str, float, int]]] = None) -> List[Command]:
params = params or {}
command_params = {
"surface": self.surface,
Expand Down
Loading