holado 0.22.0.dev0__tar.gz → 0.22.0.dev2__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.
Files changed (861) hide show
  1. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/PKG-INFO +2 -2
  2. holado-0.22.0.dev2/packaging/VERSION +1 -0
  3. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tools/string_tools.py +7 -8
  4. holado-0.22.0.dev2/src/holado_data/data/encoder/BaseXEncoder.py +125 -0
  5. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/standard_library/hashlib.py +6 -6
  6. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/campaign/campaign_manager.py +156 -110
  7. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/report/builders/debug_qa_scenarios_report_builder.py +3 -3
  8. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/report/builders/debug_random_report_builder.py +3 -3
  9. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/report/builders/detailed_scenario_report_builder.py +26 -20
  10. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/report/builders/execution_historic_report_builder.py +1 -0
  11. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/report/builders/failure_report_builder.py +3 -3
  12. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/report/builders/short_scenario_report_builder.py +3 -3
  13. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/report/builders/summary_scenario_report_builder.py +3 -3
  14. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/behave/context/behave_session_context.py +2 -2
  15. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/behave/scenario/behave_scenario_tools.py +94 -2
  16. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/scenario/scenario_tools.py +231 -58
  17. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/test_config.py +10 -1
  18. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/tools/test_server/client/rest/test_server_client.py +14 -6
  19. holado-0.22.0.dev2/src/holado_test/tools/test_server/server/migrate/migrate_to_v0.22.py +157 -0
  20. holado-0.22.0.dev2/src/holado_test/tools/test_server/server/requirements.txt +2 -0
  21. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/tools/test_server/server/rest/api/campaign/scenario.py +9 -4
  22. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/tools/test_server/server/rest/openapi.yaml +14 -2
  23. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_value/common/tools/unique_value_manager.py +9 -37
  24. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/api/REST.feature +1 -0
  25. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/api/gRPC.feature +3 -0
  26. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/common/multiprocessing/simple.feature +2 -0
  27. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/common/system/commands.feature +4 -0
  28. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/common/system/system.feature +1 -0
  29. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/common/tables/table.feature +10 -0
  30. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/common/tables/value_table_conversion.feature +1 -0
  31. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/common/tools/DateTime.feature +5 -0
  32. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/common/tools/UniqueValueManager.feature +5 -0
  33. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/ais_message-bitarray_to_nmea.feature +4 -1
  34. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/ais_message-nmea_raw_to_dict.feature +3 -0
  35. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-10.feature +1 -0
  36. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-12.feature +1 -0
  37. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-14.feature +1 -0
  38. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-15.feature +1 -0
  39. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-16.feature +1 -0
  40. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-17.feature +1 -0
  41. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-18.feature +1 -0
  42. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-19.feature +1 -0
  43. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-1_2_3.feature +1 -0
  44. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-20.feature +1 -0
  45. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-21.feature +1 -0
  46. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-22.feature +2 -0
  47. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-23.feature +1 -0
  48. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-24.feature +2 -0
  49. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-25.feature +4 -0
  50. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-26.feature +4 -0
  51. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-27.feature +1 -0
  52. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-4_11.feature +1 -0
  53. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-5.feature +1 -0
  54. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-6.feature +1 -0
  55. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-7_13.feature +1 -0
  56. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-8.feature +1 -0
  57. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/message_types/type-9.feature +1 -0
  58. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_ais/tag_block.feature +1 -0
  59. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_binary/bit_series.error.feature +2 -0
  60. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_binary/bit_series.feature +7 -0
  61. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_email/email.feature +1 -0
  62. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_protobuf/protobuf.feature +10 -0
  63. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_python/convert.feature +1 -0
  64. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_python/iterable.feature +2 -0
  65. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_python/standard_library/socket/local_echo_server/socket_reset.feature +4 -0
  66. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_python/standard_library/socket/local_echo_server/socket_with_tls_and_verify.feature +4 -0
  67. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_python/standard_library/socket/local_echo_server/socket_with_tls_without_verify.feature +4 -0
  68. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_python/standard_library/socket/local_echo_server/socket_without_tls.feature +3 -0
  69. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_python/standard_library/socket/tcpbin.com/socket_with_mtls.feature +4 -0
  70. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_python/standard_library/socket/tcpbin.com/socket_with_tls.feature +4 -0
  71. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_python/standard_library/socket/tcpbin.com/socket_without_tls.feature +4 -0
  72. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_scripting/common/tools/dynamic_text_manager.feature +1 -0
  73. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_scripting/common/tools/expression_evaluator.feature +7 -0
  74. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_scripting/common/tools/variable_manager.feature +6 -0
  75. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_scripting/text/interpreter/interpreter.error.feature +2 -0
  76. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_scripting/text/interpreter/interpreter.feature +7 -0
  77. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/holado_yaml/yaml.feature +8 -0
  78. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/ipc/json.feature +1 -0
  79. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/scenario/scenario.feature +5 -0
  80. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/test_steps/behave.feature +14 -0
  81. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/test_steps/common.feature +4 -0
  82. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/tools/RabbitMQ.feature +7 -0
  83. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/tools/RabbitMQ_steps.feature +3 -0
  84. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/tools/S3/boto3_client.feature +1 -0
  85. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/tools/S3/minio_client.feature +1 -0
  86. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/tools/db_sqlite3.feature +1 -0
  87. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/NonReg/tools/sFTP.feature +1 -0
  88. holado-0.22.0.dev0/packaging/VERSION +0 -1
  89. holado-0.22.0.dev0/src/holado_test/tools/test_server/server/requirements.txt +0 -2
  90. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/.gitignore +0 -0
  91. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/.gitlab-ci.yml +0 -0
  92. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/Dockerfile +0 -0
  93. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/INSTALL +0 -0
  94. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/LICENSE +0 -0
  95. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/NOTES.md +0 -0
  96. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/README.md +0 -0
  97. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/README.rst +0 -0
  98. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/TODO +0 -0
  99. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/build/Dockerfile_python3.13_alpine3.20 +0 -0
  100. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/build/Dockerfile_with_docker +0 -0
  101. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/dependencies/protoc/README.txt +0 -0
  102. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/packaging/generate_distribution_archive.sh +0 -0
  103. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/packaging/others/publish_distribution_archive_on_testpypi.sh +0 -0
  104. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/packaging/publish_distribution_archive.sh +0 -0
  105. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/pyproject.toml +0 -0
  106. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/requirements.txt +0 -0
  107. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/requirements_docker.txt +0 -0
  108. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/resources/scripts/generate_scenario_duration_limits.py +0 -0
  109. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/resources/scripts/generate_scenario_duration_tags.py +0 -0
  110. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/resources/scripts/print_execution_historic.py +0 -0
  111. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/resources/scripts/update_scenario_duration_tags.py +0 -0
  112. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/resources/ssh/id_rsa +0 -0
  113. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/resources/ssh/id_rsa.pub +0 -0
  114. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/run_test.sh +0 -0
  115. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/run_test_draft.sh +0 -0
  116. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/run_test_needupdate.sh +0 -0
  117. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/run_test_nonreg.sh +0 -0
  118. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado/__init__.py +0 -0
  119. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado/common/__init__.py +0 -0
  120. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado/common/context/__init__.py +0 -0
  121. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado/common/context/context.py +0 -0
  122. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado/common/context/service_manager.py +0 -0
  123. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado/common/context/session_context.py +0 -0
  124. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado/common/handlers/__init__.py +0 -0
  125. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado/common/handlers/enums.py +0 -0
  126. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado/common/handlers/object.py +0 -0
  127. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado/common/handlers/undefined.py +0 -0
  128. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado/common/tools/__init__.py +0 -0
  129. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado/common/tools/gc_manager.py +0 -0
  130. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado/holado_config.py +0 -0
  131. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ais/__init__.py +0 -0
  132. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ais/ais/MaritimeIdentificationDigits.csv +0 -0
  133. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ais/ais/ais_manager.py +0 -0
  134. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ais/ais/ais_messages.py +0 -0
  135. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ais/ais/ais_payload.py +0 -0
  136. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ais/ais/enums.py +0 -0
  137. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ais/ais/patch_pyais.py +0 -0
  138. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ais/tests/behave/steps/__init__.py +0 -0
  139. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ais/tests/behave/steps/ais/__init__.py +0 -0
  140. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ais/tests/behave/steps/ais/ais_manager_steps.py +0 -0
  141. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ais/tests/behave/steps/ais/ais_messages_steps.py +0 -0
  142. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ais/tests/behave/steps/ais/ais_tag_block_steps.py +0 -0
  143. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_api/README.txt +0 -0
  144. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_api/__init__.py +0 -0
  145. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_api/client/README.txt +0 -0
  146. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_api/server/README.txt +0 -0
  147. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_api/tests/behave/steps/__init__.py +0 -0
  148. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_api/tests/behave/steps/private/__init__.py +0 -0
  149. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_api/tests/behave/steps/server/connexion_server_steps.py +0 -0
  150. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_binary/__init__.py +0 -0
  151. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_binary/ipc/binary.py +0 -0
  152. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_binary/ipc/bit_series.py +0 -0
  153. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_binary/tests/behave/steps/__init__.py +0 -0
  154. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_binary/tests/behave/steps/ipc/binary_steps.py +0 -0
  155. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_binary/tests/behave/steps/ipc/bit_series_steps.py +0 -0
  156. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_context/__init__.py +0 -0
  157. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_context/tests/behave/steps/__init__.py +0 -0
  158. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_context/tests/behave/steps/common/context_steps.py +0 -0
  159. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/__init__.py +0 -0
  160. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/__init__.py +0 -0
  161. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/actors/actions.py +0 -0
  162. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/actors/actor.py +0 -0
  163. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/actors/element_actor.py +0 -0
  164. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/actors/find_actor.py +0 -0
  165. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/actors/tree_actor.py +0 -0
  166. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/actors/verify_actions.py +0 -0
  167. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/block/base.py +0 -0
  168. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/block/block_manager.py +0 -0
  169. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/block/block_method.py +0 -0
  170. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/block/block_steps.py +0 -0
  171. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/block/function.py +0 -0
  172. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/block/scope_function.py +0 -0
  173. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/block/scope_manager.py +0 -0
  174. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/block/scope_steps.py +0 -0
  175. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/criterias/and_criteria.py +0 -0
  176. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/criterias/criteria.py +0 -0
  177. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/criterias/or_criteria.py +0 -0
  178. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/criterias/tools/criteria_context.py +0 -0
  179. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/criterias/tools/criteria_parameters.py +0 -0
  180. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/drivers/driver.py +0 -0
  181. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/drivers/element_driver.py +0 -0
  182. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/drivers/element_internal_api.py +0 -0
  183. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/drivers/internal_api.py +0 -0
  184. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/drivers/tree_driver.py +0 -0
  185. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/drivers/tree_internal_api.py +0 -0
  186. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/exceptions/__init__.py +0 -0
  187. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/exceptions/element_exception.py +0 -0
  188. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/exceptions/exceptions.py +0 -0
  189. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/exceptions/functional_exception.py +0 -0
  190. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/exceptions/holado_exception.py +0 -0
  191. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/exceptions/technical_exception.py +0 -0
  192. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/exceptions/timeout_exception.py +0 -0
  193. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/exceptions/verify_exception.py +0 -0
  194. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/finders/after_in_tree_finder.py +0 -0
  195. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/finders/element_finder.py +0 -0
  196. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/finders/else_finder.py +0 -0
  197. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/finders/finder.py +0 -0
  198. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/finders/or_finder.py +0 -0
  199. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/finders/then_finder.py +0 -0
  200. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/finders/tools/enums.py +0 -0
  201. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/finders/tools/find_builder.py +0 -0
  202. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/finders/tools/find_context.py +0 -0
  203. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/finders/tools/find_info.py +0 -0
  204. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/finders/tools/find_parameters.py +0 -0
  205. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/finders/tools/find_updater.py +0 -0
  206. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/finders/tools/finder_info.py +0 -0
  207. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/finders/tree_finder.py +0 -0
  208. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/handlers/__init__.py +0 -0
  209. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/handlers/abstracts/base_redo.py +0 -0
  210. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/handlers/abstracts/get_or_create.py +0 -0
  211. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/handlers/element_holder.py +0 -0
  212. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/handlers/enums.py +0 -0
  213. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/handlers/exceptions/redo_exceptions.py +0 -0
  214. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/handlers/features/resource_by_name.py +0 -0
  215. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/handlers/features/resource_by_type.py +0 -0
  216. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/handlers/redo.py +0 -0
  217. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/handlers/wait.py +0 -0
  218. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/inspectors/element_inspector.py +0 -0
  219. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/inspectors/inspector.py +0 -0
  220. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/inspectors/tools/inspect_builder.py +0 -0
  221. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/inspectors/tools/inspect_context.py +0 -0
  222. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/inspectors/tools/inspect_parameters.py +0 -0
  223. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/inspectors/tree_inspector.py +0 -0
  224. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/__init__.py +0 -0
  225. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/comparators/__init__.py +0 -0
  226. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/comparators/boolean_table_cell_comparator.py +0 -0
  227. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/comparators/bytes_table_cell_comparator.py +0 -0
  228. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/comparators/datetime_table_cell_comparator.py +0 -0
  229. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/comparators/float_table_cell_comparator.py +0 -0
  230. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/comparators/integer_table_cell_comparator.py +0 -0
  231. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/comparators/internal_table_cell_comparator.py +0 -0
  232. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/comparators/string_table_cell_comparator.py +0 -0
  233. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/comparators/string_table_comparator.py +0 -0
  234. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/comparators/string_table_row_comparator.py +0 -0
  235. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/comparators/table_cell_comparator.py +0 -0
  236. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/comparators/table_comparator.py +0 -0
  237. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/comparators/table_comparator_manager.py +0 -0
  238. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/comparators/table_row_comparator.py +0 -0
  239. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/comparators/table_with_header_comparator.py +0 -0
  240. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/converters/__init__.py +0 -0
  241. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/converters/table_converter.py +0 -0
  242. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/enums.py +0 -0
  243. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/table.py +0 -0
  244. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/table_cell.py +0 -0
  245. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/table_manager.py +0 -0
  246. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/table_row.py +0 -0
  247. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tables/table_with_header.py +0 -0
  248. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tools/__init__.py +0 -0
  249. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tools/comparators/comparator.py +0 -0
  250. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tools/comparators/object_comparator.py +0 -0
  251. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tools/converters/converter.py +0 -0
  252. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tools/path_manager.py +0 -0
  253. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/common/tools/tools.py +0 -0
  254. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/tests/behave/steps/__init__.py +0 -0
  255. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/tests/behave/steps/common/__init__.py +0 -0
  256. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/tests/behave/steps/common/common_steps.py +0 -0
  257. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/tests/behave/steps/common/config_steps.py +0 -0
  258. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/tests/behave/steps/common/resource_steps.py +0 -0
  259. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/tests/behave/steps/common/tables_steps.py +0 -0
  260. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/tools/__init__.py +0 -0
  261. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/tools/abstracts/__init__.py +0 -0
  262. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/tools/abstracts/blocking_command_service.py +0 -0
  263. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_core/tools/abstracts/service.py +0 -0
  264. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_crypto/__init__.py +0 -0
  265. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_crypto/crypto/crypto.py +0 -0
  266. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_crypto/crypto/key.py +0 -0
  267. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_crypto/crypto/tcpbin.py +0 -0
  268. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_crypto/crypto/transport/__init__.py +0 -0
  269. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_crypto/crypto/transport/crc.py +0 -0
  270. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_crypto/tests/behave/steps/__init__.py +0 -0
  271. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_crypto/tests/behave/steps/crypto_steps.py +0 -0
  272. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_crypto/tests/behave/steps/key_steps.py +0 -0
  273. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_crypto/tests/behave/steps/tcpbin_steps.py +0 -0
  274. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_data/__init__.py +0 -0
  275. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_data/data/generator/base.py +0 -0
  276. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_data/data/generator/generator_manager.py +0 -0
  277. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_data/data/generator/python_generator.py +0 -0
  278. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_data/data/uid/uid_generator.py +0 -0
  279. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_data/tests/behave/steps/__init__.py +0 -0
  280. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_data/tests/behave/steps/data/generator_steps.py +0 -0
  281. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_data/tests/behave/steps/tools/utils_steps.py +0 -0
  282. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_db/__init__.py +0 -0
  283. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_db/tests/behave/steps/__init__.py +0 -0
  284. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_db/tests/behave/steps/tools/db/db_client_steps.py +0 -0
  285. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_db/tests/behave/steps/tools/db/postgresql_client_steps.py +0 -0
  286. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_db/tests/behave/steps/tools/db/sqlite_client_steps.py +0 -0
  287. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_db/tools/db/clients/base/db_audit.py +0 -0
  288. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_db/tools/db/clients/base/db_client.py +0 -0
  289. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_db/tools/db/clients/postgresql/postgresql_audit.py +0 -0
  290. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_db/tools/db/clients/postgresql/postgresql_client.py +0 -0
  291. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_db/tools/db/clients/sqlite/sqlite_audit.py +0 -0
  292. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_db/tools/db/clients/sqlite/sqlite_client.py +0 -0
  293. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_db/tools/db/db_manager.py +0 -0
  294. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_db/tools/db/query/base/query_builder.py +0 -0
  295. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_db/tools/db/query/pypika/pypika_query_builder.py +0 -0
  296. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_db/tools/db/query/query_manager.py +0 -0
  297. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_django/__init__.py +0 -0
  298. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_django/server/HOWTO.txt +0 -0
  299. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_django/server/django_projects/rest_api/db.sqlite3 +0 -0
  300. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_django/server/django_projects/rest_api/manage.py +0 -0
  301. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_django/server/django_projects/rest_api/rest_api/__init__.py +0 -0
  302. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_django/server/django_projects/rest_api/rest_api/application/__init__.py +0 -0
  303. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_django/server/django_projects/rest_api/rest_api/application/admin.py +0 -0
  304. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_django/server/django_projects/rest_api/rest_api/application/apps.py +0 -0
  305. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_django/server/django_projects/rest_api/rest_api/application/migrations/__init__.py +0 -0
  306. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_django/server/django_projects/rest_api/rest_api/application/models.py +0 -0
  307. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_django/server/django_projects/rest_api/rest_api/application/tests.py +0 -0
  308. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_django/server/django_projects/rest_api/rest_api/application/views.py +0 -0
  309. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_django/server/django_projects/rest_api/rest_api/asgi.py +0 -0
  310. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_django/server/django_projects/rest_api/rest_api/settings.py +0 -0
  311. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_django/server/django_projects/rest_api/rest_api/urls.py +0 -0
  312. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_django/server/django_projects/rest_api/rest_api/wsgi.py +0 -0
  313. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_django/server/django_server.py +0 -0
  314. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_django/server/grpc_django_server.py +0 -0
  315. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_django/server/patch_djangogrpcframework.py +0 -0
  316. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_django/tests/behave/steps/__init__.py +0 -0
  317. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_django/tests/behave/steps/django_server_steps.py +0 -0
  318. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_docker/__init__.py +0 -0
  319. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_docker/sdk/docker/container_logs.py +0 -0
  320. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_docker/sdk/docker/docker_client.py +0 -0
  321. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_docker/sdk/docker/docker_service.py +0 -0
  322. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_docker/tests/behave/steps/__init__.py +0 -0
  323. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_docker/tests/behave/steps/sdk/docker/container_logs_steps.py +0 -0
  324. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_email/__init__.py +0 -0
  325. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_email/email/smtp_client.py +0 -0
  326. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_email/test_tools/mailhog/mailhog_client.py +0 -0
  327. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_email/test_tools/mailhog/mailhog_server.py +0 -0
  328. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_email/tests/behave/steps/__init__.py +0 -0
  329. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_email/tests/behave/steps/email/email_steps.py +0 -0
  330. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_email/tests/behave/steps/email/smtp_steps.py +0 -0
  331. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_email/tests/behave/steps/test_tools/mailhog_client_steps.py +0 -0
  332. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_email/tests/behave/steps/test_tools/mailhog_server_steps.py +0 -0
  333. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/projects/server_rest/server_rest_example/initialize_holado.py +0 -0
  334. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/projects/server_rest/server_rest_example/rest_api/db.sqlite3 +0 -0
  335. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/projects/server_rest/server_rest_example/rest_api/manage.py +0 -0
  336. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/__init__.py +0 -0
  337. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/__init__.py +0 -0
  338. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/admin.py +0 -0
  339. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/apps.py +0 -0
  340. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/migrations/__init__.py +0 -0
  341. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/models.py +0 -0
  342. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/serializers.py +0 -0
  343. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/tests.py +0 -0
  344. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/application/views.py +0 -0
  345. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/asgi.py +0 -0
  346. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/settings.py +0 -0
  347. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/urls.py +0 -0
  348. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/projects/server_rest/server_rest_example/rest_api/rest_api/wsgi.py +0 -0
  349. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/projects/server_rest/server_rest_example/rest_server.py +0 -0
  350. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/scripts/script_custom_initialization.py +0 -0
  351. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/scripts/script_minimal_initialization.py +0 -0
  352. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/tests/behave/testing_solution/__main__.py +0 -0
  353. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/tests/behave/testing_solution/behave_environment.py +0 -0
  354. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/tests/behave/testing_solution/environment.py +0 -0
  355. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/tests/behave/testing_solution/features/Configuration/Actions/configure_system.feature +0 -0
  356. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/tests/behave/testing_solution/features/NonReg/example.feature +0 -0
  357. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/tests/behave/testing_solution/initialize_holado.py +0 -0
  358. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/tests/behave/testing_solution/logging.conf +0 -0
  359. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/tests/behave/testing_solution/requirements.txt +0 -0
  360. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/tests/behave/testing_solution/run_test.sh +0 -0
  361. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/tests/behave/testing_solution/run_test_nonreg.sh +0 -0
  362. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/tests/behave/testing_solution/src/common/tools/path_manager.py +0 -0
  363. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/tests/behave/testing_solution/src/config/config_manager.py +0 -0
  364. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/tests/behave/testing_solution/src/context/session_context.py +0 -0
  365. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/tests/behave/testing_solution/steps/config_steps.py +0 -0
  366. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_examples/tests/behave/testing_solution/steps/public_steps.py +0 -0
  367. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_grpc/TODO +0 -0
  368. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_grpc/__init__.py +0 -0
  369. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_grpc/api/rpc/TODO.txt +0 -0
  370. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_grpc/api/rpc/grpc_client.py +0 -0
  371. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_grpc/api/rpc/grpc_manager.py +0 -0
  372. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_grpc/ipc/rpc/__init__.py +0 -0
  373. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_grpc/ipc/rpc/grpc_compiler.py +0 -0
  374. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_grpc/ipc/rpc/grpc_services.py +0 -0
  375. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_grpc/tests/behave/steps/__init__.py +0 -0
  376. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_grpc/tests/behave/steps/api/grpc_client_steps.py +0 -0
  377. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_grpc/tests/behave/steps/private/__init__.py +0 -0
  378. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_grpc/tests/behave/steps/private/api/grpc_steps.py +0 -0
  379. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_helper/__init__.py +0 -0
  380. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_helper/debug/README.txt +0 -0
  381. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_helper/debug/memory/memory_profiler.py +0 -0
  382. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_helper/docker/init_user.sh +0 -0
  383. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_helper/docker/logging.conf +0 -0
  384. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_helper/docker/run_holado_test_nonreg_in_docker.sh +0 -0
  385. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_helper/docker/run_terminal_in_docker.sh +0 -0
  386. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_helper/holado_module_template/__init__.py +0 -0
  387. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_helper/holado_module_template/tests/behave/steps/__init__.py +0 -0
  388. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_helper/holado_module_template/tests/behave/steps/private/__init__.py +0 -0
  389. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_helper/initialize_holado.py +0 -0
  390. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_helper/script/action.py +0 -0
  391. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_helper/script/action_script.py +0 -0
  392. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_helper/script/any_action_script.py +0 -0
  393. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_helper/script/behave_action_script.py +0 -0
  394. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_helper/script/csv_action_script.py +0 -0
  395. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_helper/script/initialize_script.py +0 -0
  396. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_helper/script/input_output_script.py +0 -0
  397. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_helper/script/job.py +0 -0
  398. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_helper/script/json_action_script.py +0 -0
  399. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_helper/script/script.py +0 -0
  400. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_json/__init__.py +0 -0
  401. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_json/filesystem/json_file.py +0 -0
  402. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_json/filesystem/stream_json_file.py +0 -0
  403. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_json/ipc/json.py +0 -0
  404. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_json/ipc/json_converter.py +0 -0
  405. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_json/ipc/json_types.py +0 -0
  406. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_json/tests/behave/steps/__init__.py +0 -0
  407. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_json/tests/behave/steps/ipc/__init__.py +0 -0
  408. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_json/tests/behave/steps/ipc/json_steps.py +0 -0
  409. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_logging/__init__.py +0 -0
  410. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_logging/common/logging/holado_logger.py +0 -0
  411. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_logging/common/logging/log_config.py +0 -0
  412. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_logging/common/logging/log_manager.py +0 -0
  413. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/__init__.py +0 -0
  414. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/multiprocessing/context/process_context.py +0 -0
  415. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/multiprocessing/function_process.py +0 -0
  416. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/multiprocessing/periodic_function_process.py +0 -0
  417. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/multiprocessing/process.py +0 -0
  418. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/multiprocessing/processesmanager.py +0 -0
  419. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/multitasking/multitask_manager.py +0 -0
  420. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/multithreading/__init__.py +0 -0
  421. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/multithreading/context/thread_context.py +0 -0
  422. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/multithreading/functionthreaded.py +0 -0
  423. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/multithreading/loopfunctionthreaded.py +0 -0
  424. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/multithreading/loopthread.py +0 -0
  425. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/multithreading/periodicfunctionthreaded.py +0 -0
  426. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/multithreading/reflection/exception.py +0 -0
  427. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/multithreading/reflection/inspect.py +0 -0
  428. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/multithreading/reflection/sys.py +0 -0
  429. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/multithreading/reflection/traceback.py +0 -0
  430. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/multithreading/thread.py +0 -0
  431. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/multithreading/threadsmanager.py +0 -0
  432. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/multithreading/timer.py +0 -0
  433. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/tests/behave/steps/__init__.py +0 -0
  434. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/tests/behave/steps/multiprocessing_steps.py +0 -0
  435. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_multitask/tests/behave/steps/multithreading_steps.py +0 -0
  436. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_protobuf/__init__.py +0 -0
  437. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_protobuf/ipc/protobuf/__init__.py +0 -0
  438. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_protobuf/ipc/protobuf/abstracts/type.py +0 -0
  439. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_protobuf/ipc/protobuf/protobuf_compiler.py +0 -0
  440. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_protobuf/ipc/protobuf/protobuf_converter.py +0 -0
  441. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_protobuf/ipc/protobuf/protobuf_messages.py +0 -0
  442. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_protobuf/ipc/protobuf/protobuf_modifier.py +0 -0
  443. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_protobuf/ipc/protobuf/types/__init__.py +0 -0
  444. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_protobuf/ipc/protobuf/types/google/__init__.py +0 -0
  445. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_protobuf/ipc/protobuf/types/google/protobuf.py +0 -0
  446. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_protobuf/tests/behave/steps/__init__.py +0 -0
  447. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_protobuf/tests/behave/steps/ipc/protobuf_steps.py +0 -0
  448. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/__init__.py +0 -0
  449. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/common/enums.py +0 -0
  450. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/common/iterables.py +0 -0
  451. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/common/tools/comparators/boolean_comparator.py +0 -0
  452. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/common/tools/comparators/bytes_comparator.py +0 -0
  453. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/common/tools/comparators/comparator_manager.py +0 -0
  454. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/common/tools/comparators/datetime_comparator.py +0 -0
  455. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/common/tools/comparators/float_comparator.py +0 -0
  456. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/common/tools/comparators/integer_comparator.py +0 -0
  457. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/common/tools/comparators/json_comparator.py +0 -0
  458. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/common/tools/comparators/object_comparator.py +0 -0
  459. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/common/tools/comparators/string_comparator.py +0 -0
  460. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/common/tools/comparators/type_comparator.py +0 -0
  461. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/common/tools/datetime.py +0 -0
  462. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/common/tools/re_ext.py +0 -0
  463. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/standard_library/csv.py +0 -0
  464. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/standard_library/multiprocessing.py +0 -0
  465. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/standard_library/queue.py +0 -0
  466. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/standard_library/socket/blocking_socket.py +0 -0
  467. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/standard_library/socket/echo_server.py +0 -0
  468. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/standard_library/socket/message_socket.py +0 -0
  469. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/standard_library/socket/non_blocking_socket.py +0 -0
  470. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/standard_library/socket/socket.py +0 -0
  471. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/standard_library/ssl/resources/certificates/NOTES.txt +0 -0
  472. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/standard_library/ssl/resources/certificates/localhost.crt +0 -0
  473. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/standard_library/ssl/resources/certificates/localhost.key +0 -0
  474. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/standard_library/ssl/ssl.py +0 -0
  475. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/standard_library/typing.py +0 -0
  476. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/tests/behave/steps/__init__.py +0 -0
  477. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/tests/behave/steps/builtins/str_steps.py +0 -0
  478. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/tests/behave/steps/convert_steps.py +0 -0
  479. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/tests/behave/steps/iterable_steps.py +0 -0
  480. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/tests/behave/steps/standard_library/csv_steps.py +0 -0
  481. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/tests/behave/steps/standard_library/datetime_steps.py +0 -0
  482. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/tests/behave/steps/standard_library/hashlib_steps.py +0 -0
  483. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/tests/behave/steps/standard_library/multiprocessing_steps.py +0 -0
  484. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/tests/behave/steps/standard_library/queue_steps.py +0 -0
  485. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/tests/behave/steps/standard_library/socket_steps.py +0 -0
  486. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_python/tests/behave/steps/standard_library/ssl_steps.py +0 -0
  487. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_rabbitmq/__init__.py +0 -0
  488. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_rabbitmq/tests/behave/steps/__init__.py +0 -0
  489. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_rabbitmq/tests/behave/steps/tools/rabbitmq_client_steps.py +0 -0
  490. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_rabbitmq/tests/behave/steps/tools/rabbitmq_server_steps.py +0 -0
  491. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_rabbitmq/tools/rabbitmq/rabbitmq_blocking_client.py +0 -0
  492. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_rabbitmq/tools/rabbitmq/rabbitmq_client.py +0 -0
  493. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_rabbitmq/tools/rabbitmq/rabbitmq_manager.py +0 -0
  494. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_rabbitmq/tools/rabbitmq/rabbitmq_select_client.py +0 -0
  495. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_rabbitmq/tools/rabbitmq/rabbitmq_server.py +0 -0
  496. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_redis/__init__.py +0 -0
  497. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_redis/tests/behave/steps/__init__.py +0 -0
  498. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_redis/tests/behave/steps/tools/redis_client_steps.py +0 -0
  499. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_redis/tools/redis/TODO.txt +0 -0
  500. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_redis/tools/redis/redis_client.py +0 -0
  501. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_redis/tools/redis/redis_manager.py +0 -0
  502. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/__init__.py +0 -0
  503. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/campaign/campaign_report_exporter.py +0 -0
  504. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/qa/qa_report.py +0 -0
  505. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/report/analyze/execution_historic_manager.py +0 -0
  506. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/report/analyze/scenario_duration_manager.py +0 -0
  507. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/report/builders/base_report_builder.py +0 -0
  508. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/report/builders/debug_relevancy_summary_report_builder.py +0 -0
  509. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/report/builders/qa_report_builder.py +0 -0
  510. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/report/builders/summary_report_builder.py +0 -0
  511. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/report/builders/summary_run_report_builder.py +0 -0
  512. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/report/enums.py +0 -0
  513. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/report/execution_historic.py +0 -0
  514. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/report/report_manager.py +0 -0
  515. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/report/reports/base_report.py +0 -0
  516. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/report/reports/feature_report.py +0 -0
  517. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_report/report/reports/scenario_report.py +0 -0
  518. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_resource/__init__.py +0 -0
  519. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_resource/resource/__init__.py +0 -0
  520. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_resource/resource/persisted_data_manager.py +0 -0
  521. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_resource/resource/persisted_key_value_manager.py +0 -0
  522. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_resource/resource/persisted_method_to_call_manager.py +0 -0
  523. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_resource/resource/resource_manager.py +0 -0
  524. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_resource/resource/table_data_manager.py +0 -0
  525. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_resource/tests/behave/steps/__init__.py +0 -0
  526. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_resource/tests/behave/steps/private/__init__.py +0 -0
  527. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_rest/__init__.py +0 -0
  528. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_rest/api/rest/TODO.txt +0 -0
  529. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_rest/api/rest/rest_client.py +0 -0
  530. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_rest/api/rest/rest_manager.py +0 -0
  531. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_rest/tests/behave/steps/__init__.py +0 -0
  532. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_rest/tests/behave/steps/api/__init__.py +0 -0
  533. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_rest/tests/behave/steps/api/rest_client_steps.py +0 -0
  534. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_rest/tests/behave/steps/private/__init__.py +0 -0
  535. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_rest/tests/behave/steps/private/api/__init__.py +0 -0
  536. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_rest/tests/behave/steps/private/api/rest_steps.py +0 -0
  537. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_s3/__init__.py +0 -0
  538. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_s3/tests/behave/steps/__init__.py +0 -0
  539. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_s3/tests/behave/steps/private/__init__.py +0 -0
  540. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_s3/tests/behave/steps/private/tools/s3_steps.py +0 -0
  541. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_s3/tests/behave/steps/tools/s3_client_steps.py +0 -0
  542. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_s3/tests/behave/steps/tools/s3_server_steps.py +0 -0
  543. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_s3/tools/s3/__init__.py +0 -0
  544. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_s3/tools/s3/boto3_s3_client.py +0 -0
  545. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_s3/tools/s3/minio_client.py +0 -0
  546. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_s3/tools/s3/moto_server.py +0 -0
  547. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/__init__.py +0 -0
  548. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/common/tools/dynamic_text_manager.py +0 -0
  549. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/common/tools/evaluate_parameters.py +0 -0
  550. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/common/tools/expression_evaluator.py +0 -0
  551. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/common/tools/variable_manager.py +0 -0
  552. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/tests/behave/steps/__init__.py +0 -0
  553. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/tests/behave/steps/common/tools/variable_convert_steps.py +0 -0
  554. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/tests/behave/steps/common/tools/variable_new_steps.py +0 -0
  555. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/tests/behave/steps/common/tools/variable_steps.py +0 -0
  556. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/tests/behave/steps/common/tools/variable_verify_steps.py +0 -0
  557. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/tests/behave/steps/scenario/function_steps.py +0 -0
  558. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/tests/behave/steps/scenario/if_steps.py +0 -0
  559. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/tests/behave/steps/scenario/loop_steps.py +0 -0
  560. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/text/base/base_function.py +0 -0
  561. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/text/base/base_verify_function.py +0 -0
  562. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/text/base/text_inspecter.py +0 -0
  563. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/text/interpreter/exceptions/interpreter_exception.py +0 -0
  564. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/text/interpreter/functions/function_apply_function.py +0 -0
  565. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/text/interpreter/functions/function_cast.py +0 -0
  566. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/text/interpreter/functions/function_convert.py +0 -0
  567. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/text/interpreter/functions/function_dynamic_value.py +0 -0
  568. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/text/interpreter/functions/function_escape_all_bytes.py +0 -0
  569. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/text/interpreter/functions/function_exists_variable.py +0 -0
  570. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/text/interpreter/functions/function_hex_to_bytes.py +0 -0
  571. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/text/interpreter/functions/function_hex_to_int.py +0 -0
  572. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/text/interpreter/functions/function_to_base_64.py +0 -0
  573. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/text/interpreter/functions/function_to_bytes.py +0 -0
  574. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/text/interpreter/functions/function_to_hex.py +0 -0
  575. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/text/interpreter/functions/function_to_string.py +0 -0
  576. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/text/interpreter/text_interpreter.py +0 -0
  577. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/text/verifier/exceptions/verifier_exception.py +0 -0
  578. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/text/verifier/functions/verify_function_extract_in.py +0 -0
  579. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/text/verifier/functions/verify_function_match_pattern.py +0 -0
  580. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_scripting/text/verifier/text_verifier.py +0 -0
  581. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_security/__init__.py +0 -0
  582. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_security/tests/behave/steps/__init__.py +0 -0
  583. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_security/tests/behave/steps/tools/keycloak_client_steps.py +0 -0
  584. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_security/token/token_manager.py +0 -0
  585. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_security/tools/__init__.py +0 -0
  586. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_security/tools/keycloak/__init__.py +0 -0
  587. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_security/tools/keycloak/keycloak_client.py +0 -0
  588. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_security/tools/keycloak/keycloak_token_manager.py +0 -0
  589. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_security/tools/keycloak/old/__init__.py +0 -0
  590. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_security/tools/keycloak/old/keycloak_curl_client.py +0 -0
  591. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_sftp/__init__.py +0 -0
  592. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_sftp/tests/behave/steps/__init__.py +0 -0
  593. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_sftp/tests/behave/steps/private/__init__.py +0 -0
  594. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_sftp/tests/behave/steps/private/tools/sftp_steps.py +0 -0
  595. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_sftp/tests/behave/steps/tools/sftp_client_steps.py +0 -0
  596. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_sftp/tests/behave/steps/tools/sftp_server_steps.py +0 -0
  597. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_sftp/tools/sftp/__init__.py +0 -0
  598. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_sftp/tools/sftp/sftp_client.py +0 -0
  599. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_sftp/tools/sftp/sftp_server.py +0 -0
  600. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_swagger/__init__.py +0 -0
  601. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_swagger/swagger_hub/mockserver/mockserver_client.py +0 -0
  602. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_swagger/swagger_hub/mockserver/mockserver_manager.py +0 -0
  603. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_swagger/tests/behave/steps/__init__.py +0 -0
  604. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_swagger/tests/behave/steps/swagger_hub/mockserver_steps.py +0 -0
  605. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_system/system/command/command.py +0 -0
  606. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_system/system/command/command_result.py +0 -0
  607. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_system/system/command/curl_command.py +0 -0
  608. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_system/system/command/exceptions.py +0 -0
  609. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_system/system/filesystem/file.py +0 -0
  610. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_system/system/global_system.py +0 -0
  611. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_system/tests/behave/steps/__init__.py +0 -0
  612. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_system/tests/behave/steps/system/commands_steps.py +0 -0
  613. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_system/tests/behave/steps/system/file_steps.py +0 -0
  614. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_system/tests/behave/steps/system/system_steps.py +0 -0
  615. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/__init__.py +0 -0
  616. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/behave/__init__.py +0 -0
  617. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/behave/behave.py +0 -0
  618. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/behave/behave_environment.py +0 -0
  619. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/behave/behave_function.py +0 -0
  620. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/behave/behave_manager.py +0 -0
  621. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/behave/context/behave_step_context.py +0 -0
  622. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/behave/independant_runner.py +0 -0
  623. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/behave/scenario/__init__.py +0 -0
  624. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/behave/scenario/behave_step_tools.py +0 -0
  625. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/common/context/context_tools.py +0 -0
  626. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/common/context/feature_context.py +0 -0
  627. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/common/context/scenario_context.py +0 -0
  628. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/common/context/step_context.py +0 -0
  629. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/common/exceptions/undefined_step_exception.py +0 -0
  630. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/scenario/step_tools.py +0 -0
  631. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/scenario/tester_tools.py +0 -0
  632. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/tests/behave/steps/__init__.py +0 -0
  633. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/tests/behave/steps/scenario/exception_steps.py +0 -0
  634. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/tests/behave/steps/scenario/scenario_steps.py +0 -0
  635. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/tests/behave/steps/scenario/tester_steps.py +0 -0
  636. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/tools/scripts/reporting_qa.py +0 -0
  637. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/tools/scripts/reporting_qa.sh +0 -0
  638. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/tools/test_server/server/Dockerfile +0 -0
  639. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/tools/test_server/server/core/server_context.py +0 -0
  640. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/tools/test_server/server/core/server_manager.py +0 -0
  641. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/tools/test_server/server/rest/README +0 -0
  642. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/tools/test_server/server/rest/api/__init__.py +0 -0
  643. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/tools/test_server/server/rest/api/campaign/__init__.py +0 -0
  644. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/tools/test_server/server/rest/api/report/__init__.py +0 -0
  645. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/tools/test_server/server/rest/api/tools/__init__.py +0 -0
  646. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/tools/test_server/server/rest/initialize_holado.py +0 -0
  647. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/tools/test_server/server/rest/logging.conf +0 -0
  648. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/tools/test_server/server/rest/run.py +0 -0
  649. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/tools/test_server/server/run.sh +0 -0
  650. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_test/tools/test_server/server/run_test_server_in_docker.sh +0 -0
  651. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/__init__.py +0 -0
  652. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/scripts/execute_persisted_post_processes/execute_persisted_post_processes.py +0 -0
  653. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/scripts/execute_persisted_post_processes/execute_persisted_post_processes.sh +0 -0
  654. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/scripts/execute_persisted_post_processes/initialize_holado.py +0 -0
  655. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tests/behave/steps/__init__.py +0 -0
  656. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tests/behave/steps/tools/host_controller/client_steps.py +0 -0
  657. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_controller/client/rest/host_controller_client.py +0 -0
  658. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_controller/server/Dockerfile +0 -0
  659. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_controller/server/requirements.txt +0 -0
  660. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_controller/server/rest/README +0 -0
  661. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_controller/server/rest/api/__init__.py +0 -0
  662. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_controller/server/rest/api/config.py +0 -0
  663. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_controller/server/rest/api/docker/__init__.py +0 -0
  664. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_controller/server/rest/api/docker/container.py +0 -0
  665. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_controller/server/rest/api/docker/logs.py +0 -0
  666. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_controller/server/rest/api/os.py +0 -0
  667. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_controller/server/rest/initialize_holado.py +0 -0
  668. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_controller/server/rest/logging.conf +0 -0
  669. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_controller/server/rest/openapi.yaml +0 -0
  670. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_controller/server/rest/run.py +0 -0
  671. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_controller/server/run.sh +0 -0
  672. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_controller/server/run_host_controller_in_docker.sh +0 -0
  673. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_viewer/client/rest/host_viewer_client.py +0 -0
  674. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_viewer/server/Dockerfile +0 -0
  675. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_viewer/server/requirements.txt +0 -0
  676. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_viewer/server/rest/README +0 -0
  677. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_viewer/server/rest/api/__init__.py +0 -0
  678. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_viewer/server/rest/api/docker/__init__.py +0 -0
  679. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_viewer/server/rest/api/docker/container.py +0 -0
  680. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_viewer/server/rest/api/os.py +0 -0
  681. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_viewer/server/rest/initialize_holado.py +0 -0
  682. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_viewer/server/rest/openapi.yaml +0 -0
  683. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_viewer/server/rest/run.py +0 -0
  684. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_tools/tools/host_viewer/server/run_host_viewer_in_docker.sh +0 -0
  685. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/__init__.py +0 -0
  686. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/tests/behave/steps/__init__.py +0 -0
  687. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/tests/behave/steps/private/__init__.py +0 -0
  688. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/actors/actions.py +0 -0
  689. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/actors/ui_actor.py +0 -0
  690. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/drivers/ui_driver.py +0 -0
  691. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/drivers/ui_driver_info.py +0 -0
  692. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/drivers/ui_internal_api.py +0 -0
  693. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/exceptions/focus_driver_exception.py +0 -0
  694. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/finders/ui_finder.py +0 -0
  695. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/gui/actors/gui_actor.py +0 -0
  696. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/gui/criterias/enums.py +0 -0
  697. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/gui/criterias/gui_criteria.py +0 -0
  698. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/gui/drivers/gui_driver.py +0 -0
  699. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/gui/drivers/gui_internal_api.py +0 -0
  700. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/gui/finders/gui_finder.py +0 -0
  701. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/gui/handlers/label_gui_context.py +0 -0
  702. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/gui/handlers/zone_gui_context.py +0 -0
  703. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/gui/inspectors/gui_inspector.py +0 -0
  704. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/gui/windows/gui_window.py +0 -0
  705. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/gui/windows/gui_window_info.py +0 -0
  706. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/handlers/ui_context.py +0 -0
  707. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/handlers/ui_manager.py +0 -0
  708. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/inspectors/tools/ui_inspect_builder.py +0 -0
  709. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/inspectors/tools/ui_inspect_context.py +0 -0
  710. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui/ui/inspectors/ui_inspector.py +0 -0
  711. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_box/__init__.py +0 -0
  712. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_box/tests/behave/steps/__init__.py +0 -0
  713. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_box/tests/behave/steps/easygui_steps.py +0 -0
  714. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_box/ui/easygui/easygui_manager.py +0 -0
  715. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_mss/ui/mss/mss_manager.py +0 -0
  716. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/actors/actions.py +0 -0
  717. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/actors/default_selenium_actor.py +0 -0
  718. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/actors/selenium_actor.py +0 -0
  719. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/criterias/selenium_criteria.py +0 -0
  720. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/criterias/selenium_criteria_and_verifier.py +0 -0
  721. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/drivers/selenium_driver.py +0 -0
  722. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/drivers/selenium_internal_api.py +0 -0
  723. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/drivers/web_driver_manager.py +0 -0
  724. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/finders/by_selenium_finder.py +0 -0
  725. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/finders/children_selenium_finder.py +0 -0
  726. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/finders/parent_selenium_finder.py +0 -0
  727. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/finders/selenium_finder.py +0 -0
  728. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/handlers/enums.py +0 -0
  729. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/handlers/selenium_by.py +0 -0
  730. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/handlers/selenium_holder.py +0 -0
  731. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/handlers/selenium_redo.py +0 -0
  732. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/handlers/selenium_ui_manager.py +0 -0
  733. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/inspectors/default_selenium_inspector.py +0 -0
  734. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/inspectors/selenium_inspector.py +0 -0
  735. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/tables/comparators/selenium_2_value_table_cell_comparator.py +0 -0
  736. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/tables/comparators/selenium_2_value_table_comparator.py +0 -0
  737. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/tables/comparators/selenium_2_value_table_row_comparator.py +0 -0
  738. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/tables/comparators/selenium_2_value_table_with_header_comparator.py +0 -0
  739. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/tables/converters/selenium_table_converter.py +0 -0
  740. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/tables/selenium_table.py +0 -0
  741. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/tables/selenium_table_cell.py +0 -0
  742. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/tables/selenium_table_row.py +0 -0
  743. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/tables/selenium_table_with_header.py +0 -0
  744. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/tools/selenium_path_manager.py +0 -0
  745. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/windows/default_selenium_window.py +0 -0
  746. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium/ui/gui/selenium/windows/selenium_window.py +0 -0
  747. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium_angular/__init__.py +0 -0
  748. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium_angular/ui/gui/selenium/actors/angular_selenium_actor.py +0 -0
  749. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium_angular/ui/gui/selenium/inspectors/angular_selenium_inspector.py +0 -0
  750. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium_html/__init__.py +0 -0
  751. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium_html/ui/gui/selenium/actors/html_selenium_actor.py +0 -0
  752. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ui_selenium_html/ui/gui/selenium/inspectors/html_selenium_inspector.py +0 -0
  753. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_value/__init__.py +0 -0
  754. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_value/common/tables/comparators/table_2_value_table_cell_comparator.py +0 -0
  755. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_value/common/tables/comparators/table_2_value_table_comparator.py +0 -0
  756. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_value/common/tables/comparators/table_2_value_table_row_comparator.py +0 -0
  757. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_value/common/tables/comparators/table_2_value_table_with_header_comparator.py +0 -0
  758. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_value/common/tables/converters/value_table_converter.py +0 -0
  759. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_value/common/tables/value_table.py +0 -0
  760. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_value/common/tables/value_table_cell.py +0 -0
  761. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_value/common/tables/value_table_manager.py +0 -0
  762. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_value/common/tables/value_table_row.py +0 -0
  763. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_value/common/tables/value_table_with_header.py +0 -0
  764. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_value/common/tools/value.py +0 -0
  765. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_value/common/tools/value_types.py +0 -0
  766. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_value/tests/behave/steps/__init__.py +0 -0
  767. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_value/tests/behave/steps/private/__init__.py +0 -0
  768. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ws/__init__.py +0 -0
  769. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ws/api/ws/TODO.txt +0 -0
  770. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ws/tests/behave/steps/__init__.py +0 -0
  771. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_ws/tests/behave/steps/api/web_service_steps.py +0 -0
  772. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_xml/__init__.py +0 -0
  773. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_xml/tests/behave/steps/__init__.py +0 -0
  774. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_xml/tests/behave/steps/private/__init__.py +0 -0
  775. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_xml/xml/stream_xml_file.py +0 -0
  776. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_xml/xml/xml_2_dict.py +0 -0
  777. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_xml/xml/xml_file.py +0 -0
  778. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_xml/xml/xml_manager.py +0 -0
  779. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_yaml/__init__.py +0 -0
  780. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_yaml/tests/behave/steps/__init__.py +0 -0
  781. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_yaml/tests/behave/steps/yaml_steps.py +0 -0
  782. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_yaml/yaml/enums.py +0 -0
  783. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_yaml/yaml/pyyaml/pyyaml_client.py +0 -0
  784. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_yaml/yaml/ruamel/ruamel_yaml_client.py +0 -0
  785. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_yaml/yaml/yaml_client.py +0 -0
  786. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/src/holado_yaml/yaml/yaml_manager.py +0 -0
  787. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/steps_catalog.sh +0 -0
  788. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/Dockerfile_test_holado +0 -0
  789. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/__init__.py +0 -0
  790. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/__main__.py +0 -0
  791. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/build_docker_image_to_test_holado_in_docker.sh +0 -0
  792. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/environment.py +0 -0
  793. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/Configuration/Actions/execute_persisted_post_processes.feature +0 -0
  794. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/Test/logger.feature +0 -0
  795. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/Test/test_host_controller.feature +0 -0
  796. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/Test/test_parameter.feature +0 -0
  797. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/features/__init__.py +0 -0
  798. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/initialize_holado.py +0 -0
  799. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/logging.conf +0 -0
  800. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/resources/proto/definitions/protobuf/custom_types/field_types.proto +0 -0
  801. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/resources/proto/definitions/protobuf/protobuf.dev/tutorial/addressbook.proto +0 -0
  802. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/resources/proto/generated/protobuf/custom_types/field_types_pb2.py +0 -0
  803. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/resources/proto/generated/protobuf/protobuf/dev/tutorial/addressbook_pb2.py +0 -0
  804. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/resources/scripts/list_tags.sh +0 -0
  805. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/resources/scripts/update_resources_proto_generated.py +0 -0
  806. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/steps/__init__.py +0 -0
  807. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/steps/private_steps.py +0 -0
  808. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/steps/public_steps.py +0 -0
  809. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/test_holado_session_context.py +0 -0
  810. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/connexion/api_rest/openapi.yaml +0 -0
  811. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/connexion/api_rest/run.py +0 -0
  812. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/README.txt +0 -0
  813. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/__init__.py +0 -0
  814. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/__init__.py +0 -0
  815. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/admin.py +0 -0
  816. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/apps.py +0 -0
  817. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/migrations/__init__.py +0 -0
  818. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/models.py +0 -0
  819. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/proto/__init__.py +0 -0
  820. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/proto/account.proto +0 -0
  821. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/proto/account_pb2.py +0 -0
  822. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/proto/account_pb2_grpc.py +0 -0
  823. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/serializers.py +0 -0
  824. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/services.py +0 -0
  825. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/tests.py +0 -0
  826. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/api1/views.py +0 -0
  827. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/asgi.py +0 -0
  828. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/settings.py +0 -0
  829. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/urls.py +0 -0
  830. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_grpc/api_grpc/wsgi.py +0 -0
  831. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_grpc/db.sqlite3 +0 -0
  832. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_grpc/manage.py +0 -0
  833. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_grpc/manual_test_commands.txt +0 -0
  834. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_grpc/patch_djangogrpcframework.py +0 -0
  835. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_rest/api_rest/__init__.py +0 -0
  836. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_rest/api_rest/api1/__init__.py +0 -0
  837. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_rest/api_rest/api1/admin.py +0 -0
  838. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_rest/api_rest/api1/apps.py +0 -0
  839. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_rest/api_rest/api1/migrations/__init__.py +0 -0
  840. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_rest/api_rest/api1/models.py +0 -0
  841. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_rest/api_rest/api1/serializers.py +0 -0
  842. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_rest/api_rest/api1/tests.py +0 -0
  843. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_rest/api_rest/api1/views.py +0 -0
  844. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_rest/api_rest/asgi.py +0 -0
  845. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_rest/api_rest/settings.py +0 -0
  846. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_rest/api_rest/urls.py +0 -0
  847. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_rest/api_rest/wsgi.py +0 -0
  848. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_rest/db.sqlite3 +0 -0
  849. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/behave/test_holado/tools/django/api_rest/manage.py +0 -0
  850. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/scripts/dgot/classement/classement.py +0 -0
  851. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/scripts/dgot/classement/classement.sh +0 -0
  852. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/scripts/dgot/classement/commands.txt +0 -0
  853. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/scripts/independant_runner/environment.py +0 -0
  854. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/scripts/independant_runner/features/fake.feature +0 -0
  855. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/scripts/independant_runner/initialize_holado.py +0 -0
  856. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/scripts/independant_runner/logging.conf +0 -0
  857. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/scripts/independant_runner/steps/public_steps.py +0 -0
  858. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/scripts/independant_runner/test.py +0 -0
  859. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/scripts/independant_runner/test.sh +0 -0
  860. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/tests/scripts/script_tools.py +0 -0
  861. {holado-0.22.0.dev0 → holado-0.22.0.dev2}/upgrade_requirements_to_latest.sh +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: holado
3
- Version: 0.22.0.dev0
3
+ Version: 0.22.0.dev2
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.22.0.dev2
@@ -100,14 +100,13 @@ class StrTools(object):
100
100
  def to_bytes(cls, src):
101
101
  if isinstance(src, int):
102
102
  signed = True if src < 0 else False
103
-
104
- length = 1
105
- val = src
106
- while val > 255:
107
- length += 1
108
- val = val / 256
109
-
110
- res = src.to_bytes(length, 'big', signed=signed)
103
+ length = (src.bit_length() + 7) // 8
104
+ try:
105
+ res = src.to_bytes(length, 'big', signed=signed)
106
+ except OverflowError:
107
+ # A bug exists in to_bytes method for some rare cases (ex: -50126786515683650) for which a size of plus one is needed
108
+ res = src.to_bytes(length + 1, 'big', signed=signed)
109
+ res = res.lstrip(b'\x00')
111
110
  elif isinstance(src, bytes):
112
111
  res = src
113
112
  elif isinstance(src, str):
@@ -0,0 +1,125 @@
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
+ from builtins import int
15
+ import logging
16
+ from datetime import datetime
17
+ import string
18
+
19
+ from holado.common.handlers.undefined import default
20
+ from holado_core.common.exceptions.technical_exception import TechnicalException
21
+ from holado_core.common.tools.tools import Tools
22
+ from holado_python.common.tools.datetime import DateTime
23
+
24
+ logger = logging.getLogger(__name__)
25
+
26
+
27
+
28
+ class BaseXEncoder(object):
29
+ """ Encoder in a given base
30
+ Default digits enable to encode in a base in range [2, 62] (default: 62)
31
+ """
32
+
33
+ def __init__(self, padding_character=default, digits=default):
34
+ if digits is default:
35
+ self.__digs = string.digits + string.ascii_uppercase + string.ascii_lowercase
36
+ else:
37
+ self.__digs = digits
38
+
39
+ if padding_character is default:
40
+ # Use first digit by default
41
+ self.__padding_character = self.__digs[0]
42
+ else:
43
+ self.__padding_character = padding_character
44
+
45
+
46
+ def encode(self, value, base=62, padding_length=None, padding_character=None, raise_if_padding_impossible=True):
47
+ """ Encode given value in given base
48
+ :param value: Value to encode (accepted types: int, bytes, hex string)
49
+ :param base: Base (default: 62)
50
+ :param padding_length: padding length (default: None => no padding is done)
51
+ :param padding_character: padding_character (default: None => padding character defined at BaseXEncoder creation is used)
52
+ :param raise_if_padding_impossible: If True and encode result has a size greater than padding_length, raise TechnicalException
53
+ """
54
+ if isinstance(value, int):
55
+ int_value = value
56
+ elif isinstance(value, bytes):
57
+ int_value = int.from_bytes(value, byteorder='big', signed=False)
58
+ elif isinstance(value, str):
59
+ int_value = int(value, 16)
60
+ else:
61
+ raise TechnicalException("Value has to be of any type in (int, bytes, hex string)")
62
+
63
+ res = self.__encode_int_until_base62(int_value, base)
64
+
65
+ if padding_length:
66
+ if len(res) > padding_length and raise_if_padding_impossible:
67
+ raise TechnicalException(f"Encode result before padding has length {len(res)}, it is not possible to apply a padding length of {padding_length}")
68
+ if len(res) < padding_length:
69
+ if padding_character is None and self.__padding_character is None:
70
+ raise TechnicalException(
71
+ f"In order to manage padding, the padding character must be given as parameter to BaseXEncoder.encode or constructor of BaseXEncoder")
72
+ pc = padding_character if padding_character is not None else self.__padding_character
73
+ res = res.rjust(padding_length, pc)
74
+
75
+ return res
76
+
77
+ def __encode_int_until_base62(self, x, base):
78
+ if x < 0:
79
+ sign = -1
80
+ elif x == 0:
81
+ return self.__digs[0]
82
+ else:
83
+ sign = 1
84
+ x *= sign
85
+ digits = []
86
+ while x:
87
+ x, ind_digits = divmod(x, base)
88
+ digits.append(self.__digs[ind_digits])
89
+ if sign < 0:
90
+ digits.append('-')
91
+ digits.reverse()
92
+ return ''.join(digits)
93
+
94
+ @classmethod
95
+ def get_max_int_for_base_length(cls, base, length):
96
+ """
97
+ Compute maximum integer so that associated value doesn't exceed given length once encoded in given base
98
+ :param base: base number
99
+ :param length: max length in given base
100
+ :return: max integer
101
+ """
102
+ return base ** length - 1
103
+
104
+ @classmethod
105
+ def get_max_value_nb_bytes_for_base_length(cls, base, length, round_method=default):
106
+ """
107
+ Compute maximum number of bytes of a value so that it has given length once encoded in given base.
108
+ By default, round_method is math.floor to ensure that the result after encoding has not a length exceeding given length.
109
+ For some use case, it is preferable to set round_method=math.ceil in order to get a nb of bytes to ensure that result will have at least the given length.
110
+ :param base: base number
111
+ :param length: max length in given base
112
+ :param round_method: method to round value (default: math.floor)
113
+ :return: max number of bytes
114
+ """
115
+ import math
116
+ if round_method is default:
117
+ round_method = math.floor
118
+
119
+ max_base_value = cls.get_max_int_for_base_length(base, length)
120
+ max_nb_bytes_as_float = math.log(max_base_value) / math.log(256)
121
+ # Note: Get the floor of max_nb_bytes_as_float to return the max nb of bytes that won't exceed given base length after encode
122
+ return round_method(max_nb_bytes_as_float)
123
+
124
+
125
+
@@ -15,6 +15,7 @@
15
15
  import logging
16
16
  import hashlib
17
17
  from holado_core.common.exceptions.technical_exception import TechnicalException
18
+ from holado_core.common.tools.string_tools import StrTools
18
19
 
19
20
  logger = logging.getLogger(__name__)
20
21
 
@@ -92,8 +93,8 @@ class HashTools(object):
92
93
  if not isinstance(content, str):
93
94
  try:
94
95
  for cont in content:
95
- if type(cont) != bytes:
96
- cont = cont.encode('utf-8')
96
+ # Convert ot bytes if needed
97
+ cont = StrTools.to_bytes(cont)
97
98
  hash_obj.update(cont)
98
99
  done = True
99
100
  except TypeError:
@@ -103,8 +104,7 @@ class HashTools(object):
103
104
  if type(content) != bytes:
104
105
  content = content.encode('utf-8')
105
106
  hash_obj.update(content)
106
-
107
-
108
-
109
-
107
+
108
+
109
+
110
110
 
@@ -6,7 +6,7 @@
6
6
  # 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:
7
7
  #
8
8
  # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
9
-
9
+ import copy
10
10
  # 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.
11
11
  #################################################
12
12
 
@@ -90,7 +90,11 @@ class CampaignManager(object):
90
90
  return """CREATE TABLE campaign_scenarios (
91
91
  id INTEGER PRIMARY KEY,
92
92
  campaign_id INTEGER NOT NULL,
93
- uid TEXT NOT NULL,
93
+ executed_scenario_uid TEXT NOT NULL,
94
+ scenario_uid TEXT NOT NULL,
95
+ scenario_version TEXT NOT NULL,
96
+ scenario_example_row_uid TEXT,
97
+ scenario_example_row TEXT,
94
98
  name TEXT NOT NULL,
95
99
  report_path TEXT,
96
100
  status TEXT,
@@ -100,12 +104,12 @@ class CampaignManager(object):
100
104
 
101
105
  def __get_campaign_scenarios_table_unique_indexes(self):
102
106
  return [
103
- ('campaign_id', 'uid')
107
+ ('campaign_id', 'executed_scenario_uid')
104
108
  ]
105
109
 
106
110
  def __get_campaign_scenarios_table_indexes(self):
107
111
  return [
108
- ('uid', 'status_at')
112
+ ('executed_scenario_uid', 'status_at')
109
113
  ]
110
114
 
111
115
  def update_stored_campaigns(self):
@@ -127,8 +131,8 @@ class CampaignManager(object):
127
131
  def __get_campaigns_report_paths(self, since_datetime):
128
132
  reports_path = self._path_manager.get_reports_path(name="test_runner", with_application_group=False)
129
133
  file_paths = self._path_manager.find_files(reports_path,
130
- subdir_relative_path=Config.campaign_manager_import_report_name, # @UndefinedVariable
131
- since_datetime=since_datetime)
134
+ subdir_relative_path=Config.campaign_manager_import_report_name, # @UndefinedVariable
135
+ since_datetime=since_datetime)
132
136
  return [os.path.dirname(p) for p in file_paths]
133
137
 
134
138
  def __get_last_campaign_updated_datetime(self):
@@ -204,20 +208,27 @@ class CampaignManager(object):
204
208
  logger.debug(f"Failed to import campaign report '{report_path}' from '{Config.campaign_manager_import_report_name}': {str(exc)}") # @UndefinedVariable
205
209
  else:
206
210
  logger.debug(f"Imported campaign report '{report_path}' from '{Config.campaign_manager_import_report_name}'") # @UndefinedVariable
207
-
208
- # Try to import information from 'report_summary_scenario_all.txt'
209
- if updated_dt is None:
210
- try:
211
- updated_dt = self.__import_campaign_report_summary_scenario_all(report_path, camp_id)
212
- except:
213
- raise TechnicalException(f"Failed to import campaign report '{report_path}'")
214
- else:
215
- logger.debug(f"Imported campaign report '{report_path}' from 'report_summary_scenario_all.txt'")
211
+
212
+ # Note: It is commented since not maintained anymore (see note on __import_campaign_report_summary_scenario_all)
213
+ # # Try to import information from 'report_summary_scenario_all.txt'
214
+ # if updated_dt is None:
215
+ # try:
216
+ # updated_dt = self.__import_campaign_report_summary_scenario_all(report_path, camp_id)
217
+ # except:
218
+ # raise TechnicalException(f"Failed to import campaign report '{report_path}'")
219
+ # else:
220
+ # logger.debug(f"Imported campaign report '{report_path}' from 'report_summary_scenario_all.txt'")
216
221
 
217
222
  # Update campaign updated datetime
218
223
  self.__update_campaign_updated_datetime(camp_id, updated_dt)
219
224
 
225
+ def get_executed_scenario_uids(self, since=None, until=None):
226
+ return self._get_scenario_field_values('executed_scenario_uid', since, until)
227
+
220
228
  def get_scenario_uids(self, since=None, until=None):
229
+ return self._get_scenario_field_values('scenario_uid', since, until)
230
+
231
+ def _get_scenario_field_values(self, field_name, since=None, until=None):
221
232
  client = self.__get_db_client()
222
233
 
223
234
  # Get data from DB
@@ -230,20 +241,25 @@ class CampaignManager(object):
230
241
  if isinstance(until, datetime):
231
242
  until = DateTime.datetime_2_str(until)
232
243
  w_compare_data.append(('status_at', CompareOperator.Inferior, until))
233
- camp_names_gen = client.select("campaign_scenarios", where_compare_data=w_compare_data, sql_return='name',
234
- result_as_dict_list=True, as_generator=True, order_bys=['name'], distinct=True)
244
+ camp_names_gen = client.select("campaign_scenarios", where_compare_data=w_compare_data, sql_return=field_name,
245
+ result_as_dict_list=True, as_generator=True, order_bys=[field_name], distinct=True)
235
246
 
236
247
  # Build result
237
- res = [cn['uid'] for cn in camp_names_gen]
248
+ res = [cn[field_name] for cn in camp_names_gen]
238
249
 
239
250
  return res
240
251
 
241
- def get_scenario_history(self, scenario_uid=None, size=None, since=None, until=None,
252
+ def get_scenario_history(self, executed_scenario_uid=None, scenario_uid=None, scenario_version=None, scenario_example_row_uid=None, scenario_example_row_id=None,
253
+ size=None, since=None, until=None,
242
254
  since_history=None, until_history=None, with_details=None):
243
255
  """
244
256
  Get history of a campaign scenario or of all scenarios run during a period of time.
245
257
 
246
- :param scenario_uid: If defined, get history of scenario with this UID
258
+ :param executed_scenario_uid: If defined, get history for this executed scenario UID
259
+ :param scenario_uid: If defined, get history of executed scenario with this UID
260
+ :param scenario_version: If defined, get history of executed scenario with this version
261
+ :param scenario_example_row_uid: If defined, get history of executed scenario with this example row UID
262
+ :param scenario_example_row_id: If defined, get history of executed scenario with this example row ID
247
263
  :param size: Size max of each scenario history
248
264
  :param since: Begin of period to find scenarios for which return history (and history if since_history is not defined)
249
265
  :param until: End of period to find scenarios for which return history (and history if since_history is not defined)
@@ -260,16 +276,24 @@ class CampaignManager(object):
260
276
  client = self.__get_db_client()
261
277
 
262
278
  # Get UID of scenarios for which return history
263
- if scenario_uid is not None:
264
- scenario_uids = [scenario_uid]
279
+ if executed_scenario_uid is not None:
280
+ executed_scenario_uids = [executed_scenario_uid]
265
281
  else:
266
- scenario_uids = self.get_scenario_uids(since=since, until=until)
282
+ executed_scenario_uids = self.get_executed_scenario_uids(since=since, until=until)
267
283
 
268
284
  # Get data from DB
269
285
  w_data = {}
270
286
  w_compare_data = []
287
+ if executed_scenario_uid is not None:
288
+ w_data['executed_scenario_uid'] = executed_scenario_uid
271
289
  if scenario_uid is not None:
272
- w_data['uid'] = scenario_uid
290
+ w_data['scenario_uid'] = scenario_uid
291
+ if scenario_version is not None:
292
+ w_data['scenario_version'] = scenario_version
293
+ if scenario_example_row_uid is not None:
294
+ w_data['scenario_example_row_uid'] = scenario_example_row_uid
295
+ if scenario_example_row_id is not None:
296
+ w_data['scenario_example_row_id'] = scenario_example_row_id
273
297
  if since_history:
274
298
  if isinstance(since_history, datetime):
275
299
  since_history = DateTime.datetime_2_str(since_history)
@@ -281,75 +305,86 @@ class CampaignManager(object):
281
305
  # Note: order by scenario name to have same order than filesystem
282
306
  camp_scenarios_gen = client.select("campaign_scenarios", where_data=w_data, where_compare_data=w_compare_data,
283
307
  result_as_dict_list=True, as_generator=True,
284
- order_bys=['name', ('status_at', 'DESC')])
308
+ order_bys=['executed_scenario_uid', ('scenario_version', 'DESC'), ('status_at', 'DESC')])
285
309
 
286
310
  # Build result
287
311
  res = []
288
- cur_scenario_uid = None
289
- cur_scenario_data = None
312
+ cur_res_uid = None
313
+ cur_res_data = None
314
+ cur_res_version = None
315
+ cur_res_version_data = None
316
+ cur_res_size = 0
290
317
  for cs in camp_scenarios_gen:
291
318
  # Skip unwanted scenarios
292
- if cs['uid'] not in scenario_uids:
319
+ if cs['executed_scenario_uid'] not in executed_scenario_uids:
293
320
  continue
294
321
 
295
- # Manage new scenario
296
- if cur_scenario_uid is None or cur_scenario_uid != cs['uid']:
297
- cur_scenario_data = []
298
- cur_scenario_uid = cs['uid']
299
- res.append({'uid':cur_scenario_uid, 'history':cur_scenario_data})
300
-
322
+ # Manage new executed scenario
323
+ if cur_res_uid is None or cur_res_uid != cs['executed_scenario_uid']:
324
+ cur_res_data = []
325
+ cur_res_size = 0
326
+ cur_res_uid = cs['executed_scenario_uid']
327
+ res.append({'executed_scenario_uid': cur_res_uid, 'history_by_version': cur_res_data})
328
+
329
+ # Manage new scenario version
330
+ if cur_res_version is None or cur_res_version != cs['scenario_version']:
331
+ cur_res_version_data = []
332
+ cur_res_version = cs['scenario_version']
333
+ cur_res_data.append({'scenario_version': cur_res_version, 'history': cur_res_version_data})
334
+
301
335
  # Add campaign info for this scenario execution if size limit is not reached
302
- if size is None or len(cur_scenario_data) < size:
336
+ if size is None or cur_res_size < size:
303
337
  data = {'at':cs['status_at'], 'status':cs['status']}
304
338
  if with_details:
305
339
  data['report_path'] = cs['report_path']
306
340
  details = json.loads(cs['details'])
307
341
  data.update({k:v for k,v in details.items() if k in ['validation_category', 'failure']})
308
- cur_scenario_data.append(data)
342
+ cur_res_version_data.append(data)
343
+ cur_res_size += 1
309
344
 
310
345
  if scenario_uid is not None and len(res) > 0:
311
- return res[0]['history']
346
+ return res[0]['history_by_version']
312
347
  else:
313
348
  return res
314
349
 
315
- def get_scenario_last_first_campaigns(self, scenario_uid):
350
+ def get_scenario_last_first_campaigns(self, executed_scenario_uid):
316
351
  """ For given scenario, get last campaign in which it passed (respectively failed) and after it first campaign in which it failed (respectively passed).
317
352
  Depending on validation category of the scenario, only one of both couples is generally interesting, but sometimes both are needed.
318
353
  For performance consideration, this method manages in same time the couple (last failed, next first passed) and (last passed, next first failed).
319
- :param scenario_uid: UID of scenario
354
+ :param executed_scenario_uid: UID of executed scenario
320
355
  :return: 2 tuples ((last_passed, first_failed), (last_failed, first_passed)) with campaign names
321
356
  """
322
- if scenario_uid is None:
323
- raise TechnicalException(f"No scenario UID provided")
357
+ if executed_scenario_uid is None:
358
+ raise TechnicalException(f"No executed scenario UID provided")
324
359
 
325
360
  client = self.__get_db_client()
326
361
  placeholder = client._get_sql_placeholder()
327
362
  query_str = f'''
328
363
  select lp.last_passed,
329
364
  (select c.name as first_failed from campaign_scenarios csff join campaigns c on c.id = csff.campaign_id
330
- where csff.uid = {placeholder} and csff.status like 'Failed%'
365
+ where csff.executed_scenario_uid = {placeholder} and csff.status like 'Failed%'
331
366
  and csff.status_at > lp.last_passed_at
332
367
  order by csff.status_at
333
368
  limit 1
334
369
  ) first_failed,
335
370
  lf.last_failed,
336
371
  (select c.name as first_passed from campaign_scenarios csfp join campaigns c on c.id = csfp.campaign_id
337
- where csfp.uid = {placeholder} and csfp.status = 'Passed'
372
+ where csfp.executed_scenario_uid = {placeholder} and csfp.status = 'Passed'
338
373
  and csfp.status_at > lf.last_failed_at
339
374
  order by csfp.status_at
340
375
  limit 1
341
376
  ) first_passed
342
377
  from
343
378
  (select c.name as last_passed, cslp.status_at as last_passed_at from campaign_scenarios cslp join campaigns c on c.id = cslp.campaign_id
344
- where cslp.uid = {placeholder} and cslp.status = 'Passed'
379
+ where cslp.executed_scenario_uid = {placeholder} and cslp.status = 'Passed'
345
380
  order by cslp.status_at desc
346
381
  limit 1) lp,
347
382
  (select c.name as last_failed, cs.status_at as last_failed_at from campaign_scenarios cs join campaigns c on c.id = cs.campaign_id
348
- where cs.uid = {placeholder} and cs.status like 'Failed%'
349
- order by cs.status_at desc
350
- limit 1) lf
383
+ where cs.executed_scenario_uid = {placeholder} and cs.status like 'Failed%'
384
+ order by cs.status_at desc
385
+ limit 1) lf
351
386
  '''
352
- where_data = [scenario_uid, scenario_uid, scenario_uid, scenario_uid]
387
+ where_data = [executed_scenario_uid, executed_scenario_uid, executed_scenario_uid, executed_scenario_uid]
353
388
  res_dict_list = client.execute(query_str, *where_data, result_as_dict_list=True, as_generator=False)
354
389
 
355
390
  if len(res_dict_list) == 1:
@@ -364,9 +399,12 @@ class CampaignManager(object):
364
399
  camp = self.__campaigns_table_manager.get_data(filter_data)
365
400
  return camp['id']
366
401
 
367
- def update_or_add_campaign_scenario(self, campaign_id, uid, name, *, report_path=None, status=None, status_at_str=None, details=None):
368
- filter_data = {'campaign_id': campaign_id, 'uid':uid, 'name': name}
369
- data = {}
402
+ def update_or_add_campaign_scenario(self, campaign_id, executed_scenario_uid, scenario_uid, scenario_version, scenario_example_row_uid, scenario_example_row_id,
403
+ name, *, report_path=None, status=None, status_at_str=None, details=None):
404
+ filter_data = {'campaign_id': campaign_id, 'executed_scenario_uid':executed_scenario_uid}
405
+ data = {'scenario_uid':scenario_uid, 'scenario_version':scenario_version,
406
+ 'scenario_example_row_uid':scenario_example_row_uid, 'scenario_example_row_id':scenario_example_row_id,
407
+ 'name': name}
370
408
  if report_path is not None:
371
409
  data['report_path'] = report_path
372
410
  if status is not None:
@@ -392,12 +430,12 @@ class CampaignManager(object):
392
430
  file_dt = DateTime.timestamp_to_datetime(os.path.getmtime(file_path))
393
431
  return file_dt > stored_dt
394
432
 
395
- def __get_campaign_status_at_by_scenario(self, camp_id):
433
+ def __get_campaign_status_at_by_executed_scenario(self, camp_id):
396
434
  res = {}
397
435
 
398
436
  filter_data = {'campaign_id':camp_id}
399
437
  for data in self.__campaign_scenarios_table_manager.get_datas(filter_data, as_generator=True):
400
- uid = data.get('uid', data['name']) # Use name if uid is not available
438
+ uid = data.get('executed_scenario_uid', data['name']) # Use name if uid is not available
401
439
  res[uid] = data['status_at']
402
440
 
403
441
  return res
@@ -407,7 +445,7 @@ class CampaignManager(object):
407
445
  if not os.path.exists(filepath):
408
446
  return None
409
447
 
410
- status_at_by_scenario = self.__get_campaign_status_at_by_scenario(camp_id)
448
+ status_at_by_scenario = self.__get_campaign_status_at_by_executed_scenario(camp_id)
411
449
 
412
450
  # Note: get file modified datetime just before reading it, so that modified datetime is not outdated and elements will be missed on next import
413
451
  file_modified_dt = DateTime.timestamp_to_datetime(os.path.getmtime(filepath))
@@ -420,71 +458,78 @@ class CampaignManager(object):
420
458
  for scenario_index, scenario in enumerate(scenarios):
421
459
  if 'scenario' not in scenario:
422
460
  raise TechnicalException(f"Unexpected structure of {scenario_index+1}'th scenario: {scenario}")
423
- scenario = scenario['scenario']
461
+ details = copy.copy(scenario['scenario'])
424
462
 
425
- name = scenario['file']
426
- uid = scenario.get('uid', name) # Use name as uid if uid is not available
463
+ name = details.pop('file')
464
+ executed_scenario_uid = details.pop('executed_uid', name) # Use name as uid if uid is not available
427
465
 
428
- m = regex_period.match(scenario['scenario_period'])
466
+ m = regex_period.match(details.pop('scenario_period'))
429
467
  if m:
430
468
  status_at_str = m.group(2)
431
469
  # If report is done with dates in compact format, end datetime in period is not a valid datetime, use begin datetime instead
432
470
  if not DateTime.is_str_datetime(status_at_str[:10], '%Y-%m-%d'):
433
471
  status_at_str = m.group(1)
434
472
  else:
435
- raise TechnicalException(f"Failed to import report of scenario '{name}' in campaign report file '{filepath}'")
473
+ raise TechnicalException(f"Failed to import report of scenario '{executed_scenario_uid}' in campaign report file '{filepath}'")
436
474
 
437
- if uid in status_at_by_scenario and status_at_str == status_at_by_scenario[uid]:
475
+ if executed_scenario_uid in status_at_by_scenario and status_at_str == status_at_by_scenario[executed_scenario_uid]:
438
476
  # Scenario result is already stored
439
477
  continue
440
478
 
441
- scenario_report_path = scenario['report']
442
- status = scenario['validation_status']
443
- details = json.dumps( {k:scenario[k] for k in scenario.keys() if k not in ['file', 'scenario_period', 'report', 'validation_status']} )
444
-
445
- self.update_or_add_campaign_scenario(camp_id, uid, name, report_path=scenario_report_path, status=status, status_at_str=status_at_str, details=details)
446
-
447
- return file_modified_dt
448
-
449
- def __import_campaign_report_summary_scenario_all(self, report_path, camp_id):
450
- file_path = os.path.join(report_path, 'report_summary_scenario_all.txt')
451
- if not os.path.exists(file_path):
452
- return None
453
-
454
- # Note: get file modified datetime just before reading it, so that modified datetime is not outdated and elements will be missed on next import
455
- file_modified_dt = DateTime.timestamp_to_datetime(os.path.getmtime(file_path))
456
- lines = File(file_path, do_open=True, mode='rt').readlines(strip_newline=True)
457
-
458
- regex_line_period = re.compile(r"^\[(.+) - ([^\]]+)\] ([^ ]+) - (.+?)(?: - .+)? - (.*)$")
459
- regex_line_time = re.compile(r"^(.+?) - ([^ ]+) - (.+?)(?: - .+)? - (.+)$")
460
- regex_status = re.compile(r"^(.*?)(?: \(.*\)| => .*)?$")
461
-
462
- for line in lines:
463
- m = regex_line_period.match(line)
464
- if m:
465
- status_at_str = m.group(2)
466
- # If report is done with dates in compact format, end datetime in period is not a valid datetime, use begin datetime instead
467
- if not DateTime.is_str_datetime(status_at_str[:10], '%Y-%m-%d'):
468
- status_at_str = m.group(1)
469
- scenario_uid = m.group(3)
470
- scenario_name = m.group(4)
471
- status_info = m.group(5)
472
- else:
473
- m = regex_line_time.match(line)
474
- if not m:
475
- raise TechnicalException(f"Unexpected line format in {file_path}: [{line}]")
476
- status_at_str = m.group(1)
477
- scenario_uid = m.group(2)
478
- scenario_name = m.group(3)
479
- status_info = m.group(4)
480
-
481
- m = regex_status.match(status_info)
482
- status = m.group(1)
479
+ scenario_uid = details.pop('uid', name)
480
+ scenario_version = details.pop('version', 0)
481
+ scenario_example_row_uid = details.pop('example_row_uid', None)
482
+ scenario_example_row_id = details.pop('example_row_id', None)
483
+ scenario_report_path = details.pop('report')
484
+ status = details.pop('validation_status')
485
+ details_str = json.dumps(details)
483
486
 
484
- self.update_or_add_campaign_scenario(camp_id, scenario_uid, scenario_name, status=status, status_at_str=status_at_str)
487
+ self.update_or_add_campaign_scenario(camp_id, executed_scenario_uid, scenario_uid, scenario_version, scenario_example_row_uid, scenario_example_row_id,
488
+ name, report_path=scenario_report_path, status=status, status_at_str=status_at_str, details=details_str)
485
489
 
486
490
  return file_modified_dt
487
491
 
492
+ # Note: Following method is commented as deprecated and not maintained anymore.
493
+ # It is kept in case such behavior is again needed.
494
+ # def __import_campaign_report_summary_scenario_all(self, report_path, camp_id):
495
+ # file_path = os.path.join(report_path, 'report_summary_scenario_all.txt')
496
+ # if not os.path.exists(file_path):
497
+ # return None
498
+ #
499
+ # # Note: get file modified datetime just before reading it, so that modified datetime is not outdated and elements will be missed on next import
500
+ # file_modified_dt = DateTime.timestamp_to_datetime(os.path.getmtime(file_path))
501
+ # lines = File(file_path, do_open=True, mode='rt').readlines(strip_newline=True)
502
+ #
503
+ # regex_line_period = re.compile(r"^\[(.+) - ([^\]]+)\] ([^ ]+) - (.+?)(?: - .+)? - (.*)$")
504
+ # regex_line_time = re.compile(r"^(.+?) - ([^ ]+) - (.+?)(?: - .+)? - (.+)$")
505
+ # regex_status = re.compile(r"^(.*?)(?: \(.*\)| => .*)?$")
506
+ #
507
+ # for line in lines:
508
+ # m = regex_line_period.match(line)
509
+ # if m:
510
+ # status_at_str = m.group(2)
511
+ # # If report is done with dates in compact format, end datetime in period is not a valid datetime, use begin datetime instead
512
+ # if not DateTime.is_str_datetime(status_at_str[:10], '%Y-%m-%d'):
513
+ # status_at_str = m.group(1)
514
+ # scenario_uid = m.group(3)
515
+ # scenario_name = m.group(4)
516
+ # status_info = m.group(5)
517
+ # else:
518
+ # m = regex_line_time.match(line)
519
+ # if not m:
520
+ # raise TechnicalException(f"Unexpected line format in {file_path}: [{line}]")
521
+ # status_at_str = m.group(1)
522
+ # scenario_uid = m.group(2)
523
+ # scenario_name = m.group(3)
524
+ # status_info = m.group(4)
525
+ #
526
+ # m = regex_status.match(status_info)
527
+ # status = m.group(1)
528
+ #
529
+ # self.update_or_add_campaign_scenario(camp_id, scenario_uid, scenario_name, status=status, status_at_str=status_at_str)
530
+ #
531
+ # return file_modified_dt
532
+
488
533
  def get_qa_data(self, qa_data_type, size=None, since=None, until=None, since_history=None, until_history=None, round_nb_decimal=None, with_details=False):
489
534
  match qa_data_type:
490
535
  case QAReportType.NumberByQAStatus:
@@ -499,7 +544,7 @@ class CampaignManager(object):
499
544
  counter_by_qa_status, counter_by_category = {}, {}
500
545
  all_history = self.get_scenario_history(size=size, since=since, until=until, since_history=since_history, until_history=until_history)
501
546
  for scenario_history in all_history:
502
- sce_hist = scenario_history['history']
547
+ sce_hist = scenario_history['history_by_version']
503
548
  sce_cat = ScenarioTools.compute_validation_category_for_scenario_history(sce_hist)
504
549
 
505
550
  if sce_cat not in counter_by_category:
@@ -534,14 +579,15 @@ class CampaignManager(object):
534
579
  ratio_failed, ratio_success, ratio_by_status = 0, 0, Counter()
535
580
  all_history = self.get_scenario_history(size=size, since=since, until=until, since_history=since_history, until_history=until_history)
536
581
  for scenario_history in all_history:
537
- sce_hist = scenario_history['history']
538
- nb_success = sum(1 for x in sce_hist if x['status'] == 'Passed')
539
- ratio_success += nb_success / len(sce_hist)
540
- ratio_failed += (len(sce_hist) - nb_success) / len(sce_hist)
582
+ sce_hist = scenario_history['history_by_version']
583
+ nb_success = sum(1 for ver_hist in sce_hist for x in ver_hist['history'] if x['status'] == 'Passed')
584
+ nb_exec = sum(len(ver_hist['history']) for ver_hist in sce_hist)
585
+ ratio_success += nb_success / nb_exec
586
+ ratio_failed += (nb_exec - nb_success) / nb_exec
541
587
 
542
588
  if with_details:
543
- ratio_by_status += Counter(x['status'] for x in sce_hist)
544
- mean_run_nb = statistics.mean(len(x['history']) for x in all_history) if all_history else 0
589
+ ratio_by_status += Counter(x['status'] for ver_hist in sce_hist for x in ver_hist['history'])
590
+ mean_run_nb = statistics.mean(sum(len(ver_hist['history']) for ver_hist in sce_hist) for sce_hist in all_history) if all_history else 0
545
591
 
546
592
  # Compute QA data
547
593
  ratio_failed = round(ratio_failed, round_nb_decimal)