osbot-utils 2.16.0__tar.gz → 2.18.0__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 (350) hide show
  1. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/PKG-INFO +2 -2
  2. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/README.md +1 -1
  3. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/flows/Flow.py +12 -12
  4. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/flows/Task.py +10 -9
  5. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/Type_Safe__Base.py +3 -0
  6. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/shared/Type_Safe__Validation.py +1 -1
  7. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/steps/Type_Safe__Step__From_Json.py +4 -1
  8. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Json.py +2 -1
  9. osbot_utils-2.18.0/osbot_utils/version +1 -0
  10. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/pyproject.toml +1 -1
  11. osbot_utils-2.16.0/osbot_utils/version +0 -1
  12. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/LICENSE +0 -0
  13. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/__init__.py +0 -0
  14. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/base_classes/Cache_Pickle.py +0 -0
  15. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/base_classes/Kwargs_To_Disk.py +0 -0
  16. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/base_classes/Kwargs_To_Self.py +0 -0
  17. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/base_classes/__init__.py +0 -0
  18. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/context_managers/__init__.py +0 -0
  19. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/context_managers/async_invoke.py +0 -0
  20. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/context_managers/capture_duration.py +0 -0
  21. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/context_managers/disable_root_loggers.py +0 -0
  22. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/context_managers/print_duration.py +0 -0
  23. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/decorators/__init__.py +0 -0
  24. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/decorators/classes/__init__.py +0 -0
  25. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/decorators/classes/singleton.py +0 -0
  26. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/decorators/lists/__init__.py +0 -0
  27. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/decorators/lists/filter_list.py +0 -0
  28. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/decorators/lists/group_by.py +0 -0
  29. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/decorators/lists/index_by.py +0 -0
  30. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/decorators/methods/__init__.py +0 -0
  31. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/decorators/methods/cache.py +0 -0
  32. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/decorators/methods/cache_on_function.py +0 -0
  33. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/decorators/methods/cache_on_self.py +0 -0
  34. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/decorators/methods/cache_on_tmp.py +0 -0
  35. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/decorators/methods/capture_exception.py +0 -0
  36. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/decorators/methods/capture_status.py +0 -0
  37. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/decorators/methods/catch.py +0 -0
  38. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/decorators/methods/context.py +0 -0
  39. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/decorators/methods/depreciated.py +0 -0
  40. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/decorators/methods/function_type_check.py +0 -0
  41. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/decorators/methods/obj_as_context.py +0 -0
  42. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/decorators/methods/remove_return_value.py +0 -0
  43. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/decorators/methods/required_fields.py +0 -0
  44. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/fluent/Fluent_Dict.py +0 -0
  45. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/fluent/Fluent_List.py +0 -0
  46. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/fluent/__init__.py +0 -0
  47. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/CFormat.py +0 -0
  48. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/CPrint.py +0 -0
  49. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/Dependency_Manager.py +0 -0
  50. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/Dict_To_Attr.py +0 -0
  51. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/Guid.py +0 -0
  52. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/Hashicorp_Secrets.py +0 -0
  53. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/Local_Cache.py +0 -0
  54. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/Local_Caches.py +0 -0
  55. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/Obj_Id.py +0 -0
  56. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/Print_Table.py +0 -0
  57. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/Python_Audit.py +0 -0
  58. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/Random_Guid.py +0 -0
  59. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/Random_Guid_Short.py +0 -0
  60. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/Random_Seed.py +0 -0
  61. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/Safe_Id.py +0 -0
  62. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/Str_ASCII.py +0 -0
  63. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/Timestamp_Now.py +0 -0
  64. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/Type_Registry.py +0 -0
  65. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/Zip_Bytes.py +0 -0
  66. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/__init__.py +0 -0
  67. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/Ast.py +0 -0
  68. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/Ast_Base.py +0 -0
  69. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/Ast_Data.py +0 -0
  70. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/Ast_Load.py +0 -0
  71. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/Ast_Merge.py +0 -0
  72. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/Ast_Node.py +0 -0
  73. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/Ast_Visit.py +0 -0
  74. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/Call_Tree.py +0 -0
  75. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/__init__.py +0 -0
  76. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Add.py +0 -0
  77. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Alias.py +0 -0
  78. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_And.py +0 -0
  79. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Argument.py +0 -0
  80. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Arguments.py +0 -0
  81. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Assert.py +0 -0
  82. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Assign.py +0 -0
  83. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Attribute.py +0 -0
  84. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Aug_Assign.py +0 -0
  85. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Bin_Op.py +0 -0
  86. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Bool_Op.py +0 -0
  87. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Break.py +0 -0
  88. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Call.py +0 -0
  89. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Class_Def.py +0 -0
  90. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Compare.py +0 -0
  91. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Comprehension.py +0 -0
  92. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Constant.py +0 -0
  93. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Continue.py +0 -0
  94. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Dict.py +0 -0
  95. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Eq.py +0 -0
  96. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Except_Handler.py +0 -0
  97. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Expr.py +0 -0
  98. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_For.py +0 -0
  99. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Function_Def.py +0 -0
  100. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Generator_Exp.py +0 -0
  101. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Gt.py +0 -0
  102. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_GtE.py +0 -0
  103. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_If.py +0 -0
  104. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_If_Exp.py +0 -0
  105. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Import.py +0 -0
  106. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Import_From.py +0 -0
  107. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_In.py +0 -0
  108. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Is.py +0 -0
  109. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Is_Not.py +0 -0
  110. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Keyword.py +0 -0
  111. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Lambda.py +0 -0
  112. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_List.py +0 -0
  113. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_List_Comp.py +0 -0
  114. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Load.py +0 -0
  115. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Lt.py +0 -0
  116. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_LtE.py +0 -0
  117. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Mod.py +0 -0
  118. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Module.py +0 -0
  119. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Mult.py +0 -0
  120. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Name.py +0 -0
  121. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Not.py +0 -0
  122. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Not_Eq.py +0 -0
  123. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Not_In.py +0 -0
  124. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Or.py +0 -0
  125. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Pass.py +0 -0
  126. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Pow.py +0 -0
  127. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Raise.py +0 -0
  128. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Return.py +0 -0
  129. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Set.py +0 -0
  130. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Slice.py +0 -0
  131. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Starred.py +0 -0
  132. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Store.py +0 -0
  133. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Sub.py +0 -0
  134. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Subscript.py +0 -0
  135. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Try.py +0 -0
  136. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Tuple.py +0 -0
  137. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Unary_Op.py +0 -0
  138. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_While.py +0 -0
  139. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_With.py +0 -0
  140. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_With_Item.py +0 -0
  141. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/Ast_Yield.py +0 -0
  142. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ast/nodes/__init__.py +0 -0
  143. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Actions.py +0 -0
  144. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Config.py +0 -0
  145. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Data.py +0 -0
  146. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Invoke.py +0 -0
  147. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Row.py +0 -0
  148. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Table.py +0 -0
  149. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/cache_requests/__init__.py +0 -0
  150. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/cache_requests/flows/flow__Cache__Requests.py +0 -0
  151. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/flows/Flow__Events.py +0 -0
  152. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/flows/__init__.py +0 -0
  153. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/flows/decorators/__init__.py +0 -0
  154. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/flows/decorators/flow.py +0 -0
  155. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/flows/decorators/task.py +0 -0
  156. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/flows/models/Flow_Run__Config.py +0 -0
  157. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/flows/models/Flow_Run__Event.py +0 -0
  158. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Data.py +0 -0
  159. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Type.py +0 -0
  160. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/flows/models/__init__.py +0 -0
  161. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/generators/Generator_Context_Manager.py +0 -0
  162. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/generators/Generator_Manager.py +0 -0
  163. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/generators/Model__Generator_State.py +0 -0
  164. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/generators/Model__Generator_Target.py +0 -0
  165. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/generators/__init__.py +0 -0
  166. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/html/Dict_To_Css.py +0 -0
  167. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/html/Dict_To_Html.py +0 -0
  168. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/html/Dict_To_Tags.py +0 -0
  169. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/html/Html_To_Dict.py +0 -0
  170. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/html/Html_To_Tag.py +0 -0
  171. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/html/Tag__Base.py +0 -0
  172. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/html/Tag__Body.py +0 -0
  173. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/html/Tag__Div.py +0 -0
  174. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/html/Tag__H.py +0 -0
  175. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/html/Tag__HR.py +0 -0
  176. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/html/Tag__Head.py +0 -0
  177. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/html/Tag__Html.py +0 -0
  178. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/html/Tag__Link.py +0 -0
  179. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/html/Tag__Style.py +0 -0
  180. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/html/__init__.py +0 -0
  181. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/pubsub/Event__Queue.py +0 -0
  182. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/pubsub/PubSub__Client.py +0 -0
  183. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/pubsub/PubSub__Room.py +0 -0
  184. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/pubsub/PubSub__Server.py +0 -0
  185. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/pubsub/PubSub__Sqlite.py +0 -0
  186. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/pubsub/__init__.py +0 -0
  187. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event.py +0 -0
  188. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Connect.py +0 -0
  189. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Disconnect.py +0 -0
  190. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Execute_Method.py +0 -0
  191. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Join_Room.py +0 -0
  192. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Leave_Room.py +0 -0
  193. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Message.py +0 -0
  194. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/pubsub/schemas/Schema__PubSub__Client.py +0 -0
  195. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/pubsub/schemas/__init__.py +0 -0
  196. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/python_compatibility/__init__.py +0 -0
  197. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/python_compatibility/python_3_8.py +0 -0
  198. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/Capture_Sqlite_Error.py +0 -0
  199. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/Sqlite__Cursor.py +0 -0
  200. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/Sqlite__Database.py +0 -0
  201. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/Sqlite__Field.py +0 -0
  202. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/Sqlite__Globals.py +0 -0
  203. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/Sqlite__Table.py +0 -0
  204. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/Sqlite__Table__Create.py +0 -0
  205. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Database__Disk.py +0 -0
  206. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Table.py +0 -0
  207. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/__init__.py +0 -0
  208. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/cache/Schema__Table__Requests.py +0 -0
  209. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests.py +0 -0
  210. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Patch.py +0 -0
  211. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Sqlite.py +0 -0
  212. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Table.py +0 -0
  213. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/cache/Sqlite__DB__Requests.py +0 -0
  214. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/cache/TestCase__Sqlite__Cache__Requests.py +0 -0
  215. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/cache/__init__.py +0 -0
  216. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB.py +0 -0
  217. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Files.py +0 -0
  218. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Graph.py +0 -0
  219. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Json.py +0 -0
  220. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Local.py +0 -0
  221. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/domains/__init__.py +0 -0
  222. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/domains/schemas/__init__.py +0 -0
  223. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/models/Sqlite__Field__Type.py +0 -0
  224. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/models/__init__.py +0 -0
  225. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/sample_data/Sqlite__Sample_Data__Chinook.py +0 -0
  226. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/sample_data/__init__.py +0 -0
  227. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder.py +0 -0
  228. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder__Select.py +0 -0
  229. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/sql_builder/__init__.py +0 -0
  230. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Config.py +0 -0
  231. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Edges.py +0 -0
  232. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Files.py +0 -0
  233. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Nodes.py +0 -0
  234. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/sqlite/tables/__init__.py +0 -0
  235. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ssh/SCP.py +0 -0
  236. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ssh/SSH.py +0 -0
  237. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ssh/SSH__Cache__Requests.py +0 -0
  238. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ssh/SSH__Execute.py +0 -0
  239. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ssh/SSH__Health_Check.py +0 -0
  240. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ssh/SSH__Linux.py +0 -0
  241. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ssh/SSH__Linux__Amazon.py +0 -0
  242. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ssh/SSH__Python.py +0 -0
  243. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ssh/TestCase__SSH.py +0 -0
  244. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/ssh/__init__.py +0 -0
  245. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/trace/Trace_Call.py +0 -0
  246. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/trace/Trace_Call__Config.py +0 -0
  247. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/trace/Trace_Call__Handler.py +0 -0
  248. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/trace/Trace_Call__Print_Lines.py +0 -0
  249. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/trace/Trace_Call__Print_Traces.py +0 -0
  250. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/trace/Trace_Call__Stack.py +0 -0
  251. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/trace/Trace_Call__Stack_Node.py +0 -0
  252. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/trace/Trace_Call__Stats.py +0 -0
  253. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/trace/Trace_Call__View_Model.py +0 -0
  254. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/trace/Trace_Files.py +0 -0
  255. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/trace/__init__.py +0 -0
  256. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/xml/Xml__Attribute.py +0 -0
  257. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/xml/Xml__Element.py +0 -0
  258. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/xml/Xml__File.py +0 -0
  259. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/xml/Xml__File__Load.py +0 -0
  260. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/xml/Xml__File__To_Dict.py +0 -0
  261. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/xml/Xml__File__To_Xml.py +0 -0
  262. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/xml/__init__.py +0 -0
  263. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/xml/rss/RSS__Channel.py +0 -0
  264. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/xml/rss/RSS__Enclosure.py +0 -0
  265. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/xml/rss/RSS__Feed.py +0 -0
  266. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/xml/rss/RSS__Feed__Parser.py +0 -0
  267. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/xml/rss/RSS__Image.py +0 -0
  268. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/helpers/xml/rss/RSS__Item.py +0 -0
  269. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/Catch.py +0 -0
  270. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/Custom_Handler_For_Http_Tests.py +0 -0
  271. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/Duration.py +0 -0
  272. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/Hook_Method.py +0 -0
  273. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/Log_To_Queue.py +0 -0
  274. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/Log_To_String.py +0 -0
  275. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/Logging.py +0 -0
  276. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/Patch_Print.py +0 -0
  277. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/Profiler.py +0 -0
  278. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/Pytest.py +0 -0
  279. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/Stderr.py +0 -0
  280. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/Stdout.py +0 -0
  281. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/Temp_Env_Vars.py +0 -0
  282. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/Temp_File.py +0 -0
  283. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/Temp_Folder.py +0 -0
  284. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/Temp_Sys_Path.py +0 -0
  285. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/Temp_Web_Server.py +0 -0
  286. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/Temp_Zip.py +0 -0
  287. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/Temp_Zip_In_Memory.py +0 -0
  288. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/Unit_Test.py +0 -0
  289. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/Unzip_File.py +0 -0
  290. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/__init__.py +0 -0
  291. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/performance/Performance_Measure__Session.py +0 -0
  292. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/performance/__init__.py +0 -0
  293. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/performance/models/Model__Performance_Measure__Measurement.py +0 -0
  294. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/performance/models/Model__Performance_Measure__Result.py +0 -0
  295. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/testing/performance/models/__init__.py +0 -0
  296. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/Type_Safe.py +0 -0
  297. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/Type_Safe__Dict.py +0 -0
  298. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/Type_Safe__List.py +0 -0
  299. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/Type_Safe__Method.py +0 -0
  300. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/Type_Safe__Set.py +0 -0
  301. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/Type_Safe__Tuple.py +0 -0
  302. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/__init__.py +0 -0
  303. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/decorators/__init__.py +0 -0
  304. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/decorators/type_safe.py +0 -0
  305. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/methods/__init__.py +0 -0
  306. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/methods/type_safe_property.py +0 -0
  307. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/shared/Type_Safe__Annotations.py +0 -0
  308. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/shared/Type_Safe__Cache.py +0 -0
  309. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/shared/Type_Safe__Convert.py +0 -0
  310. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/shared/Type_Safe__Not_Cached.py +0 -0
  311. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/shared/Type_Safe__Raise_Exception.py +0 -0
  312. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/shared/Type_Safe__Shared__Variables.py +0 -0
  313. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/shared/__init__.py +0 -0
  314. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Class_Kwargs.py +0 -0
  315. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Default_Kwargs.py +0 -0
  316. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Default_Value.py +0 -0
  317. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Init.py +0 -0
  318. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Set_Attr.py +0 -0
  319. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/steps/__init__.py +0 -0
  320. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/validators/Type_Safe__Validator.py +0 -0
  321. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/validators/Validator__Max.py +0 -0
  322. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/validators/Validator__Min.py +0 -0
  323. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/validators/Validator__One_Of.py +0 -0
  324. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/validators/Validator__Regex.py +0 -0
  325. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/type_safe/validators/__init__.py +0 -0
  326. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Assert.py +0 -0
  327. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Call_Stack.py +0 -0
  328. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Csv.py +0 -0
  329. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Dev.py +0 -0
  330. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Env.py +0 -0
  331. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Exceptions.py +0 -0
  332. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Files.py +0 -0
  333. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Functions.py +0 -0
  334. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Http.py +0 -0
  335. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Int.py +0 -0
  336. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Json_Cache.py +0 -0
  337. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Lists.py +0 -0
  338. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Misc.py +0 -0
  339. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Objects.py +0 -0
  340. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Png.py +0 -0
  341. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Process.py +0 -0
  342. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Python_Logger.py +0 -0
  343. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Regex.py +0 -0
  344. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Status.py +0 -0
  345. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Str.py +0 -0
  346. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Threads.py +0 -0
  347. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Toml.py +0 -0
  348. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Version.py +0 -0
  349. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/Zip.py +0 -0
  350. {osbot_utils-2.16.0 → osbot_utils-2.18.0}/osbot_utils/utils/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: osbot_utils
3
- Version: 2.16.0
3
+ Version: 2.18.0
4
4
  Summary: OWASP Security Bot - Utils
5
5
  License: MIT
6
6
  Author: Dinis Cruz
@@ -23,7 +23,7 @@ Description-Content-Type: text/markdown
23
23
 
24
24
  Powerful Python util methods and classes that simplify common apis and tasks.
25
25
 
26
- ![Current Release](https://img.shields.io/badge/release-v2.16.0-blue)
26
+ ![Current Release](https://img.shields.io/badge/release-v2.18.0-blue)
27
27
  [![codecov](https://codecov.io/gh/owasp-sbot/OSBot-Utils/graph/badge.svg?token=GNVW0COX1N)](https://codecov.io/gh/owasp-sbot/OSBot-Utils)
28
28
 
29
29
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Powerful Python util methods and classes that simplify common apis and tasks.
4
4
 
5
- ![Current Release](https://img.shields.io/badge/release-v2.16.0-blue)
5
+ ![Current Release](https://img.shields.io/badge/release-v2.18.0-blue)
6
6
  [![codecov](https://codecov.io/gh/owasp-sbot/OSBot-Utils/graph/badge.svg?token=GNVW0COX1N)](https://codecov.io/gh/owasp-sbot/OSBot-Utils)
7
7
 
8
8
 
@@ -2,17 +2,17 @@ import asyncio
2
2
  import logging
3
3
  import typing
4
4
 
5
- from osbot_utils.helpers.Dependency_Manager import Dependency_Manager
6
- from osbot_utils.type_safe.Type_Safe import Type_Safe
7
- from osbot_utils.helpers.CFormat import CFormat, f_dark_grey, f_magenta, f_bold
8
- from osbot_utils.helpers.flows.models.Flow_Run__Config import Flow_Run__Config
9
- from osbot_utils.helpers.flows.Flow__Events import flow_events
10
- from osbot_utils.helpers.flows.models.Flow_Run__Event_Data import Flow_Run__Event_Data
11
- from osbot_utils.testing.Stdout import Stdout
12
- from osbot_utils.utils.Misc import random_id, lower, time_now
13
- from osbot_utils.utils.Python_Logger import Python_Logger
14
- from osbot_utils.utils.Str import ansis_to_texts
15
- from osbot_utils.utils.Threads import invoke_in_new_event_loop
5
+ from osbot_utils.helpers.Dependency_Manager import Dependency_Manager
6
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
7
+ from osbot_utils.helpers.CFormat import CFormat, f_dark_grey, f_magenta, f_bold
8
+ from osbot_utils.helpers.flows.models.Flow_Run__Config import Flow_Run__Config
9
+ from osbot_utils.helpers.flows.Flow__Events import flow_events
10
+ from osbot_utils.helpers.flows.models.Flow_Run__Event_Data import Flow_Run__Event_Data
11
+ from osbot_utils.testing.Stdout import Stdout
12
+ from osbot_utils.utils.Misc import random_id, lower, time_now
13
+ from osbot_utils.utils.Python_Logger import Python_Logger
14
+ from osbot_utils.utils.Str import ansis_to_texts
15
+ from osbot_utils.utils.Threads import invoke_in_new_event_loop
16
16
 
17
17
  FLOW__RANDOM_ID__PREFIX = 'flow_id__'
18
18
  FLOW__RANDOM_NAME__PREFIX = 'flow_name__'
@@ -20,7 +20,7 @@ FLOW__LOGGING__LOG_FORMAT = '%(asctime)s.%(msecs)03d | %(levelname)-8s | %(mess
20
20
  FLOW__LOGGING__DATE_FORMAT = '%H:%M:%S'
21
21
 
22
22
 
23
-
23
+ # todo: add flow duration
24
24
  class Flow(Type_Safe):
25
25
  captured_exec_logs : list
26
26
  data : dict # dict available to the tasks to add and collect data
@@ -1,18 +1,19 @@
1
- import asyncio
2
1
  import inspect
3
2
  import typing
4
3
 
5
- from osbot_utils.helpers.flows.models.Flow_Run__Event_Data import Flow_Run__Event_Data
6
- from osbot_utils.utils.Misc import random_id, lower
7
- from osbot_utils.helpers.Dependency_Manager import Dependency_Manager
8
- from osbot_utils.helpers.flows.Flow__Events import flow_events
9
- from osbot_utils.testing.Stdout import Stdout
10
- from osbot_utils.helpers.CFormat import CFormat, f_dark_grey, f_red, f_blue, f_bold
11
- from osbot_utils.type_safe.Type_Safe import Type_Safe
12
- from osbot_utils.helpers.flows.Flow import Flow
4
+ from osbot_utils.helpers.flows.models.Flow_Run__Event_Data import Flow_Run__Event_Data
5
+ from osbot_utils.utils.Misc import random_id, lower
6
+ from osbot_utils.helpers.Dependency_Manager import Dependency_Manager
7
+ from osbot_utils.helpers.flows.Flow__Events import flow_events
8
+ from osbot_utils.testing.Stdout import Stdout
9
+ from osbot_utils.helpers.CFormat import CFormat, f_dark_grey, f_red, f_blue, f_bold
10
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
11
+ from osbot_utils.helpers.flows.Flow import Flow
13
12
 
14
13
  TASK__RANDOM_ID__PREFIX = 'task_id__'
15
14
 
15
+ # todo: add task duration
16
+
16
17
  class Task(Type_Safe):
17
18
  data : dict # dict available to the task to add and collect data
18
19
  task_id : str
@@ -1,4 +1,5 @@
1
1
  from typing import get_args, Union, Optional, Any, ForwardRef
2
+ from osbot_utils.helpers.Obj_Id import Obj_Id
2
3
  from osbot_utils.type_safe.shared.Type_Safe__Cache import type_safe_cache
3
4
 
4
5
  EXACT_TYPE_MATCH = (int, float, str, bytes, bool, complex)
@@ -63,6 +64,8 @@ class Type_Safe__Base:
63
64
  if len(args) != len(item):
64
65
  raise TypeError(f"Expected tuple of length {len(args)}, but got {len(item)}")
65
66
  for idx, (elem, elem_type) in enumerate(zip(item, args)):
67
+ if elem_type is Obj_Id: # todo: refactor this out, and figure out better way to handle this kind of de-serialisation
68
+ elem = elem_type(elem)
66
69
  try:
67
70
  self.is_instance_of_type(elem, elem_type)
68
71
  except TypeError as e:
@@ -246,7 +246,7 @@ class Type_Safe__Validation:
246
246
  type_safe_raise_exception.immutable_type_error(var_name, var_type)
247
247
 
248
248
  def validate_variable_type(self, var_name, var_type, var_value): # Validate type compatibility
249
- if var_type and not isinstance(var_value, var_type):
249
+ if type(var_type) is type and not isinstance(var_value, var_type):
250
250
  type_safe_raise_exception.type_mismatch_error(var_name, var_type, type(var_value))
251
251
 
252
252
  type_safe_validation = Type_Safe__Validation()
@@ -2,6 +2,7 @@ import sys
2
2
  import types
3
3
  from decimal import Decimal
4
4
  from enum import EnumMeta
5
+ from osbot_utils.helpers.Obj_Id import Obj_Id
5
6
  from osbot_utils.type_safe.Type_Safe import Type_Safe
6
7
  from osbot_utils.type_safe.Type_Safe__List import Type_Safe__List
7
8
  from osbot_utils.helpers.Random_Guid import Random_Guid
@@ -100,8 +101,10 @@ class Type_Safe__Step__From_Json:
100
101
  value = Random_Guid(value)
101
102
  elif type_safe_annotations.obj_is_attribute_annotation_of_type(_self, key, Random_Guid_Short): # handle Random_Guid_Short
102
103
  value = Random_Guid_Short(value)
103
- elif type_safe_annotations.obj_is_attribute_annotation_of_type(_self, key, Timestamp_Now): # handle Timestamp_Now
104
+ elif type_safe_annotations.obj_is_attribute_annotation_of_type(_self, key, Timestamp_Now ): # handle Timestamp_Now
104
105
  value = Timestamp_Now(value)
106
+ elif type_safe_annotations.obj_is_attribute_annotation_of_type(_self, key, Obj_Id ): # handle Obj_Id
107
+ value = Obj_Id(value)
105
108
 
106
109
  setattr(_self, key, value) # Direct assignment for primitive types and other structures
107
110
 
@@ -170,7 +170,7 @@ json_file_create_gz = Json.save_file_gz
170
170
  json_file_contents = Json.load_file
171
171
  json_file_contents_gz = Json.load_file_gz
172
172
  json_file_load = Json.load_file
173
- json_file_safe = Json.save_file
173
+ json_file_save = Json.save_file
174
174
  json_from_file = Json.load_file
175
175
  json_load_file = Json.load_file
176
176
  json_load_file_and_delete = Json.load_file_and_delete
@@ -184,6 +184,7 @@ json_lines_loads = Json.loads_json_lines
184
184
  json_parse = Json.loads
185
185
  json_lines_parse = Json.loads_json_lines
186
186
  json_to_bytes = json_dumps_to_bytes
187
+ json_to_file = json_file_save
187
188
  json_to_str = json_dumps
188
189
  json_round_trip = Json.round_trip
189
190
  json_save = Json.save_file
@@ -0,0 +1 @@
1
+ v2.18.0
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "osbot_utils"
3
- version = "v2.16.0"
3
+ version = "v2.18.0"
4
4
  description = "OWASP Security Bot - Utils"
5
5
  authors = ["Dinis Cruz <dinis.cruz@owasp.org>"]
6
6
  license = "MIT"
@@ -1 +0,0 @@
1
- v2.16.0
File without changes