holado 0.2.3__py3-none-any.whl → 0.2.5__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.

Potentially problematic release.


This version of holado might be problematic. Click here for more details.

Files changed (30) hide show
  1. holado/__init__.py +61 -23
  2. holado/common/context/service_manager.py +10 -2
  3. holado/common/context/session_context.py +43 -12
  4. holado/common/handlers/object.py +12 -4
  5. holado/holado_config.py +1 -0
  6. {holado-0.2.3.dist-info → holado-0.2.5.dist-info}/METADATA +1 -1
  7. {holado-0.2.3.dist-info → holado-0.2.5.dist-info}/RECORD +30 -30
  8. holado_ais/ais/ais_messages.py +140 -139
  9. holado_core/common/tools/path_manager.py +8 -4
  10. holado_grpc/api/rpc/grpc_client.py +122 -118
  11. holado_helper/docker/logging.conf +3 -1
  12. holado_helper/docker/run_holado_test_nonreg_in_docker.sh +28 -28
  13. holado_helper/docker/run_terminal_in_docker-with_docker_control.sh +27 -27
  14. holado_helper/docker/run_terminal_in_docker.sh +26 -26
  15. holado_helper/script/initialize_script.py +5 -5
  16. holado_logging/__init__.py +7 -9
  17. holado_logging/common/logging/holado_logger.py +2 -2
  18. holado_logging/common/logging/log_config.py +152 -127
  19. holado_logging/common/logging/log_manager.py +20 -19
  20. holado_multitask/multitasking/multitask_manager.py +1 -1
  21. holado_multitask/multithreading/thread.py +8 -4
  22. holado_protobuf/__init__.py +1 -1
  23. holado_protobuf/ipc/protobuf/protobuf_messages.py +821 -818
  24. holado_rabbitmq/tools/rabbitmq/rabbitmq_client.py +1 -2
  25. holado_test/behave/independant_runner.py +3 -5
  26. holado_test/scenario/step_tools.py +2 -0
  27. test_holado/environment.py +1 -1
  28. test_holado/logging.conf +3 -1
  29. {holado-0.2.3.dist-info → holado-0.2.5.dist-info}/WHEEL +0 -0
  30. {holado-0.2.3.dist-info → holado-0.2.5.dist-info}/licenses/LICENSE +0 -0
holado/__init__.py CHANGED
@@ -27,7 +27,7 @@ except:
27
27
  with_behave = False
28
28
 
29
29
  logger = None
30
-
30
+ __initialized = False
31
31
 
32
32
  def __initialize_holado_loggers():
33
33
  global logger
@@ -38,27 +38,29 @@ def __initialize_holado_loggers():
38
38
 
39
39
 
40
40
 
41
- def _initialize_logging(initialize_logging=True, logging_config_file=None, log_level=None, log_on_console=False, log_in_file=True):
41
+ def _initialize_logging(use_holado_logger=True, logging_config_file_path=None, log_level=None, log_on_console=False, log_in_file=True):
42
42
  # print_imported_modules("[initialize]")
43
43
  import holado_logging
44
44
  # print_imported_modules("[after import holado_logging]")
45
45
 
46
46
  # Configure logging module
47
- holado_logging.configure(initialize_logging=initialize_logging, log_level=log_level)
47
+ holado_logging.configure(use_holado_logger=use_holado_logger, logging_config_file_path=logging_config_file_path, log_level=log_level, log_on_console=log_on_console, log_in_file=log_in_file)
48
48
  # print_imported_modules("[after import holado_logging]")
49
49
 
50
50
  # Initialize holado loggers
51
51
  __initialize_holado_loggers()
52
52
 
53
- # Register LogManager in SessionContext
54
- holado_logging.register()
55
-
56
- # Configure log manager
53
+ # Create session context
57
54
  from holado.common.context.session_context import SessionContext
58
- SessionContext.instance().log_manager.on_console = log_on_console
59
- SessionContext.instance().log_manager.in_file = log_in_file
60
- if logging_config_file is not None:
61
- SessionContext.instance().log_manager.set_config_file_path(logging_config_file, update_default_level=False)
55
+ if SessionContext.has_instance():
56
+ from holado_core.common.exceptions.technical_exception import TechnicalException
57
+ raise TechnicalException(f"Session context was initialized to early (before logging configuration)")
58
+ SessionContext.instance()
59
+
60
+ # Initialize log manager and register it in session context
61
+ holado_logging.initialize_and_register()
62
+
63
+ # Set whole logging configuration
62
64
  SessionContext.instance().log_manager.set_config()
63
65
 
64
66
  def change_logging_config(log_level=None, log_on_console=False, log_in_file=True):
@@ -67,52 +69,81 @@ def change_logging_config(log_level=None, log_on_console=False, log_in_file=True
67
69
  SessionContext.instance().log_manager.on_console = log_on_console
68
70
  SessionContext.instance().log_manager.in_file = log_in_file
69
71
  SessionContext.instance().log_manager.set_config()
70
-
71
- def initialize(TSessionContext=None, initialize_logging=True, logging_config_file=None,
72
+
73
+
74
+ def initialize_minimal():
75
+ # initialize(TSessionContext=None, use_holado_logger=False, logging_config_file_path=None,
76
+ # log_level=None, log_on_console=True, log_in_file=False,
77
+ # session_kwargs={'with_session_path':False},
78
+ # garbage_collector_periodicity=None)
79
+ initialize(TSessionContext=None, use_holado_logger=True, logging_config_file_path=None,
80
+ log_level=None, log_on_console=True, log_in_file=False,
81
+ garbage_collector_periodicity=None)
82
+
83
+ def initialize(TSessionContext=None, use_holado_logger=True, logging_config_file_path=None,
72
84
  log_level=None, log_on_console=False, log_in_file=True, session_kwargs=None,
73
85
  garbage_collector_periodicity=default_value):
86
+ global __initialized
87
+ if __initialized:
88
+ from holado_core.common.exceptions.technical_exception import TechnicalException
89
+ raise TechnicalException(f"HolAdo was already initialized")
90
+
74
91
  from holado_core.common.tools.tools import Tools
75
92
 
76
93
  if session_kwargs is None:
77
94
  session_kwargs = {}
78
95
  with_session_path = session_kwargs.get("with_session_path", True)
79
96
 
97
+ # Reset session context before initializing logging
98
+ # Note: Session context must not be created before logging initialization
99
+ from holado.common.context.session_context import SessionContext
100
+ SessionContext._reset_instance()
80
101
  if TSessionContext is not None:
81
102
  if isinstance(TSessionContext, str):
82
103
  module_name, class_type = TSessionContext.rsplit('.', maxsplit=1)
83
104
  module = importlib.import_module(module_name)
84
105
  TSessionContext = getattr(module, class_type)
85
-
86
- from holado.common.context.session_context import SessionContext
106
+
87
107
  SessionContext.TSessionContext = TSessionContext
88
108
 
89
109
  # Initialize logging
90
- _initialize_logging(initialize_logging=initialize_logging, logging_config_file=logging_config_file,
110
+ _initialize_logging(use_holado_logger=use_holado_logger, logging_config_file_path=logging_config_file_path,
91
111
  log_level=log_level, log_on_console=log_on_console, log_in_file=log_in_file and with_session_path)
92
112
  if Tools.do_log(logger, logging.DEBUG):
93
113
  logger.debug("Configured logging")
94
114
 
95
115
  if Tools.do_log(logger, logging.DEBUG):
96
116
  logger.debug("Importing HolAdo modules")
97
- import_modules(get_holado_module_names())
117
+ _import_modules(get_holado_module_names())
98
118
 
99
- initialize_session_context(session_kwargs)
119
+ _initialize_session_context(session_kwargs)
100
120
 
101
121
  # Initialize garbage collector
102
122
  if garbage_collector_periodicity is not None:
103
123
  GcManager.collect_periodically(garbage_collector_periodicity)
104
124
  logger.debug(f"Garbage collector is disabled, and collects are automatically done in a dedicated thread (periodicity: {GcManager.get_collect_periodicity()} s)")
105
125
 
106
- def initialize_for_script(TSessionContext=None, initialize_logging=True, logging_config_file=None, log_level=logging.WARNING, log_on_console=True, log_in_file=False, session_kwargs=None):
126
+ if with_behave:
127
+ # Register default behave parameter types
128
+ #TODO: make step tools a service
129
+ from holado_test.behave.scenario.behave_step_tools import BehaveStepTools
130
+ BehaveStepTools.register_default_types()
131
+
132
+ __initialized = True
133
+
134
+ def initialize_for_script(TSessionContext=None, use_holado_logger=True, logging_config_file_path=None,
135
+ log_level=logging.WARNING, log_on_console=True, log_in_file=False, session_kwargs=None,
136
+ garbage_collector_periodicity=None):
107
137
  if session_kwargs is None:
108
138
  session_kwargs={'with_session_path':log_in_file, 'raise_if_not_exist':False}
109
139
 
110
- initialize(TSessionContext=TSessionContext, initialize_logging=initialize_logging, logging_config_file=logging_config_file,
140
+ initialize(TSessionContext=TSessionContext, use_holado_logger=use_holado_logger, logging_config_file_path=logging_config_file_path,
111
141
  log_level=log_level, log_on_console=log_on_console, log_in_file=log_in_file,
112
- session_kwargs=session_kwargs )
142
+ session_kwargs=session_kwargs,
143
+ garbage_collector_periodicity=garbage_collector_periodicity )
113
144
 
114
145
 
115
- def initialize_session_context(session_kwargs=None):
146
+ def _initialize_session_context(session_kwargs=None):
116
147
  from holado_core.common.tools.tools import Tools
117
148
 
118
149
  if Tools.do_log(logger, logging.DEBUG):
@@ -138,7 +169,7 @@ def get_holado_module_names():
138
169
  lp = sorted(os.listdir(get_holado_src_path()))
139
170
  return [name for name in lp if name.startswith("holado_") and name not in ['holado_logging']]
140
171
 
141
- def import_modules(module_names):
172
+ def _import_modules(module_names):
142
173
  from holado_core.common.tools.tools import Tools
143
174
 
144
175
  imported_modules = __import_modules(module_names)
@@ -265,3 +296,10 @@ def print_imported_modules(prefix):
265
296
  # print(f"{prefix} globals modules: {globals_modules}")
266
297
 
267
298
 
299
+
300
+ # Process minimal initialization of HolAdo
301
+ # Note: Currently, initialization can be done only once, thus minimal initialization is commented.
302
+ # As a consequence, the call of an initialize method is mandatory
303
+ # initialize_minimal()
304
+
305
+
@@ -170,13 +170,21 @@ class ServiceManager(object):
170
170
  return context.get_object(name)
171
171
 
172
172
  def add_context_property(self, name, context_type, raise_if_service_exist=None):
173
- if raise_if_service_exist is None or raise_if_service_exist:
174
- self.__verify_service_doesnt_exist(name, context_type, raise_if_service_exist)
173
+ # Note: next lines are commented, to allow to set again the service in context type
174
+ # if raise_if_service_exist is None or raise_if_service_exist:
175
+ # self.__verify_service_doesnt_exist(name, context_type, raise_if_service_exist)
176
+ if hasattr(context_type, name):
177
+ logger.debug(f"Set again the property '{name}' in context type {context_type}")
175
178
 
176
179
  @property
177
180
  def context_service_property(self_context):
178
181
  return self._get_context_service(name, self_context)
179
182
  setattr(context_type, name, context_service_property)
183
+
184
+ @property
185
+ def context_has_service_property(self_context):
186
+ return self_context.has_object(name)
187
+ setattr(context_type, 'has_' + name, context_has_service_property)
180
188
 
181
189
  def add_shortcut_property_to_context_service(self, name, dst_type, context_type, raise_if_service_exist=None):
182
190
  from holado_multitask.multiprocessing.context.process_context import ProcessContext
@@ -18,6 +18,7 @@ import os.path
18
18
  from holado.common.context.context import Context
19
19
  from holado_core.common.tools.tools import Tools
20
20
  import threading
21
+ from holado.common.handlers.enums import ObjectStates
21
22
 
22
23
 
23
24
  logger = logging
@@ -32,16 +33,37 @@ class SessionContext(Context):
32
33
 
33
34
  # Singleton management
34
35
  __instance = None
36
+ __is_resetting_instance = False
35
37
 
36
38
  @staticmethod
37
39
  def instance() -> TSessionContext:
40
+ # Note: If session context istance is under reset, consider it is already None
41
+ if SessionContext.__is_resetting_instance:
42
+ return None
43
+
38
44
  if SessionContext.__instance is None:
39
45
  SessionContext.__instance = SessionContext.TSessionContext()
40
- # print(f"Created session context of type {SessionContext.TSessionContext}")
46
+ logger.debug(f"Created session context of type {SessionContext.TSessionContext}")
47
+ # logging.log(45, f"Created session context of type {SessionContext.TSessionContext}")
41
48
  # import traceback
42
- # print("".join(traceback.format_list(traceback.extract_stack())))
49
+ # logging.log(45, "".join(traceback.format_list(traceback.extract_stack())))
43
50
  return SessionContext.__instance
44
51
 
52
+ @staticmethod
53
+ def has_instance() -> bool:
54
+ if SessionContext.__is_resetting_instance:
55
+ return False
56
+ else:
57
+ return SessionContext.__instance is not None
58
+
59
+ @staticmethod
60
+ def _reset_instance():
61
+ if SessionContext.__instance is not None:
62
+ logger.debug(f"Resetting session context")
63
+ SessionContext.__is_resetting_instance = True
64
+ SessionContext.__instance = None
65
+ SessionContext.__is_resetting_instance = False
66
+ logger.debug(f"Reset of session context")
45
67
 
46
68
  def __init__(self, name="Session"):
47
69
  super().__init__(name)
@@ -55,12 +77,27 @@ class SessionContext(Context):
55
77
  self.__multitask_lock = threading.RLock()
56
78
  self.__multitask_step_lock = threading.RLock()
57
79
 
80
+ def __del__(self):
81
+ # Note: Override Object.__del__ since it supposes that SessionContext is initialized, whereas SessionContext is deleting
82
+ try:
83
+ if self.object_state in [ObjectStates.Deleting, ObjectStates.Deleted]:
84
+ return
85
+
86
+ self.delete_object()
87
+ except Exception as exc:
88
+ if "Python is likely shutting down" in str(exc):
89
+ # Simply return
90
+ return
91
+ else:
92
+ raise exc
93
+
58
94
  def _delete_object(self):
59
- logger.info(f"Delete session context - Interrupting and unregistering all threads...")
60
95
  # if Tools.do_log(logger, logging.DEBUG):
61
96
  # logger.debug("Interrupting and unregistering all threads for scenario [{}]".format(scenario.name))
62
- self.threads_manager.interrupt_all_threads(scope="Session")
63
- self.threads_manager.unregister_all_threads(scope="Session", keep_alive=False)
97
+ if self.has_threads_manager:
98
+ logger.info(f"Delete session context - Interrupting and unregistering all threads...")
99
+ self.threads_manager.interrupt_all_threads(scope="Session")
100
+ self.threads_manager.unregister_all_threads(scope="Session", keep_alive=False)
64
101
 
65
102
  # Delete session context
66
103
  logger.info(f"Delete session context - Deleting context objects...")
@@ -76,11 +113,6 @@ class SessionContext(Context):
76
113
 
77
114
  self.__with_session_path = session_kwargs.get("with_session_path", True)
78
115
 
79
- # Register default behave parameter types
80
- #TODO: make step tools a service
81
- from holado_test.behave.scenario.behave_step_tools import BehaveStepTools
82
- BehaveStepTools.register_default_types()
83
-
84
116
  # Create this thread context
85
117
  self.multitask_manager.get_thread_context()
86
118
 
@@ -122,14 +154,13 @@ class SessionContext(Context):
122
154
  name = "session_{}".format(datetime.now().strftime("%Y-%m-%d_%H-%M-%S"))
123
155
  report_path = self.path_manager.get_reports_path(name)
124
156
  logger.info(f"Reports location: {report_path}")
125
- # print(f"Reports location: {report_path}")
157
+ print(f"Reports location: {report_path}")
126
158
  self.report_manager.new_session(report_path)
127
159
 
128
160
  # Logging configuration
129
161
  if self.with_session_path and SessionContext.instance().log_manager.in_file:
130
162
  log_filename = os.path.join(report_path, "logs", "report.log")
131
163
  self.path_manager.makedirs(log_filename)
132
- SessionContext.instance().log_manager.on_console = False
133
164
  SessionContext.instance().log_manager.set_root_log_file(log_filename)
134
165
  SessionContext.instance().log_manager.set_config()
135
166
 
@@ -66,15 +66,23 @@ class DeleteableObject(Object):
66
66
 
67
67
  def __del__(self):
68
68
  try:
69
- from holado_multitask.multithreading.functionthreaded import FunctionThreaded
70
-
71
69
  if self.object_state in [ObjectStates.Deleting, ObjectStates.Deleted]:
72
70
  return
73
71
 
74
- # Note: Garbage collector default mecanism is incompatible with custom object finalizers (cf GcManager.Method __del__ is called by garbage collector. This call can be done in any thread at any moment.
75
- if GcManager.is_collect_threaded():
72
+ if logger.isEnabledFor(logging.DEBUG):
73
+ logger.debug(f"Deleting object of ID {id(self)} and type {type(self)}")
74
+ if logger.isEnabledFor(logging.TRACE): # @UndefinedVariable
75
+ import traceback
76
+ logger.trace("".join(traceback.format_list(traceback.extract_stack())))
77
+
78
+ # Notes:
79
+ # - Garbage collector default mecanism is incompatible with custom object finalizers (cf GcManager.Method __del__ is called by garbage collector. This call can be done in any thread at any moment.
80
+ # - When SessionContext is under deletion, delete any object by thread is not possible
81
+ from holado.common.context.session_context import SessionContext
82
+ if GcManager.is_collect_threaded() or isinstance(self, SessionContext.TSessionContext) or not SessionContext.has_instance():
76
83
  self.__delete()
77
84
  else:
85
+ from holado_multitask.multithreading.functionthreaded import FunctionThreaded
78
86
  func = FunctionThreaded(self.__delete, name=f"delete object '{self.name}'", register_thread=False)
79
87
  func.start()
80
88
  func.join(timeout=30, raise_if_still_alive=False) # timeout of 30s to limit deadlock impact ; raise to False since exceptions are omitted in gc collect context
holado/holado_config.py CHANGED
@@ -16,6 +16,7 @@ class Config(object):
16
16
  """HolAdo project configuration"""
17
17
 
18
18
  # Timeouts
19
+ session_timeout_seconds = 7 * 24 * 3600 # Session timeout is by default to 7 days
19
20
  timeout_seconds = 240 # Default timeout
20
21
  join_timeout_seconds = 1800 # Long timeout used when a join should stop without deadlock. When this timeout is reached, a TimeoutTechnicalException is raised
21
22
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: holado
3
- Version: 0.2.3
3
+ Version: 0.2.5
4
4
  Summary: HolAdo framework
5
5
  Project-URL: Homepage, https://gitlab.com/holado_framework/python
6
6
  Project-URL: Issues, https://gitlab.com/holado_framework/python/-/issues
@@ -1,20 +1,20 @@
1
- holado/__init__.py,sha256=g9ZckLue7kTZVEpX2T4kteePc3N1alkGVqoRqvkpKYA,12655
2
- holado/holado_config.py,sha256=v6qmTYcO50Gjtq7jwpcVp79HMeWuf2wZCGLlKDaDFc8,2369
1
+ holado/__init__.py,sha256=vZmStYCsHdPOPrD-9qElAOHwiodLbN3iOldeVi7IEBE,14455
2
+ holado/holado_config.py,sha256=-HPwBdEcdG1kLfqSq4bH_esXbndVkNX4WW0VSpqoxu4,2459
3
3
  holado/common/__init__.py,sha256=ZjXM-FRQgnfzRNXqcvJOGewDHVRR-U5-ugStSs8U2Xs,1525
4
4
  holado/common/context/__init__.py,sha256=3jJBLm8myrYF9jbdV1EhIA6BtnlmjX33eeoDpTzwmLA,1604
5
5
  holado/common/context/context.py,sha256=XPrdZw_9j096AI9EZwMT4xVd58c1ZH6VGxT5Yb-qYYU,6660
6
- holado/common/context/service_manager.py,sha256=HBmeyzeerkQX-IUvctcXJQEOtPWZ8lsPZhTy9EZjPXo,13652
7
- holado/common/context/session_context.py,sha256=ejCxO-q_tD2RwI0AExpd9wzVbE8Q9K_ztZ5_BGPrLL8,21280
6
+ holado/common/context/service_manager.py,sha256=LaCn8ukE1aqJynmwoexAYj5hCkdb_F3hXRtUBGqorUE,14087
7
+ holado/common/context/session_context.py,sha256=jyCXydCk7RnTf35MFcqaEflOsjX5eK2U33uITeGqP6U,22477
8
8
  holado/common/handlers/__init__.py,sha256=d0KDUpaAAw1eBXyX08gaRh4RECnJlXjYQ0TcU-Ndicc,1372
9
9
  holado/common/handlers/enums.py,sha256=ieqKVoukEiNyfE3KrKmMOImdbFS1ocUMud8JHe2xNLs,1662
10
- holado/common/handlers/object.py,sha256=SACbrBveQUebE4DQO0VaCMFNGgAKOfFnLy2RGQF4IFg,5745
10
+ holado/common/handlers/object.py,sha256=zAjJOClRmueziEPPUXQT61tZd4cdUjvjOXWdtEnJWqg,6369
11
11
  holado/common/handlers/undefined.py,sha256=a1Jq2yrRd0UjJqZndj8ZTLpg5e6FlFn3Cc5uMfkbnBM,1859
12
12
  holado/common/tools/__init__.py,sha256=z-T6zX_tOVkJjniTDA0KSKmdtosjfEhjaNa1-3g8wTs,1374
13
13
  holado/common/tools/gc_manager.py,sha256=TjQg7MisGRhxuiQ22hB3IuqNhnWCVEWpU253-rOjR0w,7611
14
14
  holado_ais/__init__.py,sha256=Mudcgu_7p1hBDBs6LpSz757H4haB0yLHgT70sznG82c,1807
15
15
  holado_ais/ais/MaritimeIdentificationDigits.csv,sha256=r-uHt4wOvxlbA26af9e-N3BKbuiMf6ia3PN0ZGfYk2A,8547
16
16
  holado_ais/ais/ais_manager.py,sha256=QvN94JoUBbSXT08HABl2FNsAVOM-YCmQO5tN9COg6Rc,6496
17
- holado_ais/ais/ais_messages.py,sha256=YnOW4Q2y2JKmjmw-WVBMAiPjFAaMWfI57BIrlxnpEPU,10342
17
+ holado_ais/ais/ais_messages.py,sha256=Fh35mDS1mcZcH1XKmrAxxgfnGq-xp6Vgapc_C0dK_xU,10899
18
18
  holado_ais/ais/ais_payload.py,sha256=mdOa_4JIbkFLK4_KUmQF5jUt1nLxvZhmIcqK8i-YY6w,1791
19
19
  holado_ais/ais/enums.py,sha256=bsqfJVg65fWiJwL_VlSKwKgTY0pLoDcI4T06aEOcQnw,1108
20
20
  holado_ais/ais/patch_pyais.py,sha256=ViRXz3__FXm-VBwD5C4bQ_gGvujCJuJSOoqewkFM6GI,54835
@@ -125,7 +125,7 @@ holado_core/common/tables/comparators/table_with_header_comparator.py,sha256=j7B
125
125
  holado_core/common/tables/converters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
126
  holado_core/common/tables/converters/table_converter.py,sha256=lFt1NKFo5aMPMpKQi_krBdVYUlm8zEg3JbDOy4bwWyA,8200
127
127
  holado_core/common/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
- holado_core/common/tools/path_manager.py,sha256=llv7bceIV3RpNnA3ka_TwbLnjpxm20_wS3M9FcabVgA,8884
128
+ holado_core/common/tools/path_manager.py,sha256=dgdm8wAaVubh-krpquCXXeGUTtGqRKDpuEKmvhA9dKA,8899
129
129
  holado_core/common/tools/string_tools.py,sha256=j6ErNwpz19AXmbuvMk1HakX0EXfOkgu3s6bVohdz1g8,5365
130
130
  holado_core/common/tools/tools.py,sha256=mRw-i4xNeBTb0GFBPzv54s7RyKzY0Ok0Oor8tgARmtw,8112
131
131
  holado_core/common/tools/comparators/comparator.py,sha256=K4LcXIRORHX5vkmDibI6P6Bu1L-6Xezb63ZzzOMKrWY,6812
@@ -175,7 +175,7 @@ holado_docker/tools/docker_controler/proto/generated/docker_controler_pb2.py,sha
175
175
  holado_docker/tools/docker_controler/proto/generated/docker_controler_pb2_grpc.py,sha256=r56UidBcB4jjxGWEsTY08_71Iz0E6pI2b5LR46qvoPc,9295
176
176
  holado_grpc/__init__.py,sha256=SaAz66iSTqMw7oIDrj94rGcO8W7BgS15B78p--OogHc,2266
177
177
  holado_grpc/api/rpc/TODO.txt,sha256=uWZT-WtrGuWbiOVU8-6xNiNyx_kKx-htM691zprLjh0,130
178
- holado_grpc/api/rpc/grpc_client.py,sha256=DRseLDt0JJfETYTZwF6PMrq0p_MPUxpgXPR2eE99keY,8408
178
+ holado_grpc/api/rpc/grpc_client.py,sha256=sCsNzwHY8QAXvcqMd-Wt-gXy3VKrsqVbB8ncBf_EcRA,8990
179
179
  holado_grpc/api/rpc/grpc_manager.py,sha256=v3e7b1JCNlUoCnWUPgB9aWKde-AbseRCZAxFwz5gPN8,4115
180
180
  holado_grpc/ipc/rpc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
181
181
  holado_grpc/ipc/rpc/grpc_compiler.py,sha256=f_v1Rj6gDpLSCpkN8a6Jn4w9d826JqNRII16HSPPrWA,2477
@@ -188,10 +188,10 @@ holado_helper/__init__.py,sha256=U5rV9zTT4OFE4MU2yiOIDlAmwQ_NO2CB0Adih2sn8eQ,178
188
188
  holado_helper/debug/README.txt,sha256=kpsK1Ii5-t5pJCL9ChcEbZYyYTKt34fjKdiMC5DGOjc,2045
189
189
  holado_helper/debug/memory/memory_profiler.py,sha256=Qu05N3uzntqm5S5XJMPdG9X0EFdagZS5poNQJPgZ-Iw,4659
190
190
  holado_helper/docker/init_user.sh,sha256=vac-OUgsbSTIuO7MK4mpbtRZNGqHbNJGNm3Hk3W3FWQ,913
191
- holado_helper/docker/logging.conf,sha256=cUeRRclVzgVYU084UOQBeEZiGHYnyIQjnFzSrHPvejE,1153
192
- holado_helper/docker/run_holado_test_nonreg_in_docker.sh,sha256=RApxBnHmPYP_Io_Xj9ZlutwUohbwDZmlC3mKm38vPS4,4846
193
- holado_helper/docker/run_terminal_in_docker-with_docker_control.sh,sha256=lIBKpSy2VM-7MxBlsAGMkfLMUEopg-e75EPmF-8ye2Q,3665
194
- holado_helper/docker/run_terminal_in_docker.sh,sha256=aWVeDkjd0iQ0WopHb4WjbLPUM0KJ54XAMlBx3N_A6E0,3532
191
+ holado_helper/docker/logging.conf,sha256=PKFEwVhQriaaHZMnU3t5I9fGxuM1HFxUBRJ0NZVH-KE,1186
192
+ holado_helper/docker/run_holado_test_nonreg_in_docker.sh,sha256=_ndFQXg4gBE3Zs6TbLmF15PM797i6onOK89OVENWORM,4696
193
+ holado_helper/docker/run_terminal_in_docker-with_docker_control.sh,sha256=EIKqew9xOAeA8KCEbz4DDSDM8s27g3FAT1j3sr2uWlI,3525
194
+ holado_helper/docker/run_terminal_in_docker.sh,sha256=GOOhbo9cEjw5Pp5BlhbzZm2U5XqZoqhHcVjlUwdV4WA,3397
195
195
  holado_helper/holado_module_template/__init__.py,sha256=KpbIi2cm1BYZgoWf0LuhE0ei3ZCE15UcUtjC1cSA55M,1653
196
196
  holado_helper/holado_module_template/test/behave/steps/__init__.py,sha256=BHp8TYE_X4lWn4B8A51nXSYaJlczuiDVJLcKMy7p0Lw,1267
197
197
  holado_helper/holado_module_template/test/behave/steps/private/__init__.py,sha256=BHp8TYE_X4lWn4B8A51nXSYaJlczuiDVJLcKMy7p0Lw,1267
@@ -200,7 +200,7 @@ holado_helper/script/action_script.py,sha256=6yhb7M9aGe6jbqA4APa2rc3zC3INXvNTZjp
200
200
  holado_helper/script/any_action_script.py,sha256=6P1bG3UoSO0JVS6kWaDGd4jP7MN-foiThRcVitW3Hjg,7901
201
201
  holado_helper/script/behave_action_script.py,sha256=DwIRdHrRBM9qcLxoSx0vtyy3RX308g8bRlLT-UAqimM,5148
202
202
  holado_helper/script/csv_action_script.py,sha256=mNoy9AS99uh57GCh5BPmxlp-hVql7S-ZPAQD_Kit3gA,7259
203
- holado_helper/script/initialize_script.py,sha256=UymaizmfAHsbgebz03xc03dBc862IpTsOEAq7HMx-3A,5032
203
+ holado_helper/script/initialize_script.py,sha256=v77lIoYeL3NR73_NBAr1OLWKPVixPW9m6gyLWLg8Ef4,5062
204
204
  holado_helper/script/input_output_script.py,sha256=sRldfxO58KCjr5Zh_i-3MXy8zPPWDnNzZDLiwTKuBdM,6039
205
205
  holado_helper/script/job.py,sha256=hb7WenhQP1qFMsxWGMsgbA-Z-zixynjRWjmZdx9wHEI,4435
206
206
  holado_helper/script/json_action_script.py,sha256=angdSt6e385lKwYSGJBqytVb4sp3-HjMKziVEFSz6ro,5147
@@ -217,23 +217,23 @@ holado_keycloak/tests/behave/steps/__init__.py,sha256=NBE4L-am7jgPiJxcHRlZ4PQRjJ
217
217
  holado_keycloak/tests/behave/steps/tools/keycloak_client_steps.py,sha256=Ku3G7GAmmX9Wzsv5ihj1tiPWae8gQDjpxYieMim6CrQ,3005
218
218
  holado_keycloak/tools/keycloak/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
219
219
  holado_keycloak/tools/keycloak/keycloak_client.py,sha256=QXAsf9rF0pKq1dHhXeZFZOxuEg_1uzp6vqXnwWDnegg,4019
220
- holado_logging/__init__.py,sha256=i2DNtAbzjRHnxIgo1W1xRqJgtaGUcDahwsmCAfCxeLQ,1951
221
- holado_logging/common/logging/holado_logger.py,sha256=msHjaL1At-ijKk0yYVn8z-3KEZulaT1Dt4B-ZC1Rm3k,3352
222
- holado_logging/common/logging/log_config.py,sha256=UAKWUZYK-N__VDhhqwwW_J6Zp1K8qDuLHNnpVZAvBg4,5592
223
- holado_logging/common/logging/log_manager.py,sha256=U3KMa689V7tc9LlRFRcwTJIbZCnH3S7qdvcUT-fKhCI,13683
220
+ holado_logging/__init__.py,sha256=EMmwm_jHe739gftVCmf6lb_dT20IVseVg0bbGGADn8w,2176
221
+ holado_logging/common/logging/holado_logger.py,sha256=vlU_q5jYD9Qf-xWFBogeNiIR9qpRri-68OfMofgbhy4,3320
222
+ holado_logging/common/logging/log_config.py,sha256=aSq1PUgQZXsomhmCmJLdVNQrJjkRNaisjVLVbon9dnM,6549
223
+ holado_logging/common/logging/log_manager.py,sha256=gq92IAfnKEX-GKUHexNVgEI0UUrUdiWaC5GLcSTAaUE,13604
224
224
  holado_multitask/__init__.py,sha256=EwuwiBmp8ICbPZ8CKPju8tHRTh2rG68PB_wGXczY9rw,2143
225
225
  holado_multitask/multiprocessing/function_process.py,sha256=HFXjpnzWed5J1tjmWMQyRx8AGcY6D1laegHqZ5j1dco,4550
226
226
  holado_multitask/multiprocessing/periodic_function_process.py,sha256=ubbdm2XSwjBGuDDXWX2b-lo_Abkivh4Blj9C8axsa4o,6779
227
227
  holado_multitask/multiprocessing/process.py,sha256=pSzeOXJpHF6poxT6oXx7g-2CcSm-EjVjSdZ4bIO3TD4,8591
228
228
  holado_multitask/multiprocessing/processesmanager.py,sha256=WCWD-Zo5adBNKz-X34VhD3QifrlgAIaLzU-fVsQKtCs,5905
229
229
  holado_multitask/multiprocessing/context/process_context.py,sha256=UADxmma8f5tW6etJz7kvrfDdeBOrFxNYCieRev0hFJY,1709
230
- holado_multitask/multitasking/multitask_manager.py,sha256=i1W00Sgy0tTmddN9jDzKfwB51F0-8MFxZ3E6lsu8kUI,21386
230
+ holado_multitask/multitasking/multitask_manager.py,sha256=uXd16gZvcrbh1tPh_v_Au97Ysz3tvu14k2H3AzBVPy8,21385
231
231
  holado_multitask/multithreading/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
232
232
  holado_multitask/multithreading/functionthreaded.py,sha256=gCLVMrxI18dKDNOQ9szH4hEKk_PQSWSuoO4enEEORzE,5570
233
233
  holado_multitask/multithreading/loopfunctionthreaded.py,sha256=5kfONDR76uuT1bTJrAtnfSncHwvVvzl8jagWUvTduHw,2492
234
234
  holado_multitask/multithreading/loopthread.py,sha256=4II3d22PRf891De8dd9P4WjuwI52KrTDRTSTPzzvso8,4265
235
235
  holado_multitask/multithreading/periodicfunctionthreaded.py,sha256=PCBKpbOIThNGLq12rOONAh2ECxEOmaOb6Aqj2Ob2XY8,6926
236
- holado_multitask/multithreading/thread.py,sha256=HGVg_ffMAf7Zqswc88yu0WoyaLEF6q-_PYQNkuZVdYo,8351
236
+ holado_multitask/multithreading/thread.py,sha256=4zd5f3RFHPINhQzW6KUA4945npabKoOU7kAEIhdoOpA,8901
237
237
  holado_multitask/multithreading/threadsmanager.py,sha256=5a-kV8t0-lwL6a9vCLL3_Oi-i67epcqOWWBz6vIJFEU,8462
238
238
  holado_multitask/multithreading/timer.py,sha256=RIU9Cxm3CYVVGqtch2fAHNYnXOziq4PhZOu4LnKsE_o,2528
239
239
  holado_multitask/multithreading/context/thread_context.py,sha256=pGcySQnqx92NIaVT64Ra3gIV7BpgBFfEy3N8PYTCOlI,3570
@@ -243,11 +243,11 @@ holado_multitask/multithreading/reflection/traceback.py,sha256=Bnq-Xp0aA3D4kYtb7
243
243
  holado_multitask/tests/behave/steps/__init__.py,sha256=H3pe2qGVRV8gj5hLg9xvQM_S0u3UZH_3X3mSwvkAgH8,1319
244
244
  holado_multitask/tests/behave/steps/multiprocessing_steps.py,sha256=SgDBUpU_j7NjPS-HRZUo7fhE4ukMYa8MuQhjNhvX7fM,7441
245
245
  holado_multitask/tests/behave/steps/multithreading_steps.py,sha256=ZiPifzvN_L9vfY5xu2yqX8T-XLurX4TWT4-uXD9P0wI,6827
246
- holado_protobuf/__init__.py,sha256=PSwSxgwuq5bQzX-1OVUnOB9KiLeq435afgyPqsWugUM,3487
246
+ holado_protobuf/__init__.py,sha256=PsfsVCEC663IoDbDGyAjRUnOzXXSammPd9MH4nkOp28,3491
247
247
  holado_protobuf/ipc/protobuf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
248
248
  holado_protobuf/ipc/protobuf/protobuf_compiler.py,sha256=RIHyjsLpgv6jwsIz4hXUStTnn_TGwFL3LOgrzxKhEOw,6349
249
249
  holado_protobuf/ipc/protobuf/protobuf_converter.py,sha256=L3SAhBC3L5ghcXFD9Q9nHodPb3aP4bBd6nB7k9soHJ4,8995
250
- holado_protobuf/ipc/protobuf/protobuf_messages.py,sha256=9jBSQDiJVj_md-lwmAALD94ThaAckCPp2JJpWaN7cGI,58056
250
+ holado_protobuf/ipc/protobuf/protobuf_messages.py,sha256=ENWbNLg-JicsMLeV1mz3jrfGU3u3z_KTG4EHh9p-WYI,61684
251
251
  holado_protobuf/ipc/protobuf/protobuf_modifier.py,sha256=TZUfUYJd2nPoDYw3GXaGy5GLp7YwG-bqJFZ6Ep1mNLQ,3271
252
252
  holado_protobuf/ipc/protobuf/abstracts/type.py,sha256=xr6CvHTJJQBDKtpPdOlUJyWjdjbHsm5uPHa3eOZlvLQ,2234
253
253
  holado_protobuf/ipc/protobuf/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -296,7 +296,7 @@ holado_rabbitmq/tests/behave/steps/__init__.py,sha256=l-VWY2Qv9f-9ZoPmWjUmeurF8k
296
296
  holado_rabbitmq/tests/behave/steps/tools/rabbitmq_client_steps.py,sha256=H5_r6LKaw_ElmmjcghZMT5KQInoJrdYNOtATh8GG3MQ,28833
297
297
  holado_rabbitmq/tests/behave/steps/tools/rabbitmq_server_steps.py,sha256=35cXpKCuqg827dpf22rjmD4dJeXUnfOEN1cFkUr9P7Q,3060
298
298
  holado_rabbitmq/tools/rabbitmq/rabbitmq_blocking_client.py,sha256=ABv8GlwdZ_lvJQswL1Yz9kO6C7nXIKv4BSNb0JiByFo,15116
299
- holado_rabbitmq/tools/rabbitmq/rabbitmq_client.py,sha256=PJXw27KmeDOsB8ffLkDTUbdGRuM72hBfyJ6g7Q4MmRo,29750
299
+ holado_rabbitmq/tools/rabbitmq/rabbitmq_client.py,sha256=ChKiC5C4i00tW6tn2Pw70g6P4mXG-xHtB5UlmULQMro,29723
300
300
  holado_rabbitmq/tools/rabbitmq/rabbitmq_manager.py,sha256=lCbbow3qFNhLNMzFHKEKhsaO4GmAH5DPYXwcjIittkA,9021
301
301
  holado_rabbitmq/tools/rabbitmq/rabbitmq_select_client.py,sha256=urWn9A8XZqpAAtbvRZ-YUGVbOX_1Y0uSBA2lHGqJxLA,21039
302
302
  holado_rabbitmq/tools/rabbitmq/rabbitmq_server.py,sha256=FW8iKAHm0I78bHQEbRk4rl0dtCmv4dvAe5BY_HfOQVM,1613
@@ -404,14 +404,14 @@ holado_test/behave/behave.py,sha256=IiqT_F45C-xVY2T8sKDPV7NsFCiGNzb8xpoTaXD-PXg,
404
404
  holado_test/behave/behave_environment.py,sha256=T0HNMlSZAyzcnMB76VQtDo9zFiICzPMDGRa2xt1JCJA,5678
405
405
  holado_test/behave/behave_function.py,sha256=2jDZIIijgQegWHmuzX1DlqRzs4utGjK1OeoucSeCTdg,1691
406
406
  holado_test/behave/behave_manager.py,sha256=TEAfPgBQQONFn_l0s7gm7gDgWU0EejvuaPuFApoY_jY,26965
407
- holado_test/behave/independant_runner.py,sha256=_E5Zmr4z-FVd3yZkH8lrpBRe6T0-9QV9e6y_ani0w8U,3166
407
+ holado_test/behave/independant_runner.py,sha256=QR_IS-qkK_x2FTryb2gRQrqyBU3YUgKqsaIL2xwXPNQ,3189
408
408
  holado_test/behave/scenario/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
409
409
  holado_test/behave/scenario/behave_step_tools.py,sha256=apMS8nvdY-vbXsUIw1mVR4wOy2xWHMOCPJ1QiYNU-hI,6612
410
410
  holado_test/common/context/feature_context.py,sha256=GhC0lihnvTBhv5tE4JzPt39eP7gwAU5IApwX_-5Wt2Y,3348
411
411
  holado_test/common/context/scenario_context.py,sha256=pmo-xGtn6oHtbTmcH6Vtp8Dj2iGrYVdHd0b6smtlhbY,10527
412
412
  holado_test/common/context/step_context.py,sha256=j6S4ozTPrdlpV9Slopc998fYOV8KfMLAUSW4mcEFUI8,2383
413
413
  holado_test/common/exceptions/undefined_step_exception.py,sha256=SHHX22iz4Ip-V4Y3aM2EJFDt30CCS5EaauN6KB-JORo,1461
414
- holado_test/scenario/step_tools.py,sha256=MnM0ZD9EDesPIvi7S75O-X0wS3afubacsbhypAG55qA,25062
414
+ holado_test/scenario/step_tools.py,sha256=sVe9m1iFyOnhlgIVsOrFLq2Mc5LLZsKr3xuvnhVvERM,25178
415
415
  holado_test/scenario/tester_tools.py,sha256=j2eBe7tlEX-Nw3VUGCZOdFqvh5ENhV9XnEUsqAqnXV8,2272
416
416
  holado_test/tests/behave/steps/__init__.py,sha256=rdqrp-UN7vRplIqORx4sXyKwMUkptRizyLWudsmYehM,1362
417
417
  holado_test/tests/behave/steps/scenario/exception_steps.py,sha256=ayMUmIJI4a7w95RL2NYiBWA8jSBwKyjdaRJL3IKdYQ0,4033
@@ -445,8 +445,8 @@ test_holado/Dockerfile_test_holado,sha256=zO6OUFnC1X9ZG7fPWWWfcWgZwnxif4WDE4ZDEm
445
445
  test_holado/__init__.py,sha256=TIHAHrF05rvz6-VDKuDBSBjasD6PxTxXvcXjMEC3D6E,54
446
446
  test_holado/__main__.py,sha256=PVdCX8V_RGRzbQQKVxf7eyt8a10XfUJ1pcaajGgIlus,1509
447
447
  test_holado/build_docker_image_to_test_holado_in_docker.sh,sha256=B3hbi0yKnEC-t9S18o6ZR27AU1bqiuptwOqm6H7tv8s,142
448
- test_holado/environment.py,sha256=v6_qHBeQX9jmK9serHXcm2Rg5HUBGz27Spy-nWmXtno,2289
449
- test_holado/logging.conf,sha256=jmGH__iatIy3ti898FN_PpDAOXuiRFRtobVriwKvPu4,1099
448
+ test_holado/environment.py,sha256=X4a6q9Km_Ya8XFIjwlDULgEQOkucumXxjIrIRtK1GDY,2294
449
+ test_holado/logging.conf,sha256=fI2P1eKEkDZm_GW0CFkgy7ASaIWwvgmLHUoLBfGqlwo,1132
450
450
  test_holado/test_holado_session_context.py,sha256=qOB_i2k8mYjkR3-q2uv0B04xFc1K3p-K20ttYwe1Z18,1364
451
451
  test_holado/features/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
452
452
  test_holado/features/NonReg/api/REST.feature,sha256=ouaDdgXulNlXcZ7fSrSGCX-qDmQoCpXWnR_hKcKh8M4,469
@@ -529,7 +529,7 @@ test_holado/tools/django/api_rest/api_rest/api1/serializers.py,sha256=o_YxFr-tgC
529
529
  test_holado/tools/django/api_rest/api_rest/api1/tests.py,sha256=mrbGGRNg5jwbTJtWWa7zSKdDyeB4vmgZCRc2nk6VY-g,60
530
530
  test_holado/tools/django/api_rest/api_rest/api1/views.py,sha256=kOt2xT6bxO47_z__5yYR9kcYIWWv4qYzpX0K8Tqonik,758
531
531
  test_holado/tools/django/api_rest/api_rest/api1/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
532
- holado-0.2.3.dist-info/METADATA,sha256=NkwNMVRgOrUCjH5W5olFfz6gvdyHNoMAl12kJBKFRL8,5796
533
- holado-0.2.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
534
- holado-0.2.3.dist-info/licenses/LICENSE,sha256=IgGmNlcFHnbp7UWrLJqAFvs_HIgjJDTmjCNRircJLsk,1070
535
- holado-0.2.3.dist-info/RECORD,,
532
+ holado-0.2.5.dist-info/METADATA,sha256=04lm8Q_8eATXzz-hS6LVjr7Y9_0sFQN0nBI8_O3oIBU,5796
533
+ holado-0.2.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
534
+ holado-0.2.5.dist-info/licenses/LICENSE,sha256=IgGmNlcFHnbp7UWrLJqAFvs_HIgjJDTmjCNRircJLsk,1070
535
+ holado-0.2.5.dist-info/RECORD,,