osbot-utils 1.55.0__py3-none-any.whl → 1.56.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- osbot_utils/helpers/flows/Flow.py +22 -10
- osbot_utils/helpers/flows/Flow__Events.py +13 -0
- osbot_utils/helpers/flows/Task.py +8 -3
- osbot_utils/helpers/flows/models/Flow__Event_Type.py +5 -5
- osbot_utils/version +1 -1
- {osbot_utils-1.55.0.dist-info → osbot_utils-1.56.0.dist-info}/METADATA +2 -2
- {osbot_utils-1.55.0.dist-info → osbot_utils-1.56.0.dist-info}/RECORD +9 -9
- {osbot_utils-1.55.0.dist-info → osbot_utils-1.56.0.dist-info}/LICENSE +0 -0
- {osbot_utils-1.55.0.dist-info → osbot_utils-1.56.0.dist-info}/WHEEL +0 -0
@@ -55,7 +55,7 @@ class Flow(Type_Safe):
|
|
55
55
|
if self.flow_config.log_to_memory:
|
56
56
|
self.logger.add_memory_logger() # todo: move to method that does pre-execute tasks
|
57
57
|
|
58
|
-
self.log_debug(f"Executing flow run '{self.f__flow_id()}'
|
58
|
+
self.log_debug(f"Executing flow run '{self.f__flow_id()}'")
|
59
59
|
try:
|
60
60
|
with Stdout() as stdout:
|
61
61
|
self.invoke_flow_target()
|
@@ -102,17 +102,29 @@ class Flow(Type_Safe):
|
|
102
102
|
print()
|
103
103
|
self.print_log_messages()
|
104
104
|
|
105
|
-
def log_debug(self, message):
|
106
|
-
if self.flow_config.logging_enabled:
|
107
|
-
self.logger.debug(message)
|
108
105
|
|
109
|
-
def
|
110
|
-
|
111
|
-
|
106
|
+
def log_debug(self, message, task_run_id=None):
|
107
|
+
self.logger_add_message(log_level=logging.DEBUG, message=message, task_run_id=task_run_id)
|
108
|
+
|
109
|
+
def log_error(self, message, task_run_id=None):
|
110
|
+
self.logger_add_message(log_level=logging.ERROR, message=message, task_run_id=task_run_id)
|
112
111
|
|
113
|
-
def log_info(self, message):
|
112
|
+
def log_info(self, message, task_run_id=None):
|
113
|
+
self.logger_add_message(log_level=logging.INFO, message=message, task_run_id=task_run_id)
|
114
|
+
|
115
|
+
def logger_add_message(self, log_level, message, task_run_id=None):
|
114
116
|
if self.flow_config.logging_enabled:
|
115
|
-
|
117
|
+
kwargs = dict(log_level = log_level ,
|
118
|
+
message = message ,
|
119
|
+
flow_run_id = self.flow_id,
|
120
|
+
task_run_id = task_run_id )
|
121
|
+
flow_events.on__flow_run__message(self, **kwargs)
|
122
|
+
if log_level == logging.DEBUG:
|
123
|
+
self.logger.debug(message)
|
124
|
+
elif log_level == logging.ERROR:
|
125
|
+
self.logger.error(message)
|
126
|
+
else:
|
127
|
+
self.logger.info(message)
|
116
128
|
|
117
129
|
def log_messages(self):
|
118
130
|
return ansis_to_texts(self.log_messages_with_colors())
|
@@ -135,7 +147,7 @@ class Flow(Type_Safe):
|
|
135
147
|
|
136
148
|
def print_flow_finished_message(self):
|
137
149
|
if self.flow_config.print_finished_message:
|
138
|
-
self.log_debug(f"Finished flow run '{self.f__flow_id()}'
|
150
|
+
self.log_debug(f"Finished flow run '{self.f__flow_id()}'")
|
139
151
|
|
140
152
|
def print_flow_return_value(self):
|
141
153
|
if self.flow_config.print_none_return_value is False and self.flow_return_value is None:
|
@@ -1,3 +1,7 @@
|
|
1
|
+
from osbot_utils.utils.Str import ansis_to_texts, ansi_to_text
|
2
|
+
|
3
|
+
from osbot_utils.utils.Dev import pprint
|
4
|
+
|
1
5
|
from osbot_utils.base_classes.Type_Safe import Type_Safe
|
2
6
|
from osbot_utils.helpers.flows.models.Flow__Event import Flow__Event
|
3
7
|
from osbot_utils.helpers.flows.models.Flow__Event_Type import Flow__Event_Type
|
@@ -14,6 +18,15 @@ class Flow_Events(Type_Safe):
|
|
14
18
|
flow_event = Flow__Event(event_type=Flow__Event_Type.FLOW_STOP , event_source=flow)
|
15
19
|
self.raise_event(flow_event)
|
16
20
|
|
21
|
+
def on__flow_run__message(self, flow, log_level, flow_run_id, task_run_id, message):
|
22
|
+
event_data = dict(flow_run_id = flow_run_id ,
|
23
|
+
log_level = log_level ,
|
24
|
+
message = message ,
|
25
|
+
message_text = ansi_to_text(message) ,
|
26
|
+
task_run_id = task_run_id )
|
27
|
+
flow_event = Flow__Event(event_type=Flow__Event_Type.FLOW_MESSAGE, event_source=flow, event_data=event_data)
|
28
|
+
self.raise_event(flow_event)
|
29
|
+
|
17
30
|
def on__task__start(self, task):
|
18
31
|
flow_event = Flow__Event(event_type=Flow__Event_Type.TASK_START, event_source=task)
|
19
32
|
self.raise_event(flow_event)
|
@@ -27,11 +27,14 @@ class Task(Type_Safe):
|
|
27
27
|
task_error : Exception = None
|
28
28
|
raise_on_error : bool = True
|
29
29
|
|
30
|
+
def log_info(self, message):
|
31
|
+
self.task_flow.log_info(message, self.task_id)
|
32
|
+
|
30
33
|
def log_debug(self, message):
|
31
|
-
self.task_flow.log_debug(message)
|
34
|
+
self.task_flow.log_debug(message, self.task_id)
|
32
35
|
|
33
36
|
def log_error(self, message):
|
34
|
-
self.task_flow.log_error(message)
|
37
|
+
self.task_flow.log_error(message, self.task_id)
|
35
38
|
|
36
39
|
def execute__sync(self):
|
37
40
|
self.execute__before()
|
@@ -54,6 +57,8 @@ class Task(Type_Safe):
|
|
54
57
|
if not self.task_id:
|
55
58
|
self.task_id = self.random_task_id()
|
56
59
|
|
60
|
+
flow_events.on__task__start(self)
|
61
|
+
|
57
62
|
self.task_flow.executed_tasks.append(self)
|
58
63
|
self.log_debug(f"Executing task '{f_blue(self.task_name)}'")
|
59
64
|
dependency_manager = Dependency_Manager()
|
@@ -62,7 +67,7 @@ class Task(Type_Safe):
|
|
62
67
|
dependency_manager.add_dependency('task_data', self.data )
|
63
68
|
dependency_manager.add_dependency('flow_data', self.task_flow.data)
|
64
69
|
self.resolved_args, self.resolved_kwargs = dependency_manager.resolve_dependencies(self.task_target, *self.task_args, **self.task_kwargs)
|
65
|
-
|
70
|
+
|
66
71
|
|
67
72
|
def execute__task_target__sync(self):
|
68
73
|
try:
|
@@ -1,8 +1,8 @@
|
|
1
1
|
from osbot_utils.base_classes.Type_Safe import Type_Safe
|
2
2
|
|
3
|
-
|
4
3
|
class Flow__Event_Type(Type_Safe):
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
FLOW_MESSAGE: str = 'flow_message'
|
5
|
+
FLOW_START : str = 'flow_start'
|
6
|
+
FLOW_STOP : str = 'flow_stop'
|
7
|
+
TASK_START : str = 'task_start'
|
8
|
+
TASK_STOP : str = 'task_stop'
|
osbot_utils/version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
v1.
|
1
|
+
v1.56.0
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: osbot_utils
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.56.0
|
4
4
|
Summary: OWASP Security Bot - Utils
|
5
5
|
Home-page: https://github.com/owasp-sbot/OSBot-Utils
|
6
6
|
License: MIT
|
@@ -22,7 +22,7 @@ Description-Content-Type: text/markdown
|
|
22
22
|
|
23
23
|
Powerful Python util methods and classes that simplify common apis and tasks.
|
24
24
|
|
25
|
-

|
26
26
|
[](https://codecov.io/gh/owasp-sbot/OSBot-Utils)
|
27
27
|
|
28
28
|
|
@@ -154,16 +154,16 @@ osbot_utils/helpers/cache_requests/Cache__Requests__Row.py,sha256=h-yc7NkpScbHww
|
|
154
154
|
osbot_utils/helpers/cache_requests/Cache__Requests__Table.py,sha256=RgxAYhm-FIrXXteQRtD91pOLq8JXhSzxb51Jb6MTUdY,391
|
155
155
|
osbot_utils/helpers/cache_requests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
156
156
|
osbot_utils/helpers/cache_requests/flows/flow__Cache__Requests.py,sha256=xgx_oExxkcvRwQN1UCobimECIMUKGoIX5oGdCmp8Nyw,243
|
157
|
-
osbot_utils/helpers/flows/Flow.py,sha256=
|
158
|
-
osbot_utils/helpers/flows/Flow__Events.py,sha256=
|
159
|
-
osbot_utils/helpers/flows/Task.py,sha256=
|
157
|
+
osbot_utils/helpers/flows/Flow.py,sha256=iO-4B0uIv31n66INoXpodoYss5eEsOEGu3LDFevkKQ8,7626
|
158
|
+
osbot_utils/helpers/flows/Flow__Events.py,sha256=Gy5P130Bz5RtRV7NaV5Iss4wZrjLdVxaps1r02kQLCk,2123
|
159
|
+
osbot_utils/helpers/flows/Task.py,sha256=ITR6qFd_BWEFtWJ5wZUFcxq3A3FyN4YzU7_CeIuUph0,4809
|
160
160
|
osbot_utils/helpers/flows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
161
161
|
osbot_utils/helpers/flows/decorators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
162
162
|
osbot_utils/helpers/flows/decorators/flow.py,sha256=LUL7bHjZ_lC3QoTNh-KsDZHzjE2u4mU-5EpZnfsEGuc,738
|
163
163
|
osbot_utils/helpers/flows/decorators/task.py,sha256=9bhQBPJU1dO-J4FAsFkmxqQMBNtay4FT_b1BdpHJ9sA,734
|
164
164
|
osbot_utils/helpers/flows/models/Flow__Config.py,sha256=NLIfT0S8zxbig6Q1p9KeoyE2qRVWorHxk-JXCv9Yx-U,382
|
165
165
|
osbot_utils/helpers/flows/models/Flow__Event.py,sha256=O2SNmDG8FTsQQqm5tWmbomQsC_usA7EqMQhTWIFl4KM,157
|
166
|
-
osbot_utils/helpers/flows/models/Flow__Event_Type.py,sha256=
|
166
|
+
osbot_utils/helpers/flows/models/Flow__Event_Type.py,sha256=YSOjzcRjCHmF_AIoWiccoNH0EAmNdTSmObXYB5exTGw,277
|
167
167
|
osbot_utils/helpers/flows/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
168
168
|
osbot_utils/helpers/html/Dict_To_Css.py,sha256=u6B4Mx7PXr-gDrTrs1hgknnvsZVK4Fic5LqedKjo-lk,1097
|
169
169
|
osbot_utils/helpers/html/Dict_To_Html.py,sha256=OlRSaDGOeseBNTxRB2ho5whqEacMXeAXWOfeVSEYqC4,3355
|
@@ -302,8 +302,8 @@ osbot_utils/utils/Toml.py,sha256=SD6IA4-mrtoBXcI0dIGKV9POMQNd6WYKvmDQq7GQ6ZQ,143
|
|
302
302
|
osbot_utils/utils/Version.py,sha256=Ww6ChwTxqp1QAcxOnztkTicShlcx6fbNsWX5xausHrg,422
|
303
303
|
osbot_utils/utils/Zip.py,sha256=G6Hk_hDcm9yvWzhTKzhT0R_6f0NBIAchHqMxGb3kfh4,14037
|
304
304
|
osbot_utils/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
305
|
-
osbot_utils/version,sha256=
|
306
|
-
osbot_utils-1.
|
307
|
-
osbot_utils-1.
|
308
|
-
osbot_utils-1.
|
309
|
-
osbot_utils-1.
|
305
|
+
osbot_utils/version,sha256=Tr_IKFeVZOtzWeW8sdbz6QZge0TiRXb54jrSp_tV3_s,8
|
306
|
+
osbot_utils-1.56.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
307
|
+
osbot_utils-1.56.0.dist-info/METADATA,sha256=BkDSFwnvPd92g4ESDYOX5lwCnwWG8n5wBeDH33WfP60,1266
|
308
|
+
osbot_utils-1.56.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
309
|
+
osbot_utils-1.56.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|