holado 0.2.3__tar.gz → 0.2.5__tar.gz

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 (655) hide show
  1. {holado-0.2.3 → holado-0.2.5}/PKG-INFO +1 -1
  2. holado-0.2.5/packaging/VERSION +1 -0
  3. {holado-0.2.3 → holado-0.2.5}/src/holado/__init__.py +61 -23
  4. {holado-0.2.3 → holado-0.2.5}/src/holado/common/context/service_manager.py +10 -2
  5. {holado-0.2.3 → holado-0.2.5}/src/holado/common/context/session_context.py +43 -12
  6. {holado-0.2.3 → holado-0.2.5}/src/holado/common/handlers/object.py +12 -4
  7. {holado-0.2.3 → holado-0.2.5}/src/holado/holado_config.py +1 -0
  8. holado-0.2.5/src/holado_ais/ais/ais_messages.py +204 -0
  9. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tools/path_manager.py +8 -4
  10. holado-0.2.5/src/holado_examples/scripts/script_custom_initialization.py +16 -0
  11. holado-0.2.5/src/holado_examples/scripts/script_minimal_initialization.py +23 -0
  12. holado-0.2.5/src/holado_examples/tests/behave/testing_solution/__main__.py +13 -0
  13. holado-0.2.5/src/holado_examples/tests/behave/testing_solution/behave_environment.py +35 -0
  14. holado-0.2.5/src/holado_examples/tests/behave/testing_solution/environment.py +43 -0
  15. holado-0.2.5/src/holado_examples/tests/behave/testing_solution/features/Configuration/Actions/configure_system.feature +10 -0
  16. holado-0.2.5/src/holado_examples/tests/behave/testing_solution/features/NonReg/example.feature +26 -0
  17. holado-0.2.5/src/holado_examples/tests/behave/testing_solution/logging.conf +102 -0
  18. holado-0.2.5/src/holado_examples/tests/behave/testing_solution/requirements.txt +5 -0
  19. holado-0.2.5/src/holado_examples/tests/behave/testing_solution/run_test.sh +7 -0
  20. holado-0.2.5/src/holado_examples/tests/behave/testing_solution/run_test_nonreg.sh +6 -0
  21. holado-0.2.5/src/holado_examples/tests/behave/testing_solution/src/common/tools/path_manager.py +40 -0
  22. holado-0.2.5/src/holado_examples/tests/behave/testing_solution/src/config/config_manager.py +30 -0
  23. holado-0.2.5/src/holado_examples/tests/behave/testing_solution/src/context/session_context.py +45 -0
  24. holado-0.2.5/src/holado_examples/tests/behave/testing_solution/steps/config_steps.py +21 -0
  25. holado-0.2.5/src/holado_examples/tests/behave/testing_solution/steps/public_steps.py +10 -0
  26. holado-0.2.5/src/holado_grpc/api/rpc/grpc_client.py +185 -0
  27. {holado-0.2.3 → holado-0.2.5}/src/holado_helper/docker/logging.conf +3 -1
  28. {holado-0.2.3 → holado-0.2.5}/src/holado_helper/docker/run_holado_test_nonreg_in_docker.sh +28 -28
  29. {holado-0.2.3 → holado-0.2.5}/src/holado_helper/docker/run_terminal_in_docker-with_docker_control.sh +27 -27
  30. {holado-0.2.3 → holado-0.2.5}/src/holado_helper/docker/run_terminal_in_docker.sh +26 -26
  31. {holado-0.2.3 → holado-0.2.5}/src/holado_helper/script/initialize_script.py +5 -5
  32. {holado-0.2.3 → holado-0.2.5}/src/holado_logging/__init__.py +7 -9
  33. {holado-0.2.3 → holado-0.2.5}/src/holado_logging/common/logging/holado_logger.py +2 -2
  34. {holado-0.2.3 → holado-0.2.5}/src/holado_logging/common/logging/log_config.py +152 -127
  35. {holado-0.2.3 → holado-0.2.5}/src/holado_logging/common/logging/log_manager.py +20 -19
  36. {holado-0.2.3 → holado-0.2.5}/src/holado_multitask/multitasking/multitask_manager.py +1 -1
  37. {holado-0.2.3 → holado-0.2.5}/src/holado_multitask/multithreading/thread.py +8 -4
  38. {holado-0.2.3 → holado-0.2.5}/src/holado_protobuf/__init__.py +1 -1
  39. holado-0.2.5/src/holado_protobuf/ipc/protobuf/protobuf_messages.py +968 -0
  40. {holado-0.2.3 → holado-0.2.5}/src/holado_rabbitmq/tools/rabbitmq/rabbitmq_client.py +1 -2
  41. {holado-0.2.3 → holado-0.2.5}/src/holado_test/behave/independant_runner.py +3 -5
  42. {holado-0.2.3 → holado-0.2.5}/src/holado_test/scenario/step_tools.py +2 -0
  43. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/environment.py +1 -1
  44. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/logging.conf +3 -1
  45. {holado-0.2.3 → holado-0.2.5}/tests/scripts/independant_runner/logging.conf +3 -1
  46. holado-0.2.3/packaging/VERSION +0 -1
  47. holado-0.2.3/src/holado_ais/ais/ais_messages.py +0 -203
  48. holado-0.2.3/src/holado_grpc/api/rpc/grpc_client.py +0 -181
  49. holado-0.2.3/src/holado_protobuf/ipc/protobuf/protobuf_messages.py +0 -965
  50. {holado-0.2.3 → holado-0.2.5}/.gitignore +0 -0
  51. {holado-0.2.3 → holado-0.2.5}/.gitlab-ci.yml +0 -0
  52. {holado-0.2.3 → holado-0.2.5}/Dockerfile +0 -0
  53. {holado-0.2.3 → holado-0.2.5}/INSTALL +0 -0
  54. {holado-0.2.3 → holado-0.2.5}/LICENSE +0 -0
  55. {holado-0.2.3 → holado-0.2.5}/NOTES.md +0 -0
  56. {holado-0.2.3 → holado-0.2.5}/README.md +0 -0
  57. {holado-0.2.3 → holado-0.2.5}/README.rst +0 -0
  58. {holado-0.2.3 → holado-0.2.5}/TODO +0 -0
  59. {holado-0.2.3 → holado-0.2.5}/dependencies/protoc/README.txt +0 -0
  60. {holado-0.2.3 → holado-0.2.5}/packaging/generate_distribution_archive.sh +0 -0
  61. {holado-0.2.3 → holado-0.2.5}/packaging/publish_distribution_archive.sh +0 -0
  62. {holado-0.2.3 → holado-0.2.5}/packaging/publish_distribution_archive_on_testpypi.sh +0 -0
  63. {holado-0.2.3 → holado-0.2.5}/pyproject.toml +0 -0
  64. {holado-0.2.3 → holado-0.2.5}/requirements.txt +0 -0
  65. {holado-0.2.3 → holado-0.2.5}/requirements_docker.txt +0 -0
  66. {holado-0.2.3 → holado-0.2.5}/resources/scripts/generate_scenario_duration_limits.py +0 -0
  67. {holado-0.2.3 → holado-0.2.5}/resources/scripts/generate_scenario_duration_tags.py +0 -0
  68. {holado-0.2.3 → holado-0.2.5}/resources/scripts/print_execution_historic.py +0 -0
  69. {holado-0.2.3 → holado-0.2.5}/resources/scripts/script_tools.py +0 -0
  70. {holado-0.2.3 → holado-0.2.5}/resources/scripts/update_scenario_duration_tags.py +0 -0
  71. {holado-0.2.3 → holado-0.2.5}/resources/ssh/id_rsa +0 -0
  72. {holado-0.2.3 → holado-0.2.5}/resources/ssh/id_rsa.pub +0 -0
  73. {holado-0.2.3 → holado-0.2.5}/run_test.sh +0 -0
  74. {holado-0.2.3 → holado-0.2.5}/run_test_draft.sh +0 -0
  75. {holado-0.2.3 → holado-0.2.5}/run_test_needupdate.sh +0 -0
  76. {holado-0.2.3 → holado-0.2.5}/run_test_nonreg.sh +0 -0
  77. {holado-0.2.3 → holado-0.2.5}/src/holado/common/__init__.py +0 -0
  78. {holado-0.2.3 → holado-0.2.5}/src/holado/common/context/__init__.py +0 -0
  79. {holado-0.2.3 → holado-0.2.5}/src/holado/common/context/context.py +0 -0
  80. {holado-0.2.3 → holado-0.2.5}/src/holado/common/handlers/__init__.py +0 -0
  81. {holado-0.2.3 → holado-0.2.5}/src/holado/common/handlers/enums.py +0 -0
  82. {holado-0.2.3 → holado-0.2.5}/src/holado/common/handlers/undefined.py +0 -0
  83. {holado-0.2.3 → holado-0.2.5}/src/holado/common/tools/__init__.py +0 -0
  84. {holado-0.2.3 → holado-0.2.5}/src/holado/common/tools/gc_manager.py +0 -0
  85. {holado-0.2.3 → holado-0.2.5}/src/holado_ais/__init__.py +0 -0
  86. {holado-0.2.3 → holado-0.2.5}/src/holado_ais/ais/MaritimeIdentificationDigits.csv +0 -0
  87. {holado-0.2.3 → holado-0.2.5}/src/holado_ais/ais/ais_manager.py +0 -0
  88. {holado-0.2.3 → holado-0.2.5}/src/holado_ais/ais/ais_payload.py +0 -0
  89. {holado-0.2.3 → holado-0.2.5}/src/holado_ais/ais/enums.py +0 -0
  90. {holado-0.2.3 → holado-0.2.5}/src/holado_ais/ais/patch_pyais.py +0 -0
  91. {holado-0.2.3 → holado-0.2.5}/src/holado_ais/tests/behave/steps/__init__.py +0 -0
  92. {holado-0.2.3 → holado-0.2.5}/src/holado_ais/tests/behave/steps/ais/__init__.py +0 -0
  93. {holado-0.2.3 → holado-0.2.5}/src/holado_ais/tests/behave/steps/ais/ais_manager_steps.py +0 -0
  94. {holado-0.2.3 → holado-0.2.5}/src/holado_ais/tests/behave/steps/ais/ais_messages_steps.py +0 -0
  95. {holado-0.2.3 → holado-0.2.5}/src/holado_binary/__init__.py +0 -0
  96. {holado-0.2.3 → holado-0.2.5}/src/holado_binary/ipc/binary.py +0 -0
  97. {holado-0.2.3 → holado-0.2.5}/src/holado_binary/ipc/bit_series.py +0 -0
  98. {holado-0.2.3 → holado-0.2.5}/src/holado_binary/tests/behave/steps/__init__.py +0 -0
  99. {holado-0.2.3 → holado-0.2.5}/src/holado_binary/tests/behave/steps/ipc/binary_steps.py +0 -0
  100. {holado-0.2.3 → holado-0.2.5}/src/holado_binary/tests/behave/steps/ipc/bit_series_steps.py +0 -0
  101. {holado-0.2.3 → holado-0.2.5}/src/holado_context/__init__.py +0 -0
  102. {holado-0.2.3 → holado-0.2.5}/src/holado_context/tests/behave/steps/__init__.py +0 -0
  103. {holado-0.2.3 → holado-0.2.5}/src/holado_context/tests/behave/steps/private/__init__.py +0 -0
  104. {holado-0.2.3 → holado-0.2.5}/src/holado_context/tests/behave/steps/private/common/context_steps.py +0 -0
  105. {holado-0.2.3 → holado-0.2.5}/src/holado_core/__init__.py +0 -0
  106. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/__init__.py +0 -0
  107. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/actors/actions.py +0 -0
  108. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/actors/actor.py +0 -0
  109. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/actors/element_actor.py +0 -0
  110. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/actors/find_actor.py +0 -0
  111. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/actors/tree_actor.py +0 -0
  112. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/actors/verify_actions.py +0 -0
  113. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/block/base.py +0 -0
  114. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/block/block_manager.py +0 -0
  115. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/block/block_method.py +0 -0
  116. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/block/block_steps.py +0 -0
  117. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/block/function.py +0 -0
  118. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/block/scope_function.py +0 -0
  119. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/block/scope_manager.py +0 -0
  120. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/block/scope_steps.py +0 -0
  121. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/criterias/and_criteria.py +0 -0
  122. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/criterias/criteria.py +0 -0
  123. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/criterias/or_criteria.py +0 -0
  124. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/criterias/tools/criteria_context.py +0 -0
  125. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/criterias/tools/criteria_parameters.py +0 -0
  126. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/drivers/driver.py +0 -0
  127. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/drivers/element_driver.py +0 -0
  128. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/drivers/element_internal_api.py +0 -0
  129. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/drivers/internal_api.py +0 -0
  130. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/drivers/tree_driver.py +0 -0
  131. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/drivers/tree_internal_api.py +0 -0
  132. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/exceptions/__init__.py +0 -0
  133. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/exceptions/element_exception.py +0 -0
  134. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/exceptions/exceptions.py +0 -0
  135. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/exceptions/functional_exception.py +0 -0
  136. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/exceptions/holado_exception.py +0 -0
  137. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/exceptions/technical_exception.py +0 -0
  138. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/exceptions/timeout_exception.py +0 -0
  139. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/exceptions/verify_exception.py +0 -0
  140. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/finders/after_in_tree_finder.py +0 -0
  141. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/finders/element_finder.py +0 -0
  142. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/finders/else_finder.py +0 -0
  143. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/finders/finder.py +0 -0
  144. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/finders/or_finder.py +0 -0
  145. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/finders/then_finder.py +0 -0
  146. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/finders/tools/enums.py +0 -0
  147. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/finders/tools/find_builder.py +0 -0
  148. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/finders/tools/find_context.py +0 -0
  149. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/finders/tools/find_info.py +0 -0
  150. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/finders/tools/find_parameters.py +0 -0
  151. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/finders/tools/find_updater.py +0 -0
  152. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/finders/tools/finder_info.py +0 -0
  153. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/finders/tree_finder.py +0 -0
  154. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/handlers/__init__.py +0 -0
  155. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/handlers/abstracts/base_redo.py +0 -0
  156. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/handlers/abstracts/get_or_create.py +0 -0
  157. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/handlers/element_holder.py +0 -0
  158. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/handlers/enums.py +0 -0
  159. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/handlers/exceptions/redo_exceptions.py +0 -0
  160. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/handlers/features/resource_by_name.py +0 -0
  161. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/handlers/features/resource_by_type.py +0 -0
  162. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/handlers/redo.py +0 -0
  163. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/handlers/wait.py +0 -0
  164. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/inspectors/element_inspector.py +0 -0
  165. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/inspectors/inspector.py +0 -0
  166. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/inspectors/tools/inspect_builder.py +0 -0
  167. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/inspectors/tools/inspect_context.py +0 -0
  168. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/inspectors/tools/inspect_parameters.py +0 -0
  169. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/inspectors/tree_inspector.py +0 -0
  170. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/resource/persisted_data_manager.py +0 -0
  171. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/resource/persisted_method_to_call_manager.py +0 -0
  172. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/resource/resource_manager.py +0 -0
  173. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/__init__.py +0 -0
  174. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/comparators/__init__.py +0 -0
  175. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/comparators/boolean_table_cell_comparator.py +0 -0
  176. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/comparators/bytes_table_cell_comparator.py +0 -0
  177. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/comparators/datetime_table_cell_comparator.py +0 -0
  178. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/comparators/float_table_cell_comparator.py +0 -0
  179. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/comparators/integer_table_cell_comparator.py +0 -0
  180. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/comparators/internal_table_cell_comparator.py +0 -0
  181. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/comparators/string_table_cell_comparator.py +0 -0
  182. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/comparators/string_table_comparator.py +0 -0
  183. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/comparators/string_table_row_comparator.py +0 -0
  184. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/comparators/table_cell_comparator.py +0 -0
  185. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/comparators/table_comparator.py +0 -0
  186. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/comparators/table_comparator_manager.py +0 -0
  187. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/comparators/table_row_comparator.py +0 -0
  188. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/comparators/table_with_header_comparator.py +0 -0
  189. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/converters/__init__.py +0 -0
  190. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/converters/table_converter.py +0 -0
  191. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/enums.py +0 -0
  192. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/table.py +0 -0
  193. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/table_cell.py +0 -0
  194. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/table_manager.py +0 -0
  195. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/table_row.py +0 -0
  196. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tables/table_with_header.py +0 -0
  197. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tools/__init__.py +0 -0
  198. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tools/comparators/comparator.py +0 -0
  199. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tools/comparators/object_comparator.py +0 -0
  200. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tools/converters/converter.py +0 -0
  201. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tools/string_tools.py +0 -0
  202. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/tools/tools.py +0 -0
  203. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/transport/__init__.py +0 -0
  204. {holado-0.2.3 → holado-0.2.5}/src/holado_core/common/transport/crc.py +0 -0
  205. {holado-0.2.3 → holado-0.2.5}/src/holado_core/tests/behave/steps/__init__.py +0 -0
  206. {holado-0.2.3 → holado-0.2.5}/src/holado_core/tests/behave/steps/common/__init__.py +0 -0
  207. {holado-0.2.3 → holado-0.2.5}/src/holado_core/tests/behave/steps/common/common_steps.py +0 -0
  208. {holado-0.2.3 → holado-0.2.5}/src/holado_core/tests/behave/steps/common/config_steps.py +0 -0
  209. {holado-0.2.3 → holado-0.2.5}/src/holado_core/tests/behave/steps/common/resource_steps.py +0 -0
  210. {holado-0.2.3 → holado-0.2.5}/src/holado_core/tests/behave/steps/common/tables_steps.py +0 -0
  211. {holado-0.2.3 → holado-0.2.5}/src/holado_core/tools/__init__.py +0 -0
  212. {holado-0.2.3 → holado-0.2.5}/src/holado_core/tools/abstracts/__init__.py +0 -0
  213. {holado-0.2.3 → holado-0.2.5}/src/holado_core/tools/abstracts/blocking_command_service.py +0 -0
  214. {holado-0.2.3 → holado-0.2.5}/src/holado_core/tools/abstracts/service.py +0 -0
  215. {holado-0.2.3 → holado-0.2.5}/src/holado_data/__init__.py +0 -0
  216. {holado-0.2.3 → holado-0.2.5}/src/holado_data/data/generator/base.py +0 -0
  217. {holado-0.2.3 → holado-0.2.5}/src/holado_data/data/generator/python_generator.py +0 -0
  218. {holado-0.2.3 → holado-0.2.5}/src/holado_data/tests/behave/steps/__init__.py +0 -0
  219. {holado-0.2.3 → holado-0.2.5}/src/holado_data/tests/behave/steps/data/generator_steps.py +0 -0
  220. {holado-0.2.3 → holado-0.2.5}/src/holado_data/tests/behave/steps/tools/utils_steps.py +0 -0
  221. {holado-0.2.3 → holado-0.2.5}/src/holado_db/__init__.py +0 -0
  222. {holado-0.2.3 → holado-0.2.5}/src/holado_db/tests/behave/steps/__init__.py +0 -0
  223. {holado-0.2.3 → holado-0.2.5}/src/holado_db/tests/behave/steps/tools/db/db_client_steps.py +0 -0
  224. {holado-0.2.3 → holado-0.2.5}/src/holado_db/tests/behave/steps/tools/db/postgresql_client_steps.py +0 -0
  225. {holado-0.2.3 → holado-0.2.5}/src/holado_db/tests/behave/steps/tools/db/sqlite_client_steps.py +0 -0
  226. {holado-0.2.3 → holado-0.2.5}/src/holado_db/tools/db/clients/base/db_client.py +0 -0
  227. {holado-0.2.3 → holado-0.2.5}/src/holado_db/tools/db/clients/postgresql/postgresql_client.py +0 -0
  228. {holado-0.2.3 → holado-0.2.5}/src/holado_db/tools/db/clients/sqlite/sqlite_client.py +0 -0
  229. {holado-0.2.3 → holado-0.2.5}/src/holado_db/tools/db/db_manager.py +0 -0
  230. {holado-0.2.3 → holado-0.2.5}/src/holado_db/tools/db/query/base/query_builder.py +0 -0
  231. {holado-0.2.3 → holado-0.2.5}/src/holado_db/tools/db/query/pypika/pypika_query_builder.py +0 -0
  232. {holado-0.2.3 → holado-0.2.5}/src/holado_db/tools/db/query/query_manager.py +0 -0
  233. {holado-0.2.3 → holado-0.2.5}/src/holado_docker/__init__.py +0 -0
  234. {holado-0.2.3 → holado-0.2.5}/src/holado_docker/sdk/docker/docker_client.py +0 -0
  235. {holado-0.2.3 → holado-0.2.5}/src/holado_docker/sdk/docker/docker_service.py +0 -0
  236. {holado-0.2.3 → holado-0.2.5}/src/holado_docker/tests/behave/steps/__init__.py +0 -0
  237. {holado-0.2.3 → holado-0.2.5}/src/holado_docker/tests/behave/steps/tools/docker_steps.py +0 -0
  238. {holado-0.2.3 → holado-0.2.5}/src/holado_docker/tools/docker_controler/__init__.py +0 -0
  239. {holado-0.2.3 → holado-0.2.5}/src/holado_docker/tools/docker_controler/docker_controler_client.py +0 -0
  240. {holado-0.2.3 → holado-0.2.5}/src/holado_docker/tools/docker_controler/docker_controler_server.py +0 -0
  241. {holado-0.2.3 → holado-0.2.5}/src/holado_docker/tools/docker_controler/proto/compile_proto.py +0 -0
  242. {holado-0.2.3 → holado-0.2.5}/src/holado_docker/tools/docker_controler/proto/definitions/docker_controler.proto +0 -0
  243. {holado-0.2.3 → holado-0.2.5}/src/holado_docker/tools/docker_controler/proto/generated/docker_controler_pb2.py +0 -0
  244. {holado-0.2.3 → holado-0.2.5}/src/holado_docker/tools/docker_controler/proto/generated/docker_controler_pb2_grpc.py +0 -0
  245. {holado-0.2.3 → holado-0.2.5}/src/holado_grpc/__init__.py +0 -0
  246. {holado-0.2.3 → holado-0.2.5}/src/holado_grpc/api/rpc/TODO.txt +0 -0
  247. {holado-0.2.3 → holado-0.2.5}/src/holado_grpc/api/rpc/grpc_manager.py +0 -0
  248. {holado-0.2.3 → holado-0.2.5}/src/holado_grpc/ipc/rpc/__init__.py +0 -0
  249. {holado-0.2.3 → holado-0.2.5}/src/holado_grpc/ipc/rpc/grpc_compiler.py +0 -0
  250. {holado-0.2.3 → holado-0.2.5}/src/holado_grpc/ipc/rpc/grpc_services.py +0 -0
  251. {holado-0.2.3 → holado-0.2.5}/src/holado_grpc/tests/behave/steps/__init__.py +0 -0
  252. {holado-0.2.3 → holado-0.2.5}/src/holado_grpc/tests/behave/steps/api/grpc_client_steps.py +0 -0
  253. {holado-0.2.3 → holado-0.2.5}/src/holado_grpc/tests/behave/steps/private/__init__.py +0 -0
  254. {holado-0.2.3 → holado-0.2.5}/src/holado_grpc/tests/behave/steps/private/api/grpc_steps.py +0 -0
  255. {holado-0.2.3 → holado-0.2.5}/src/holado_helper/__init__.py +0 -0
  256. {holado-0.2.3 → holado-0.2.5}/src/holado_helper/debug/README.txt +0 -0
  257. {holado-0.2.3 → holado-0.2.5}/src/holado_helper/debug/memory/memory_profiler.py +0 -0
  258. {holado-0.2.3 → holado-0.2.5}/src/holado_helper/docker/init_user.sh +0 -0
  259. {holado-0.2.3 → holado-0.2.5}/src/holado_helper/holado_module_template/__init__.py +0 -0
  260. {holado-0.2.3 → holado-0.2.5}/src/holado_helper/holado_module_template/test/behave/steps/__init__.py +0 -0
  261. {holado-0.2.3 → holado-0.2.5}/src/holado_helper/holado_module_template/test/behave/steps/private/__init__.py +0 -0
  262. {holado-0.2.3 → holado-0.2.5}/src/holado_helper/script/action.py +0 -0
  263. {holado-0.2.3 → holado-0.2.5}/src/holado_helper/script/action_script.py +0 -0
  264. {holado-0.2.3 → holado-0.2.5}/src/holado_helper/script/any_action_script.py +0 -0
  265. {holado-0.2.3 → holado-0.2.5}/src/holado_helper/script/behave_action_script.py +0 -0
  266. {holado-0.2.3 → holado-0.2.5}/src/holado_helper/script/csv_action_script.py +0 -0
  267. {holado-0.2.3 → holado-0.2.5}/src/holado_helper/script/input_output_script.py +0 -0
  268. {holado-0.2.3 → holado-0.2.5}/src/holado_helper/script/job.py +0 -0
  269. {holado-0.2.3 → holado-0.2.5}/src/holado_helper/script/json_action_script.py +0 -0
  270. {holado-0.2.3 → holado-0.2.5}/src/holado_helper/script/script.py +0 -0
  271. {holado-0.2.3 → holado-0.2.5}/src/holado_json/__init__.py +0 -0
  272. {holado-0.2.3 → holado-0.2.5}/src/holado_json/ipc/json.py +0 -0
  273. {holado-0.2.3 → holado-0.2.5}/src/holado_json/ipc/json_converter.py +0 -0
  274. {holado-0.2.3 → holado-0.2.5}/src/holado_json/ipc/json_types.py +0 -0
  275. {holado-0.2.3 → holado-0.2.5}/src/holado_json/tests/behave/steps/__init__.py +0 -0
  276. {holado-0.2.3 → holado-0.2.5}/src/holado_json/tests/behave/steps/ipc/__init__.py +0 -0
  277. {holado-0.2.3 → holado-0.2.5}/src/holado_json/tests/behave/steps/ipc/json_steps.py +0 -0
  278. {holado-0.2.3 → holado-0.2.5}/src/holado_keycloak/__init__.py +0 -0
  279. {holado-0.2.3 → holado-0.2.5}/src/holado_keycloak/tests/behave/steps/__init__.py +0 -0
  280. {holado-0.2.3 → holado-0.2.5}/src/holado_keycloak/tests/behave/steps/tools/keycloak_client_steps.py +0 -0
  281. {holado-0.2.3 → holado-0.2.5}/src/holado_keycloak/tools/keycloak/__init__.py +0 -0
  282. {holado-0.2.3 → holado-0.2.5}/src/holado_keycloak/tools/keycloak/keycloak_client.py +0 -0
  283. {holado-0.2.3 → holado-0.2.5}/src/holado_multitask/__init__.py +0 -0
  284. {holado-0.2.3 → holado-0.2.5}/src/holado_multitask/multiprocessing/context/process_context.py +0 -0
  285. {holado-0.2.3 → holado-0.2.5}/src/holado_multitask/multiprocessing/function_process.py +0 -0
  286. {holado-0.2.3 → holado-0.2.5}/src/holado_multitask/multiprocessing/periodic_function_process.py +0 -0
  287. {holado-0.2.3 → holado-0.2.5}/src/holado_multitask/multiprocessing/process.py +0 -0
  288. {holado-0.2.3 → holado-0.2.5}/src/holado_multitask/multiprocessing/processesmanager.py +0 -0
  289. {holado-0.2.3 → holado-0.2.5}/src/holado_multitask/multithreading/__init__.py +0 -0
  290. {holado-0.2.3 → holado-0.2.5}/src/holado_multitask/multithreading/context/thread_context.py +0 -0
  291. {holado-0.2.3 → holado-0.2.5}/src/holado_multitask/multithreading/functionthreaded.py +0 -0
  292. {holado-0.2.3 → holado-0.2.5}/src/holado_multitask/multithreading/loopfunctionthreaded.py +0 -0
  293. {holado-0.2.3 → holado-0.2.5}/src/holado_multitask/multithreading/loopthread.py +0 -0
  294. {holado-0.2.3 → holado-0.2.5}/src/holado_multitask/multithreading/periodicfunctionthreaded.py +0 -0
  295. {holado-0.2.3 → holado-0.2.5}/src/holado_multitask/multithreading/reflection/inspect.py +0 -0
  296. {holado-0.2.3 → holado-0.2.5}/src/holado_multitask/multithreading/reflection/sys.py +0 -0
  297. {holado-0.2.3 → holado-0.2.5}/src/holado_multitask/multithreading/reflection/traceback.py +0 -0
  298. {holado-0.2.3 → holado-0.2.5}/src/holado_multitask/multithreading/threadsmanager.py +0 -0
  299. {holado-0.2.3 → holado-0.2.5}/src/holado_multitask/multithreading/timer.py +0 -0
  300. {holado-0.2.3 → holado-0.2.5}/src/holado_multitask/tests/behave/steps/__init__.py +0 -0
  301. {holado-0.2.3 → holado-0.2.5}/src/holado_multitask/tests/behave/steps/multiprocessing_steps.py +0 -0
  302. {holado-0.2.3 → holado-0.2.5}/src/holado_multitask/tests/behave/steps/multithreading_steps.py +0 -0
  303. {holado-0.2.3 → holado-0.2.5}/src/holado_protobuf/ipc/protobuf/__init__.py +0 -0
  304. {holado-0.2.3 → holado-0.2.5}/src/holado_protobuf/ipc/protobuf/abstracts/type.py +0 -0
  305. {holado-0.2.3 → holado-0.2.5}/src/holado_protobuf/ipc/protobuf/protobuf_compiler.py +0 -0
  306. {holado-0.2.3 → holado-0.2.5}/src/holado_protobuf/ipc/protobuf/protobuf_converter.py +0 -0
  307. {holado-0.2.3 → holado-0.2.5}/src/holado_protobuf/ipc/protobuf/protobuf_modifier.py +0 -0
  308. {holado-0.2.3 → holado-0.2.5}/src/holado_protobuf/ipc/protobuf/types/__init__.py +0 -0
  309. {holado-0.2.3 → holado-0.2.5}/src/holado_protobuf/ipc/protobuf/types/google/__init__.py +0 -0
  310. {holado-0.2.3 → holado-0.2.5}/src/holado_protobuf/ipc/protobuf/types/google/protobuf.py +0 -0
  311. {holado-0.2.3 → holado-0.2.5}/src/holado_protobuf/tests/behave/steps/__init__.py +0 -0
  312. {holado-0.2.3 → holado-0.2.5}/src/holado_protobuf/tests/behave/steps/ipc/protobuf_steps.py +0 -0
  313. {holado-0.2.3 → holado-0.2.5}/src/holado_python/__init__.py +0 -0
  314. {holado-0.2.3 → holado-0.2.5}/src/holado_python/common/enums.py +0 -0
  315. {holado-0.2.3 → holado-0.2.5}/src/holado_python/common/iterables.py +0 -0
  316. {holado-0.2.3 → holado-0.2.5}/src/holado_python/common/tools/comparators/boolean_comparator.py +0 -0
  317. {holado-0.2.3 → holado-0.2.5}/src/holado_python/common/tools/comparators/bytes_comparator.py +0 -0
  318. {holado-0.2.3 → holado-0.2.5}/src/holado_python/common/tools/comparators/datetime_comparator.py +0 -0
  319. {holado-0.2.3 → holado-0.2.5}/src/holado_python/common/tools/comparators/float_comparator.py +0 -0
  320. {holado-0.2.3 → holado-0.2.5}/src/holado_python/common/tools/comparators/integer_comparator.py +0 -0
  321. {holado-0.2.3 → holado-0.2.5}/src/holado_python/common/tools/comparators/string_comparator.py +0 -0
  322. {holado-0.2.3 → holado-0.2.5}/src/holado_python/common/tools/comparators/type_comparator.py +0 -0
  323. {holado-0.2.3 → holado-0.2.5}/src/holado_python/common/tools/datetime.py +0 -0
  324. {holado-0.2.3 → holado-0.2.5}/src/holado_python/standard_library/csv.py +0 -0
  325. {holado-0.2.3 → holado-0.2.5}/src/holado_python/standard_library/hashlib.py +0 -0
  326. {holado-0.2.3 → holado-0.2.5}/src/holado_python/standard_library/multiprocessing.py +0 -0
  327. {holado-0.2.3 → holado-0.2.5}/src/holado_python/standard_library/queue.py +0 -0
  328. {holado-0.2.3 → holado-0.2.5}/src/holado_python/standard_library/socket/blocking_socket.py +0 -0
  329. {holado-0.2.3 → holado-0.2.5}/src/holado_python/standard_library/socket/echo_server.py +0 -0
  330. {holado-0.2.3 → holado-0.2.5}/src/holado_python/standard_library/socket/message_socket.py +0 -0
  331. {holado-0.2.3 → holado-0.2.5}/src/holado_python/standard_library/socket/non_blocking_socket.py +0 -0
  332. {holado-0.2.3 → holado-0.2.5}/src/holado_python/standard_library/socket/socket.py +0 -0
  333. {holado-0.2.3 → holado-0.2.5}/src/holado_python/standard_library/ssl/resources/certificates/NOTES.txt +0 -0
  334. {holado-0.2.3 → holado-0.2.5}/src/holado_python/standard_library/ssl/resources/certificates/localhost.crt +0 -0
  335. {holado-0.2.3 → holado-0.2.5}/src/holado_python/standard_library/ssl/resources/certificates/localhost.key +0 -0
  336. {holado-0.2.3 → holado-0.2.5}/src/holado_python/standard_library/ssl/ssl.py +0 -0
  337. {holado-0.2.3 → holado-0.2.5}/src/holado_python/standard_library/typing.py +0 -0
  338. {holado-0.2.3 → holado-0.2.5}/src/holado_python/tests/behave/steps/__init__.py +0 -0
  339. {holado-0.2.3 → holado-0.2.5}/src/holado_python/tests/behave/steps/builtins/str_steps.py +0 -0
  340. {holado-0.2.3 → holado-0.2.5}/src/holado_python/tests/behave/steps/convert_steps.py +0 -0
  341. {holado-0.2.3 → holado-0.2.5}/src/holado_python/tests/behave/steps/iterable_steps.py +0 -0
  342. {holado-0.2.3 → holado-0.2.5}/src/holado_python/tests/behave/steps/standard_library/csv_steps.py +0 -0
  343. {holado-0.2.3 → holado-0.2.5}/src/holado_python/tests/behave/steps/standard_library/datetime_steps.py +0 -0
  344. {holado-0.2.3 → holado-0.2.5}/src/holado_python/tests/behave/steps/standard_library/hashlib_steps.py +0 -0
  345. {holado-0.2.3 → holado-0.2.5}/src/holado_python/tests/behave/steps/standard_library/multiprocessing_steps.py +0 -0
  346. {holado-0.2.3 → holado-0.2.5}/src/holado_python/tests/behave/steps/standard_library/queue_steps.py +0 -0
  347. {holado-0.2.3 → holado-0.2.5}/src/holado_python/tests/behave/steps/standard_library/socket_steps.py +0 -0
  348. {holado-0.2.3 → holado-0.2.5}/src/holado_python/tests/behave/steps/standard_library/ssl_steps.py +0 -0
  349. {holado-0.2.3 → holado-0.2.5}/src/holado_rabbitmq/__init__.py +0 -0
  350. {holado-0.2.3 → holado-0.2.5}/src/holado_rabbitmq/tests/behave/steps/__init__.py +0 -0
  351. {holado-0.2.3 → holado-0.2.5}/src/holado_rabbitmq/tests/behave/steps/tools/rabbitmq_client_steps.py +0 -0
  352. {holado-0.2.3 → holado-0.2.5}/src/holado_rabbitmq/tests/behave/steps/tools/rabbitmq_server_steps.py +0 -0
  353. {holado-0.2.3 → holado-0.2.5}/src/holado_rabbitmq/tools/rabbitmq/rabbitmq_blocking_client.py +0 -0
  354. {holado-0.2.3 → holado-0.2.5}/src/holado_rabbitmq/tools/rabbitmq/rabbitmq_manager.py +0 -0
  355. {holado-0.2.3 → holado-0.2.5}/src/holado_rabbitmq/tools/rabbitmq/rabbitmq_select_client.py +0 -0
  356. {holado-0.2.3 → holado-0.2.5}/src/holado_rabbitmq/tools/rabbitmq/rabbitmq_server.py +0 -0
  357. {holado-0.2.3 → holado-0.2.5}/src/holado_redis/__init__.py +0 -0
  358. {holado-0.2.3 → holado-0.2.5}/src/holado_redis/tests/behave/steps/__init__.py +0 -0
  359. {holado-0.2.3 → holado-0.2.5}/src/holado_redis/tests/behave/steps/tools/redis_client_steps.py +0 -0
  360. {holado-0.2.3 → holado-0.2.5}/src/holado_redis/tools/redis/TODO.txt +0 -0
  361. {holado-0.2.3 → holado-0.2.5}/src/holado_redis/tools/redis/redis_client.py +0 -0
  362. {holado-0.2.3 → holado-0.2.5}/src/holado_redis/tools/redis/redis_manager.py +0 -0
  363. {holado-0.2.3 → holado-0.2.5}/src/holado_report/__init__.py +0 -0
  364. {holado-0.2.3 → holado-0.2.5}/src/holado_report/report/analyze/execution_historic_manager.py +0 -0
  365. {holado-0.2.3 → holado-0.2.5}/src/holado_report/report/analyze/scenario_duration_manager.py +0 -0
  366. {holado-0.2.3 → holado-0.2.5}/src/holado_report/report/builders/detailed_scenario_failed_report_builder.py +0 -0
  367. {holado-0.2.3 → holado-0.2.5}/src/holado_report/report/builders/json_execution_historic_report_builder.py +0 -0
  368. {holado-0.2.3 → holado-0.2.5}/src/holado_report/report/builders/report_builder.py +0 -0
  369. {holado-0.2.3 → holado-0.2.5}/src/holado_report/report/builders/short_scenario_failed_report_builder.py +0 -0
  370. {holado-0.2.3 → holado-0.2.5}/src/holado_report/report/builders/summary_report_builder.py +0 -0
  371. {holado-0.2.3 → holado-0.2.5}/src/holado_report/report/builders/summary_scenario_failed_report_builder.py +0 -0
  372. {holado-0.2.3 → holado-0.2.5}/src/holado_report/report/builders/summary_scenario_report_builder.py +0 -0
  373. {holado-0.2.3 → holado-0.2.5}/src/holado_report/report/execution_historic.py +0 -0
  374. {holado-0.2.3 → holado-0.2.5}/src/holado_report/report/report_manager.py +0 -0
  375. {holado-0.2.3 → holado-0.2.5}/src/holado_report/report/reports/base_report.py +0 -0
  376. {holado-0.2.3 → holado-0.2.5}/src/holado_report/report/reports/feature_report.py +0 -0
  377. {holado-0.2.3 → holado-0.2.5}/src/holado_report/report/reports/scenario_report.py +0 -0
  378. {holado-0.2.3 → holado-0.2.5}/src/holado_rest/__init__.py +0 -0
  379. {holado-0.2.3 → holado-0.2.5}/src/holado_rest/api/rest/TODO.txt +0 -0
  380. {holado-0.2.3 → holado-0.2.5}/src/holado_rest/api/rest/rest_client.py +0 -0
  381. {holado-0.2.3 → holado-0.2.5}/src/holado_rest/api/rest/rest_manager.py +0 -0
  382. {holado-0.2.3 → holado-0.2.5}/src/holado_rest/tests/behave/steps/__init__.py +0 -0
  383. {holado-0.2.3 → holado-0.2.5}/src/holado_rest/tests/behave/steps/api/__init__.py +0 -0
  384. {holado-0.2.3 → holado-0.2.5}/src/holado_rest/tests/behave/steps/api/rest_client_steps.py +0 -0
  385. {holado-0.2.3 → holado-0.2.5}/src/holado_rest/tests/behave/steps/private/__init__.py +0 -0
  386. {holado-0.2.3 → holado-0.2.5}/src/holado_rest/tests/behave/steps/private/api/__init__.py +0 -0
  387. {holado-0.2.3 → holado-0.2.5}/src/holado_rest/tests/behave/steps/private/api/rest_steps.py +0 -0
  388. {holado-0.2.3 → holado-0.2.5}/src/holado_s3/__init__.py +0 -0
  389. {holado-0.2.3 → holado-0.2.5}/src/holado_s3/tests/behave/steps/__init__.py +0 -0
  390. {holado-0.2.3 → holado-0.2.5}/src/holado_s3/tests/behave/steps/private/__init__.py +0 -0
  391. {holado-0.2.3 → holado-0.2.5}/src/holado_s3/tests/behave/steps/private/tools/s3_steps.py +0 -0
  392. {holado-0.2.3 → holado-0.2.5}/src/holado_s3/tests/behave/steps/tools/s3_client_steps.py +0 -0
  393. {holado-0.2.3 → holado-0.2.5}/src/holado_s3/tests/behave/steps/tools/s3_server_steps.py +0 -0
  394. {holado-0.2.3 → holado-0.2.5}/src/holado_s3/tools/s3/__init__.py +0 -0
  395. {holado-0.2.3 → holado-0.2.5}/src/holado_s3/tools/s3/boto3_s3_client.py +0 -0
  396. {holado-0.2.3 → holado-0.2.5}/src/holado_s3/tools/s3/minio_client.py +0 -0
  397. {holado-0.2.3 → holado-0.2.5}/src/holado_s3/tools/s3/moto_server.py +0 -0
  398. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/__init__.py +0 -0
  399. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/common/tools/dynamic_text_manager.py +0 -0
  400. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/common/tools/evaluate_parameters.py +0 -0
  401. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/common/tools/expression_evaluator.py +0 -0
  402. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/common/tools/variable_manager.py +0 -0
  403. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/tests/behave/steps/__init__.py +0 -0
  404. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/tests/behave/steps/common/tools/variable_convert_steps.py +0 -0
  405. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/tests/behave/steps/common/tools/variable_new_steps.py +0 -0
  406. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/tests/behave/steps/common/tools/variable_steps.py +0 -0
  407. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/tests/behave/steps/common/tools/variable_verify_steps.py +0 -0
  408. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/tests/behave/steps/scenario/function_steps.py +0 -0
  409. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/tests/behave/steps/scenario/if_steps.py +0 -0
  410. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/tests/behave/steps/scenario/loop_steps.py +0 -0
  411. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/text/base/base_function.py +0 -0
  412. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/text/base/base_verify_function.py +0 -0
  413. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/text/base/text_inspecter.py +0 -0
  414. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/text/interpreter/exceptions/interpreter_exception.py +0 -0
  415. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/text/interpreter/functions/function_cast.py +0 -0
  416. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/text/interpreter/functions/function_convert.py +0 -0
  417. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/text/interpreter/functions/function_dynamic_value.py +0 -0
  418. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/text/interpreter/functions/function_escape_all_bytes.py +0 -0
  419. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/text/interpreter/functions/function_exists_variable.py +0 -0
  420. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/text/interpreter/functions/function_hex_to_bytes.py +0 -0
  421. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/text/interpreter/functions/function_hex_to_int.py +0 -0
  422. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/text/interpreter/functions/function_to_base_64.py +0 -0
  423. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/text/interpreter/functions/function_to_bytes.py +0 -0
  424. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/text/interpreter/functions/function_to_hex.py +0 -0
  425. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/text/interpreter/text_interpreter.py +0 -0
  426. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/text/verifier/exceptions/verifier_exception.py +0 -0
  427. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/text/verifier/functions/verify_function_extract_in.py +0 -0
  428. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/text/verifier/functions/verify_function_match_pattern.py +0 -0
  429. {holado-0.2.3 → holado-0.2.5}/src/holado_scripting/text/verifier/text_verifier.py +0 -0
  430. {holado-0.2.3 → holado-0.2.5}/src/holado_sftp/__init__.py +0 -0
  431. {holado-0.2.3 → holado-0.2.5}/src/holado_sftp/tests/behave/steps/__init__.py +0 -0
  432. {holado-0.2.3 → holado-0.2.5}/src/holado_sftp/tests/behave/steps/private/__init__.py +0 -0
  433. {holado-0.2.3 → holado-0.2.5}/src/holado_sftp/tests/behave/steps/private/tools/sftp_steps.py +0 -0
  434. {holado-0.2.3 → holado-0.2.5}/src/holado_sftp/tests/behave/steps/tools/sftp_client_steps.py +0 -0
  435. {holado-0.2.3 → holado-0.2.5}/src/holado_sftp/tests/behave/steps/tools/sftp_server_steps.py +0 -0
  436. {holado-0.2.3 → holado-0.2.5}/src/holado_sftp/tools/sftp/__init__.py +0 -0
  437. {holado-0.2.3 → holado-0.2.5}/src/holado_sftp/tools/sftp/sftp_client.py +0 -0
  438. {holado-0.2.3 → holado-0.2.5}/src/holado_sftp/tools/sftp/sftp_server.py +0 -0
  439. {holado-0.2.3 → holado-0.2.5}/src/holado_swagger/__init__.py +0 -0
  440. {holado-0.2.3 → holado-0.2.5}/src/holado_swagger/swagger_hub/mockserver/mockserver_client.py +0 -0
  441. {holado-0.2.3 → holado-0.2.5}/src/holado_swagger/swagger_hub/mockserver/mockserver_manager.py +0 -0
  442. {holado-0.2.3 → holado-0.2.5}/src/holado_swagger/tests/behave/steps/__init__.py +0 -0
  443. {holado-0.2.3 → holado-0.2.5}/src/holado_swagger/tests/behave/steps/swagger_hub/mockserver_steps.py +0 -0
  444. {holado-0.2.3 → holado-0.2.5}/src/holado_system/system/command/command.py +0 -0
  445. {holado-0.2.3 → holado-0.2.5}/src/holado_system/system/command/command_result.py +0 -0
  446. {holado-0.2.3 → holado-0.2.5}/src/holado_system/system/command/curl_command.py +0 -0
  447. {holado-0.2.3 → holado-0.2.5}/src/holado_system/system/command/exceptions.py +0 -0
  448. {holado-0.2.3 → holado-0.2.5}/src/holado_system/system/filesystem/file.py +0 -0
  449. {holado-0.2.3 → holado-0.2.5}/src/holado_system/system/global_system.py +0 -0
  450. {holado-0.2.3 → holado-0.2.5}/src/holado_system/tests/behave/steps/__init__.py +0 -0
  451. {holado-0.2.3 → holado-0.2.5}/src/holado_system/tests/behave/steps/system/commands_steps.py +0 -0
  452. {holado-0.2.3 → holado-0.2.5}/src/holado_system/tests/behave/steps/system/file_steps.py +0 -0
  453. {holado-0.2.3 → holado-0.2.5}/src/holado_system/tests/behave/steps/system/system_steps.py +0 -0
  454. {holado-0.2.3 → holado-0.2.5}/src/holado_test/__init__.py +0 -0
  455. {holado-0.2.3 → holado-0.2.5}/src/holado_test/behave/__init__.py +0 -0
  456. {holado-0.2.3 → holado-0.2.5}/src/holado_test/behave/behave.py +0 -0
  457. {holado-0.2.3 → holado-0.2.5}/src/holado_test/behave/behave_environment.py +0 -0
  458. {holado-0.2.3 → holado-0.2.5}/src/holado_test/behave/behave_function.py +0 -0
  459. {holado-0.2.3 → holado-0.2.5}/src/holado_test/behave/behave_manager.py +0 -0
  460. {holado-0.2.3 → holado-0.2.5}/src/holado_test/behave/scenario/__init__.py +0 -0
  461. {holado-0.2.3 → holado-0.2.5}/src/holado_test/behave/scenario/behave_step_tools.py +0 -0
  462. {holado-0.2.3 → holado-0.2.5}/src/holado_test/common/context/feature_context.py +0 -0
  463. {holado-0.2.3 → holado-0.2.5}/src/holado_test/common/context/scenario_context.py +0 -0
  464. {holado-0.2.3 → holado-0.2.5}/src/holado_test/common/context/step_context.py +0 -0
  465. {holado-0.2.3 → holado-0.2.5}/src/holado_test/common/exceptions/undefined_step_exception.py +0 -0
  466. {holado-0.2.3 → holado-0.2.5}/src/holado_test/scenario/tester_tools.py +0 -0
  467. {holado-0.2.3 → holado-0.2.5}/src/holado_test/test_config.py +0 -0
  468. {holado-0.2.3 → holado-0.2.5}/src/holado_test/tests/behave/steps/__init__.py +0 -0
  469. {holado-0.2.3 → holado-0.2.5}/src/holado_test/tests/behave/steps/scenario/exception_steps.py +0 -0
  470. {holado-0.2.3 → holado-0.2.5}/src/holado_test/tests/behave/steps/scenario/scenario_steps.py +0 -0
  471. {holado-0.2.3 → holado-0.2.5}/src/holado_test/tests/behave/steps/scenario/tester_steps.py +0 -0
  472. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/__init__.py +0 -0
  473. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/tests/behave/steps/__init__.py +0 -0
  474. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/tests/behave/steps/private/__init__.py +0 -0
  475. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/actors/actions.py +0 -0
  476. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/actors/ui_actor.py +0 -0
  477. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/drivers/ui_driver.py +0 -0
  478. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/drivers/ui_driver_info.py +0 -0
  479. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/drivers/ui_internal_api.py +0 -0
  480. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/exceptions/focus_driver_exception.py +0 -0
  481. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/finders/ui_finder.py +0 -0
  482. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/gui/actors/gui_actor.py +0 -0
  483. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/gui/criterias/enums.py +0 -0
  484. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/gui/criterias/gui_criteria.py +0 -0
  485. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/gui/drivers/gui_driver.py +0 -0
  486. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/gui/drivers/gui_internal_api.py +0 -0
  487. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/gui/finders/gui_finder.py +0 -0
  488. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/gui/handlers/label_gui_context.py +0 -0
  489. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/gui/handlers/zone_gui_context.py +0 -0
  490. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/gui/inspectors/gui_inspector.py +0 -0
  491. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/gui/windows/gui_window.py +0 -0
  492. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/gui/windows/gui_window_info.py +0 -0
  493. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/handlers/ui_context.py +0 -0
  494. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/handlers/ui_manager.py +0 -0
  495. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/inspectors/tools/ui_inspect_builder.py +0 -0
  496. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/inspectors/tools/ui_inspect_context.py +0 -0
  497. {holado-0.2.3 → holado-0.2.5}/src/holado_ui/ui/inspectors/ui_inspector.py +0 -0
  498. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_mss/ui/mss/mss_manager.py +0 -0
  499. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/actors/actions.py +0 -0
  500. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/actors/default_selenium_actor.py +0 -0
  501. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/actors/selenium_actor.py +0 -0
  502. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/criterias/selenium_criteria.py +0 -0
  503. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/criterias/selenium_criteria_and_verifier.py +0 -0
  504. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/drivers/selenium_driver.py +0 -0
  505. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/drivers/selenium_internal_api.py +0 -0
  506. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/drivers/web_driver_manager.py +0 -0
  507. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/finders/by_selenium_finder.py +0 -0
  508. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/finders/children_selenium_finder.py +0 -0
  509. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/finders/parent_selenium_finder.py +0 -0
  510. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/finders/selenium_finder.py +0 -0
  511. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/handlers/enums.py +0 -0
  512. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/handlers/selenium_by.py +0 -0
  513. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/handlers/selenium_holder.py +0 -0
  514. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/handlers/selenium_redo.py +0 -0
  515. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/handlers/selenium_ui_manager.py +0 -0
  516. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/inspectors/default_selenium_inspector.py +0 -0
  517. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/inspectors/selenium_inspector.py +0 -0
  518. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/tables/comparators/selenium_2_value_table_cell_comparator.py +0 -0
  519. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/tables/comparators/selenium_2_value_table_comparator.py +0 -0
  520. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/tables/comparators/selenium_2_value_table_row_comparator.py +0 -0
  521. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/tables/comparators/selenium_2_value_table_with_header_comparator.py +0 -0
  522. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/tables/converters/selenium_table_converter.py +0 -0
  523. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/tables/selenium_table.py +0 -0
  524. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/tables/selenium_table_cell.py +0 -0
  525. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/tables/selenium_table_row.py +0 -0
  526. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/tables/selenium_table_with_header.py +0 -0
  527. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/tools/selenium_path_manager.py +0 -0
  528. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/windows/default_selenium_window.py +0 -0
  529. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium/ui/gui/selenium/windows/selenium_window.py +0 -0
  530. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium_angular/__init__.py +0 -0
  531. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium_angular/ui/gui/selenium/actors/angular_selenium_actor.py +0 -0
  532. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium_angular/ui/gui/selenium/inspectors/angular_selenium_inspector.py +0 -0
  533. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium_html/__init__.py +0 -0
  534. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium_html/ui/gui/selenium/actors/html_selenium_actor.py +0 -0
  535. {holado-0.2.3 → holado-0.2.5}/src/holado_ui_selenium_html/ui/gui/selenium/inspectors/html_selenium_inspector.py +0 -0
  536. {holado-0.2.3 → holado-0.2.5}/src/holado_value/__init__.py +0 -0
  537. {holado-0.2.3 → holado-0.2.5}/src/holado_value/common/tables/comparators/table_2_value_table_cell_comparator.py +0 -0
  538. {holado-0.2.3 → holado-0.2.5}/src/holado_value/common/tables/comparators/table_2_value_table_comparator.py +0 -0
  539. {holado-0.2.3 → holado-0.2.5}/src/holado_value/common/tables/comparators/table_2_value_table_row_comparator.py +0 -0
  540. {holado-0.2.3 → holado-0.2.5}/src/holado_value/common/tables/comparators/table_2_value_table_with_header_comparator.py +0 -0
  541. {holado-0.2.3 → holado-0.2.5}/src/holado_value/common/tables/converters/value_table_converter.py +0 -0
  542. {holado-0.2.3 → holado-0.2.5}/src/holado_value/common/tables/value_table.py +0 -0
  543. {holado-0.2.3 → holado-0.2.5}/src/holado_value/common/tables/value_table_cell.py +0 -0
  544. {holado-0.2.3 → holado-0.2.5}/src/holado_value/common/tables/value_table_manager.py +0 -0
  545. {holado-0.2.3 → holado-0.2.5}/src/holado_value/common/tables/value_table_row.py +0 -0
  546. {holado-0.2.3 → holado-0.2.5}/src/holado_value/common/tables/value_table_with_header.py +0 -0
  547. {holado-0.2.3 → holado-0.2.5}/src/holado_value/common/tools/unique_value_manager.py +0 -0
  548. {holado-0.2.3 → holado-0.2.5}/src/holado_value/common/tools/value.py +0 -0
  549. {holado-0.2.3 → holado-0.2.5}/src/holado_value/common/tools/value_types.py +0 -0
  550. {holado-0.2.3 → holado-0.2.5}/src/holado_value/tests/behave/steps/__init__.py +0 -0
  551. {holado-0.2.3 → holado-0.2.5}/src/holado_value/tests/behave/steps/private/__init__.py +0 -0
  552. {holado-0.2.3 → holado-0.2.5}/src/holado_ws/__init__.py +0 -0
  553. {holado-0.2.3 → holado-0.2.5}/src/holado_ws/api/ws/TODO.txt +0 -0
  554. {holado-0.2.3 → holado-0.2.5}/src/holado_ws/tests/behave/steps/__init__.py +0 -0
  555. {holado-0.2.3 → holado-0.2.5}/src/holado_ws/tests/behave/steps/api/web_service_steps.py +0 -0
  556. {holado-0.2.3 → holado-0.2.5}/src/holado_yaml/__init__.py +0 -0
  557. {holado-0.2.3 → holado-0.2.5}/src/holado_yaml/tests/behave/steps/__init__.py +0 -0
  558. {holado-0.2.3 → holado-0.2.5}/src/holado_yaml/tests/behave/steps/yaml_steps.py +0 -0
  559. {holado-0.2.3 → holado-0.2.5}/src/holado_yaml/yaml/yaml_manager.py +0 -0
  560. {holado-0.2.3 → holado-0.2.5}/steps_catalog.sh +0 -0
  561. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/Dockerfile_test_holado +0 -0
  562. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/__init__.py +0 -0
  563. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/__main__.py +0 -0
  564. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/build_docker_image_to_test_holado_in_docker.sh +0 -0
  565. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/api/REST.feature +0 -0
  566. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/api/gRPC.feature +0 -0
  567. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/common/multiprocessing/simple.feature +0 -0
  568. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/common/system/commands.feature +0 -0
  569. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/common/system/system.feature +0 -0
  570. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/common/tables/table.feature +0 -0
  571. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/common/tables/value_table_conversion.feature +0 -0
  572. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/common/tools/DateTime.feature +0 -0
  573. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/common/tools/UniqueValueManager.feature +0 -0
  574. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/holado_ais/ais_message-bitarray_to_nmea.feature +0 -0
  575. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/holado_protobuf/protobuf.feature +0 -0
  576. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/holado_python/convert.feature +0 -0
  577. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/holado_python/iterable.feature +0 -0
  578. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/holado_python/standard_library/socket.feature +0 -0
  579. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/holado_python/standard_library/socket_with_ssl.feature +0 -0
  580. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/holado_scripting/common/tools/dynamic_text_manager.feature +0 -0
  581. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/holado_scripting/common/tools/expression_evaluator.feature +0 -0
  582. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/holado_scripting/common/tools/variable_manager.feature +0 -0
  583. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/holado_scripting/text/interpreter/interpreter.error.feature +0 -0
  584. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/holado_scripting/text/interpreter/interpreter.feature +0 -0
  585. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/holado_yaml/yaml.feature +0 -0
  586. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/ipc/bit_series.error.feature +0 -0
  587. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/ipc/bit_series.feature +0 -0
  588. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/ipc/json.feature +0 -0
  589. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/scenario/scenario.feature +0 -0
  590. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/test_steps/behave.feature +0 -0
  591. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/test_steps/common.feature +0 -0
  592. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/tools/RabbitMQ.feature +0 -0
  593. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/tools/RabbitMQ_steps.feature +0 -0
  594. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/tools/S3/boto3_client.feature +0 -0
  595. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/tools/S3/minio_client.feature +0 -0
  596. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/tools/db_sqlite3.feature +0 -0
  597. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/NonReg/tools/sFTP.feature +0 -0
  598. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/Test/logger.feature +0 -0
  599. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/features/__init__.py +0 -0
  600. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/resources/proto/definitions/protobuf/custom_types/field_types.proto +0 -0
  601. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/resources/proto/definitions/protobuf/protobuf.dev/tutorial/addressbook.proto +0 -0
  602. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/resources/proto/generated/protobuf/custom_types/field_types_pb2.py +0 -0
  603. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/resources/proto/generated/protobuf/protobuf/dev/tutorial/addressbook_pb2.py +0 -0
  604. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/resources/scripts/list_tags.sh +0 -0
  605. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/resources/scripts/update_resources_proto_generated.py +0 -0
  606. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/steps/__init__.py +0 -0
  607. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/steps/private_steps.py +0 -0
  608. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/steps/public_steps.py +0 -0
  609. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/test_holado_session_context.py +0 -0
  610. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/README.txt +0 -0
  611. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/__init__.py +0 -0
  612. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/__init__.py +0 -0
  613. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/admin.py +0 -0
  614. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/apps.py +0 -0
  615. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/migrations/__init__.py +0 -0
  616. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/models.py +0 -0
  617. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/proto/__init__.py +0 -0
  618. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/proto/account.proto +0 -0
  619. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/proto/account_pb2.py +0 -0
  620. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/proto/account_pb2_grpc.py +0 -0
  621. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/serializers.py +0 -0
  622. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/services.py +0 -0
  623. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/tests.py +0 -0
  624. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/views.py +0 -0
  625. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/asgi.py +0 -0
  626. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/settings.py +0 -0
  627. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/urls.py +0 -0
  628. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/wsgi.py +0 -0
  629. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_grpc/db.sqlite3 +0 -0
  630. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_grpc/manage.py +0 -0
  631. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_grpc/manual_test_commands.txt +0 -0
  632. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_rest/api_rest/__init__.py +0 -0
  633. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_rest/api_rest/api1/__init__.py +0 -0
  634. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_rest/api_rest/api1/admin.py +0 -0
  635. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_rest/api_rest/api1/apps.py +0 -0
  636. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_rest/api_rest/api1/migrations/__init__.py +0 -0
  637. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_rest/api_rest/api1/models.py +0 -0
  638. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_rest/api_rest/api1/serializers.py +0 -0
  639. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_rest/api_rest/api1/tests.py +0 -0
  640. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_rest/api_rest/api1/views.py +0 -0
  641. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_rest/api_rest/asgi.py +0 -0
  642. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_rest/api_rest/settings.py +0 -0
  643. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_rest/api_rest/urls.py +0 -0
  644. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_rest/api_rest/wsgi.py +0 -0
  645. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_rest/db.sqlite3 +0 -0
  646. {holado-0.2.3 → holado-0.2.5}/tests/behave/test_holado/tools/django/api_rest/manage.py +0 -0
  647. {holado-0.2.3 → holado-0.2.5}/tests/scripts/dgot/classement/classement.py +0 -0
  648. {holado-0.2.3 → holado-0.2.5}/tests/scripts/dgot/classement/classement.sh +0 -0
  649. {holado-0.2.3 → holado-0.2.5}/tests/scripts/dgot/classement/commands.txt +0 -0
  650. {holado-0.2.3 → holado-0.2.5}/tests/scripts/independant_runner/environment.py +0 -0
  651. {holado-0.2.3 → holado-0.2.5}/tests/scripts/independant_runner/features/fake.feature +0 -0
  652. {holado-0.2.3 → holado-0.2.5}/tests/scripts/independant_runner/steps/public_steps.py +0 -0
  653. {holado-0.2.3 → holado-0.2.5}/tests/scripts/independant_runner/test.py +0 -0
  654. {holado-0.2.3 → holado-0.2.5}/tests/scripts/independant_runner/test.sh +0 -0
  655. {holado-0.2.3 → holado-0.2.5}/tests/scripts/script_tools.py +0 -0
@@ -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
@@ -0,0 +1 @@
1
+ 0.2.5
@@ -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
@@ -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
 
@@ -0,0 +1,204 @@
1
+
2
+ #################################################
3
+ # HolAdo (Holistic Automation do)
4
+ #
5
+ # (C) Copyright 2021-2025 by Eric Klumpp
6
+ #
7
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
8
+ #
9
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
10
+
11
+ # The Software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the Software.
12
+ #################################################
13
+
14
+ import logging
15
+ from holado_core.common.exceptions.technical_exception import TechnicalException
16
+ from holado_value.common.tables.value_table_manager import ValueTableManager
17
+ from holado_value.common.tables.converters.value_table_converter import ValueTableConverter
18
+ from typing import Union
19
+ from holado_core.common.tables.table_with_header import TableWithHeader
20
+ from holado_core.common.tools.string_tools import StrTools
21
+ from holado_binary.ipc.binary import Binary
22
+ from holado_core.common.tools.tools import Tools
23
+ from holado_python.standard_library.typing import Typing
24
+ import copy
25
+
26
+ logger = logging.getLogger(__name__)
27
+
28
+ try:
29
+ import pyais
30
+ from bitarray import bitarray
31
+ from holado_ais.ais.patch_pyais import HATagBlock, HA_ais_to_nmea_0183
32
+ with_pyais = True
33
+
34
+ # Patch pyais with some fixes
35
+ import holado_ais.ais.patch_pyais # @UnusedImport
36
+ except Exception as exc:
37
+ if Tools.do_log(logger, logging.DEBUG):
38
+ logger.debug(f"AIS is not available. Initialization failed on error: {exc}")
39
+ with_pyais = False
40
+
41
+
42
+
43
+ class AISMessages(object):
44
+
45
+ @classmethod
46
+ def is_available(cls):
47
+ return with_pyais
48
+
49
+ if with_pyais:
50
+
51
+ def __init__(self):
52
+ self.__tag_block_group_id = 0
53
+
54
+ def default_message_data(self, msg_type:int):
55
+ """Return default data values for required data by pyais but not functionnaly required.
56
+ It is useful when generating custom messages, for example for tests.
57
+ """
58
+ return {}
59
+
60
+ def new_message_as_bitarray_bytes(self, msg_type:int, data:Union[dict,TableWithHeader]):
61
+ msg = self.new_message(msg_type, data)
62
+ res = self.convert_message_to_bytes(msg)
63
+ return res
64
+
65
+ def new_message(self, msg_type:int, data:Union[dict,TableWithHeader]):
66
+ if isinstance(data, TableWithHeader):
67
+ data = self.__convert_table_to_dict(data)
68
+ if not isinstance(data, dict):
69
+ raise TechnicalException(f"Unexpected data type '{Typing.get_object_class_fullname(data)}'")
70
+
71
+ message_type = self.__get_message_type(msg_type)
72
+ res = message_type.create(**data)
73
+ return res
74
+
75
+ def decode(self, *args, encoded_msg=None, parts_separator=b'\n'):
76
+ if encoded_msg is not None:
77
+ if isinstance(encoded_msg, str):
78
+ encoded_bytes = encoded_msg.encode("utf-8")
79
+ elif isinstance(encoded_msg, bytes):
80
+ encoded_bytes = encoded_msg
81
+ else:
82
+ raise TechnicalException(f"Parameter 'encoded_msg' must be of type str or bytes")
83
+ args = encoded_bytes.split(parts_separator)
84
+ return pyais.decode(*args, error_if_checksum_invalid=True)
85
+
86
+ def decode_message(self, msg_type:int, bit_array:Union[str,bitarray]):
87
+ if isinstance(bit_array, str):
88
+ if StrTools.is_hex(bit_array) and not StrTools.is_bitarray(bit_array):
89
+ bit_array = Binary.convert_hex_str_to_bin_str(bit_array)
90
+ bit_array = bitarray(bit_array)
91
+ if not isinstance(bit_array, bitarray):
92
+ raise TechnicalException(f"Bad parameter 'bit_array' (accepted types: bitarray, str)")
93
+
94
+ message_type = self.__get_message_type(msg_type)
95
+ return message_type.from_bitarray(bit_array)
96
+
97
+ def encode_raw_payload(self, payload_hex: str, tag_block: HATagBlock = None, with_tag_block=True, talker_id: str = "AIVDM", **kwargs):
98
+ from pyais.util import encode_ascii_6
99
+
100
+ payload_bitarray = bitarray()
101
+ payload_bitarray.frombytes(bytes.fromhex(payload_hex))
102
+ payload_ascii6, fill_bits = encode_ascii_6(payload_bitarray)
103
+
104
+ seq_id = kwargs.pop('seq_id') if 'seq_id' in kwargs else self.__tag_block_group_id % 10
105
+ radio_channel = kwargs['radio_channel'] if 'radio_channel' in kwargs else 'A'
106
+ group_id = kwargs.pop('group_id') if 'group_id' in kwargs else None
107
+
108
+ sentences = HA_ais_to_nmea_0183(payload_ascii6, talker_id, radio_channel, fill_bits, seq_id)
109
+ return self.__encode_add_tag_block(sentences, tag_block, with_tag_block=with_tag_block, group_id=group_id)
110
+
111
+ def encode(self, data, tag_block: HATagBlock = None, with_tag_block=True, talker_id: str = "AIVDM", **kwargs):
112
+ if isinstance(data, pyais.messages.Payload):
113
+ return self.encode_msg(data, tag_block=tag_block, with_tag_block=with_tag_block, talker_id=talker_id, **kwargs)
114
+ elif isinstance(data, dict):
115
+ return self.encode_data(data, tag_block=tag_block, with_tag_block=with_tag_block, talker_id=talker_id, **kwargs)
116
+ elif isinstance(data, TableWithHeader):
117
+ return self.encode_table(data, tag_block=tag_block, with_tag_block=with_tag_block, talker_id=talker_id, **kwargs)
118
+ else:
119
+ raise TechnicalException(f"Unexpected data type '{Typing.get_object_class_fullname(data)}'")
120
+
121
+ def encode_msg(self, msg, tag_block: HATagBlock = None, with_tag_block=True, talker_id: str = "AIVDM", **kwargs):
122
+ if not isinstance(msg, pyais.messages.Payload):
123
+ raise TechnicalException(f"Parameter 'msg' is not an AIS message (obtained type: {Typing.get_object_class_fullname(msg)})")
124
+
125
+ seq_id = kwargs.pop('seq_id') if 'seq_id' in kwargs else self.__tag_block_group_id % 10
126
+ group_id = kwargs.pop('group_id') if 'group_id' in kwargs else None
127
+
128
+ sentences = pyais.encode_msg(msg, seq_id=seq_id, talker_id=talker_id, **kwargs)
129
+ return self.__encode_add_tag_block(sentences, tag_block, with_tag_block=with_tag_block, group_id=group_id)
130
+
131
+ def encode_data(self, data, tag_block: HATagBlock = None, with_tag_block=True, talker_id: str = "AIVDM", **kwargs):
132
+ if not isinstance(data, dict):
133
+ raise TechnicalException(f"Parameter 'data' is not a dict (obtained type: {Typing.get_object_class_fullname(data)})")
134
+
135
+ seq_id = kwargs.pop('seq_id') if 'seq_id' in kwargs else self.__tag_block_group_id % 10
136
+ group_id = kwargs.pop('group_id') if 'group_id' in kwargs else None
137
+
138
+ sentences = pyais.encode_dict(data, seq_id=seq_id, talker_id=talker_id, **kwargs)
139
+ return self.__encode_add_tag_block(sentences, tag_block, with_tag_block=with_tag_block, group_id=group_id)
140
+
141
+ def encode_table(self, table, tag_block: HATagBlock = None, with_tag_block=True, talker_id: str = "AIVDM", **kwargs):
142
+ data = self.__convert_table_to_dict(table)
143
+ return self.encode_data(data, tag_block=tag_block, with_tag_block=with_tag_block, talker_id=talker_id, **kwargs)
144
+
145
+ def __encode_add_tag_block(self, encoded_sentences, tag_block: HATagBlock = None, with_tag_block=True, group_id=None):
146
+ from pyais.messages import TagBlockGroup
147
+
148
+ if not with_tag_block:
149
+ return encoded_sentences
150
+
151
+ res = []
152
+ nb_sentences = len(encoded_sentences)
153
+ if nb_sentences > 1 and group_id is None:
154
+ group_id = self.__tag_block_group_id
155
+ # Increment group_id for next message needing a group_id
156
+ self.__new_tag_block_group_id()
157
+ elif nb_sentences == 1:
158
+ # No group tag block is needed
159
+ group_id = None
160
+
161
+ for index, sentence in enumerate(encoded_sentences):
162
+ sentence_tag_block = copy.deepcopy(tag_block) if index == 0 else None
163
+ if group_id is not None:
164
+ if sentence_tag_block is None:
165
+ sentence_tag_block = HATagBlock()
166
+ sentence_tag_block._group = TagBlockGroup(msg_id=index+1, total=nb_sentences, group_id=group_id)
167
+
168
+ if sentence_tag_block is not None:
169
+ res.append('\\' + sentence_tag_block.to_raw().decode() + '\\' + sentence)
170
+ else:
171
+ res.append(sentence)
172
+
173
+ return res
174
+
175
+ def __new_tag_block_group_id(self):
176
+ self.__tag_block_group_id += 1
177
+ if self.__tag_block_group_id > 9999:
178
+ self.__tag_block_group_id = 0
179
+ return self.__tag_block_group_id
180
+
181
+ def convert_message_to_binary_str(self, msg):
182
+ return msg.to_bitarray().to01()
183
+
184
+ def convert_message_to_bytes(self, msg):
185
+ return msg.to_bitarray().tobytes()
186
+
187
+ def __get_message_type(self, msg_type:int):
188
+ import importlib
189
+ module = importlib.import_module('pyais.messages')
190
+ res = getattr(module, f"MessageType{msg_type}")
191
+ return res
192
+
193
+ def __convert_table_to_dict(self, table):
194
+ if not ValueTableManager.is_table_with_header(table):
195
+ raise TechnicalException(f"Parameter 'table' is not a table with header (obtained type: {Typing.get_object_class_fullname(table)})")
196
+
197
+ if ValueTableManager.verify_table_is_name_value_table(table, raise_exception=False):
198
+ res = ValueTableConverter.convert_name_value_table_2_dict(table)
199
+ else:
200
+ res = ValueTableConverter.convert_table_with_header_to_dict(table)
201
+ return res
202
+
203
+
204
+
@@ -122,10 +122,14 @@ class PathManager(object):
122
122
  else:
123
123
  os.replace(src, dst)
124
124
 
125
+ def get_user_home_path(self):
126
+ import pathlib
127
+ return str(pathlib.Path.home())
128
+
125
129
  def get_local_resources_path(self, name=None):
126
- base_path = os.getenv('HOLADO_TEST_LOCAL_RESOURCES_BASEDIR')
130
+ base_path = os.getenv('HOLADO_LOCAL_RESOURCES_BASEDIR')
127
131
  if base_path is None:
128
- raise Exception("Missing environment variable HOLADO_TEST_LOCAL_RESOURCES_BASEDIR with HolAdo local resources base path")
132
+ base_path = os.path.join(self.get_user_home_path(), '.holado', 'resources')
129
133
 
130
134
  if name is not None:
131
135
  return os.path.join(base_path, name)
@@ -133,9 +137,9 @@ class PathManager(object):
133
137
  return base_path
134
138
 
135
139
  def get_reports_path(self, name=None):
136
- base_path = os.getenv('HOLADO_TEST_OUTPUT_BASEDIR')
140
+ base_path = os.getenv('HOLADO_OUTPUT_BASEDIR')
137
141
  if base_path is None:
138
- raise Exception("Missing environment variable HOLADO_TEST_OUTPUT_BASEDIR with HolAdo output base path")
142
+ base_path = os.path.join(self.get_user_home_path(), '.holado', 'output')
139
143
 
140
144
  if name is not None:
141
145
  return os.path.join(base_path, "reports", name)
@@ -0,0 +1,16 @@
1
+ import holado
2
+
3
+
4
+ # Initialize HolAdo with default behaviours and custom parameters
5
+
6
+ holado.initialize_for_script(log_on_console=True, log_in_file=True)
7
+
8
+ import logging
9
+ logging.print("After 'holado.initialize_for_script(log_on_console=True, log_in_file=True)', HolAdo is initialized for scripts with:")
10
+ logging.print(" - add logging levels 'trace' and 'print'")
11
+ logging.print(" - do logs on console and in file")
12
+ logging.print(" - a default session context is initialialized with all available HolAdo services")
13
+ logging.print(" - a session folder is created that will contains at least log files")
14
+ logging.print(" - launch garbage collector periodically (without specifying garbage_collector_periodicity, default periodicity is 10 s)")
15
+
16
+
@@ -0,0 +1,23 @@
1
+ import holado
2
+
3
+
4
+ # Minimal HolAdo initialization for scripts
5
+ holado.initialize_for_script()
6
+
7
+ import logging
8
+ logging.print("After 'holado.initialize_for_script()', HolAdo is initialized minimally for scripts with:")
9
+ logging.print(" - add logging levels 'trace' and 'print'")
10
+ logging.print(" - do logs on console but not in file")
11
+ logging.print(" - a default session context is initialialized with all available HolAdo services")
12
+ logging.print(" - no session folder is created")
13
+
14
+
15
+ # Launch manually garbage collector periodically
16
+ from holado.common.tools.gc_manager import GcManager
17
+ from holado.common.handlers.undefined import default_value
18
+ GcManager.collect_periodically(collect_periodicity=default_value)
19
+ logging.print("After 'GcManager.collect_periodically(collect_periodicity=default_value)', garbage collector is launched periodically (with default periodicity that is 10 s)")
20
+
21
+
22
+
23
+
@@ -0,0 +1,13 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+
4
+ # This main is only needed to debug behave execution (and thus testing solution) with breakpoints
5
+
6
+ import re
7
+ import sys
8
+
9
+ from behave.__main__ import main
10
+
11
+ if __name__ == '__main__':
12
+ sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
13
+ sys.exit(main())