osbot-utils 1.56.0__py3-none-any.whl → 1.57.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.
@@ -34,7 +34,20 @@ class Flow(Type_Safe):
34
34
  cformat : CFormat
35
35
  executed_tasks : typing.List
36
36
 
37
+ def add_flow_artifact(self, description=None, key=None, data=None, artifact_type=None): # todo: figure out how to make this work since at the moment most are showing an unknown type
38
+ result_data = dict(flow_run_id = self.flow_id,
39
+ description = description or 'description' ,
40
+ key = key or 'an-artifact-key' ,
41
+ data = data or {"link": "https://www.google.com", "link_text": "link to Google"}, # test data to see if it worksw
42
+ type = artifact_type or "link" ) # type clashed with built-in type
37
43
 
44
+ flow_events.on__new_artifact(self, result_data )
45
+
46
+ def add_flow_result(self, key, description):
47
+ result_data = dict(flow_run_id = self.flow_id,
48
+ key = key ,
49
+ description = description )
50
+ flow_events.on__new_result(self, result_data )
38
51
 
39
52
  def config_logger(self):
40
53
  with self.logger as _:
@@ -70,15 +83,11 @@ class Flow(Type_Safe):
70
83
  if self.flow_config.log_to_memory:
71
84
  self.captured_exec_logs = self.log_messages_with_colors()
72
85
  self.logger.remove_memory_logger() # todo: move to method that does post-execute tasks
86
+ if self.flow_return_value:
87
+ self.add_flow_result(key = 'flow-return-value', description=f'{self.flow_return_value}')
73
88
  flow_events.on__flow__stop(self)
74
89
  return self
75
90
 
76
- def f__flow_id(self):
77
- return self.cformat.green(self.flow_id)
78
-
79
- def f__flow_name(self):
80
- return self.cformat.blue(self.flow_name)
81
-
82
91
  def captured_logs(self):
83
92
  return ansis_to_texts(self.captured_exec_logs)
84
93
 
@@ -93,6 +102,13 @@ class Flow(Type_Safe):
93
102
  else:
94
103
  self.flow_return_value = self.flow_target(*self.flow_args, **self.flow_kwargs) # if the flow is sync, just execute the flow target
95
104
 
105
+ def f__flow_id(self):
106
+ return self.cformat.green(self.flow_id)
107
+
108
+ def f__flow_name(self):
109
+ return self.cformat.blue(self.flow_name)
110
+
111
+
96
112
  def log_captured_stdout(self, stdout):
97
113
  for line in stdout.value().splitlines():
98
114
  if line:
@@ -27,6 +27,14 @@ class Flow_Events(Type_Safe):
27
27
  flow_event = Flow__Event(event_type=Flow__Event_Type.FLOW_MESSAGE, event_source=flow, event_data=event_data)
28
28
  self.raise_event(flow_event)
29
29
 
30
+ def on__new_artifact(self, flow, result_data):
31
+ flow_event = Flow__Event(event_type=Flow__Event_Type.NEW_ARTIFACT , event_source=flow, event_data=result_data)
32
+ self.raise_event(flow_event)
33
+
34
+ def on__new_result(self, flow, result_data):
35
+ flow_event = Flow__Event(event_type=Flow__Event_Type.NEW_RESULT , event_source=flow, event_data=result_data)
36
+ self.raise_event(flow_event)
37
+
30
38
  def on__task__start(self, task):
31
39
  flow_event = Flow__Event(event_type=Flow__Event_Type.TASK_START, event_source=task)
32
40
  self.raise_event(flow_event)
@@ -4,5 +4,7 @@ class Flow__Event_Type(Type_Safe):
4
4
  FLOW_MESSAGE: str = 'flow_message'
5
5
  FLOW_START : str = 'flow_start'
6
6
  FLOW_STOP : str = 'flow_stop'
7
+ NEW_ARTIFACT: str = 'new_artifact'
8
+ NEW_RESULT : str = 'new_result'
7
9
  TASK_START : str = 'task_start'
8
10
  TASK_STOP : str = 'task_stop'
osbot_utils/version CHANGED
@@ -1 +1 @@
1
- v1.56.0
1
+ v1.57.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: osbot_utils
3
- Version: 1.56.0
3
+ Version: 1.57.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
- ![Current Release](https://img.shields.io/badge/release-v1.56.0-blue)
25
+ ![Current Release](https://img.shields.io/badge/release-v1.57.0-blue)
26
26
  [![codecov](https://codecov.io/gh/owasp-sbot/OSBot-Utils/graph/badge.svg?token=GNVW0COX1N)](https://codecov.io/gh/owasp-sbot/OSBot-Utils)
27
27
 
28
28
 
@@ -154,8 +154,8 @@ 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=iO-4B0uIv31n66INoXpodoYss5eEsOEGu3LDFevkKQ8,7626
158
- osbot_utils/helpers/flows/Flow__Events.py,sha256=Gy5P130Bz5RtRV7NaV5Iss4wZrjLdVxaps1r02kQLCk,2123
157
+ osbot_utils/helpers/flows/Flow.py,sha256=EpREDUue3OF7KkX2ocGfUT5NGUmqNPzpSv5qFo0rXXY,8914
158
+ osbot_utils/helpers/flows/Flow__Events.py,sha256=u9GzVNd08Hr49ZRIpoRDhwJnAHUFB-XzFzmNw-r3_Q0,2535
159
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
@@ -163,7 +163,7 @@ osbot_utils/helpers/flows/decorators/flow.py,sha256=LUL7bHjZ_lC3QoTNh-KsDZHzjE2u
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=YSOjzcRjCHmF_AIoWiccoNH0EAmNdTSmObXYB5exTGw,277
166
+ osbot_utils/helpers/flows/models/Flow__Event_Type.py,sha256=vPDW-7D96Sjn0X6-V1Xgp4ytQ58SgSbX0kyflXNwmK4,353
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=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,,
305
+ osbot_utils/version,sha256=-M9mlli4O3LFg1u4RXSB9HGXK1Oa4UQlFSszYzJo7pc,8
306
+ osbot_utils-1.57.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
307
+ osbot_utils-1.57.0.dist-info/METADATA,sha256=Y_i8XIlAw6apKcCZkM-wT8Dm-gcCsOkMIfwTUrX6w1I,1266
308
+ osbot_utils-1.57.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
309
+ osbot_utils-1.57.0.dist-info/RECORD,,