osbot-utils 2.27.0__tar.gz → 2.29.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.
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/PKG-INFO +2 -2
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/README.md +1 -1
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/Task.py +4 -1
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/Type_Safe.py +7 -3
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/Type_Safe__Dict.py +6 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/steps/Type_Safe__Step__From_Json.py +3 -1
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Objects.py +9 -1
- osbot_utils-2.29.0/osbot_utils/version +1 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/pyproject.toml +1 -1
- osbot_utils-2.27.0/osbot_utils/version +0 -1
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/LICENSE +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/base_classes/Cache_Pickle.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/base_classes/Kwargs_To_Disk.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/base_classes/Kwargs_To_Self.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/base_classes/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/context_managers/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/context_managers/async_invoke.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/context_managers/capture_duration.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/context_managers/disable_root_loggers.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/context_managers/print_duration.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/classes/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/classes/singleton.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/lists/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/lists/filter_list.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/lists/group_by.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/lists/index_by.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/methods/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/methods/cache.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/methods/cache_on_function.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/methods/cache_on_self.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/methods/cache_on_tmp.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/methods/capture_exception.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/methods/capture_status.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/methods/catch.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/methods/context.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/methods/depreciated.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/methods/function_type_check.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/methods/obj_as_context.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/methods/remove_return_value.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/methods/required_fields.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/fluent/Fluent_Dict.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/fluent/Fluent_List.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/fluent/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/CFormat.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/CPrint.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/Dependency_Manager.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/Dict_To_Attr.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/Guid.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/Hashicorp_Secrets.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/Local_Cache.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/Local_Caches.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/Obj_Id.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/Print_Table.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/Python_Audit.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/Random_Guid.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/Random_Guid_Short.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/Random_Seed.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/Safe_Id.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/Str_ASCII.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/Timestamp_Now.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/Type_Registry.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/Zip_Bytes.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/Ast.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/Ast_Base.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/Ast_Data.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/Ast_Load.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/Ast_Merge.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/Ast_Node.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/Ast_Visit.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/Call_Tree.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Add.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Alias.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_And.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Argument.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Arguments.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Assert.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Assign.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Attribute.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Aug_Assign.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Bin_Op.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Bool_Op.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Break.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Call.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Class_Def.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Compare.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Comprehension.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Constant.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Continue.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Dict.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Eq.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Except_Handler.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Expr.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_For.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Function_Def.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Generator_Exp.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Gt.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_GtE.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_If.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_If_Exp.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Import.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Import_From.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_In.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Is.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Is_Not.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Keyword.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Lambda.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_List.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_List_Comp.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Load.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Lt.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_LtE.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Mod.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Module.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Mult.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Name.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Not.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Not_Eq.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Not_In.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Or.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Pass.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Pow.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Raise.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Return.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Set.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Slice.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Starred.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Store.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Sub.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Subscript.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Try.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Tuple.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Unary_Op.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_While.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_With.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_With_Item.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Yield.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Actions.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Config.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Data.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Invoke.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Row.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Table.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/cache_requests/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/cache_requests/flows/flow__Cache__Requests.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/Flow.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/actions/Flow__Data.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/actions/Flow__Events.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/actions/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/decorators/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/decorators/flow.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/decorators/task.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/models/Flow_Run__Config.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/models/Flow_Run__Event.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Data.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Type.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/models/Schema__Flow__Artifact.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/models/Schema__Flow__Result.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/models/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/schemas/Schema__Flow.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Data.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Event.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Event__Data.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Log.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Task__Data.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/schemas/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/generators/Generator_Context_Manager.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/generators/Generator_Manager.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/generators/Model__Generator_State.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/generators/Model__Generator_Target.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/generators/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/html/Dict_To_Css.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/html/Dict_To_Html.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/html/Dict_To_Tags.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/html/Html_To_Dict.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/html/Html_To_Tag.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/html/Tag__Base.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/html/Tag__Body.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/html/Tag__Div.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/html/Tag__H.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/html/Tag__HR.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/html/Tag__Head.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/html/Tag__Html.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/html/Tag__Link.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/html/Tag__Style.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/html/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/pubsub/Event__Queue.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/pubsub/PubSub__Client.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/pubsub/PubSub__Room.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/pubsub/PubSub__Server.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/pubsub/PubSub__Sqlite.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/pubsub/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Connect.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Disconnect.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Execute_Method.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Join_Room.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Leave_Room.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Message.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/pubsub/schemas/Schema__PubSub__Client.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/pubsub/schemas/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/python_compatibility/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/python_compatibility/python_3_8.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/Capture_Sqlite_Error.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/Sqlite__Cursor.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/Sqlite__Database.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/Sqlite__Field.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/Sqlite__Globals.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/Sqlite__Table.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/Sqlite__Table__Create.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Database__Disk.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Table.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/cache/Schema__Table__Requests.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Patch.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Sqlite.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Table.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/cache/Sqlite__DB__Requests.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/cache/TestCase__Sqlite__Cache__Requests.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/cache/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Files.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Graph.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Json.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Local.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/domains/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/domains/schemas/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/models/Sqlite__Field__Type.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/models/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/sample_data/Sqlite__Sample_Data__Chinook.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/sample_data/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder__Select.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/sql_builder/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Config.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Edges.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Files.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Nodes.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/sqlite/tables/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ssh/SCP.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ssh/SSH.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ssh/SSH__Cache__Requests.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ssh/SSH__Execute.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ssh/SSH__Health_Check.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ssh/SSH__Linux.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ssh/SSH__Linux__Amazon.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ssh/SSH__Python.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ssh/TestCase__SSH.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ssh/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/trace/Trace_Call.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/trace/Trace_Call__Config.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/trace/Trace_Call__Handler.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/trace/Trace_Call__Print_Lines.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/trace/Trace_Call__Print_Traces.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/trace/Trace_Call__Stack.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/trace/Trace_Call__Stack_Node.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/trace/Trace_Call__Stats.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/trace/Trace_Call__View_Model.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/trace/Trace_Files.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/trace/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/xml/Xml__Attribute.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/xml/Xml__Element.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/xml/Xml__File.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/xml/Xml__File__Load.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/xml/Xml__File__To_Dict.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/xml/Xml__File__To_Xml.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/xml/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/xml/rss/RSS__Channel.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/xml/rss/RSS__Enclosure.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/xml/rss/RSS__Feed.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/xml/rss/RSS__Feed__Parser.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/xml/rss/RSS__Image.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/xml/rss/RSS__Item.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/Catch.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/Custom_Handler_For_Http_Tests.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/Duration.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/Hook_Method.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/Log_To_Queue.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/Log_To_String.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/Logging.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/Patch_Print.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/Profiler.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/Pytest.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/Stderr.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/Stdout.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/Temp_Env_Vars.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/Temp_File.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/Temp_Folder.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/Temp_Sys_Path.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/Temp_Web_Server.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/Temp_Zip.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/Temp_Zip_In_Memory.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/Unit_Test.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/Unzip_File.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/performance/Performance_Measure__Session.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/performance/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/performance/models/Model__Performance_Measure__Measurement.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/performance/models/Model__Performance_Measure__Result.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/testing/performance/models/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/Type_Safe__Base.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/Type_Safe__List.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/Type_Safe__Method.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/Type_Safe__Set.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/Type_Safe__Tuple.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/decorators/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/decorators/type_safe.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/methods/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/methods/type_safe_property.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/shared/Type_Safe__Annotations.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/shared/Type_Safe__Cache.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/shared/Type_Safe__Convert.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/shared/Type_Safe__Json_Compressor.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/shared/Type_Safe__Json_Compressor__Type_Registry.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/shared/Type_Safe__Not_Cached.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/shared/Type_Safe__Raise_Exception.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/shared/Type_Safe__Shared__Variables.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/shared/Type_Safe__Validation.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/shared/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Class_Kwargs.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Default_Kwargs.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Default_Value.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Init.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Set_Attr.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/steps/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/validators/Type_Safe__Validator.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/validators/Validator__Max.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/validators/Validator__Min.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/validators/Validator__One_Of.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/validators/Validator__Regex.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/validators/__init__.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Assert.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Call_Stack.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Csv.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Dev.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Env.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Exceptions.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Files.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Functions.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Http.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Int.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Json.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Json_Cache.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Lists.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Misc.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Png.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Process.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Python_Logger.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Regex.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Status.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Str.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Threads.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Toml.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Version.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/utils/Zip.py +0 -0
- {osbot_utils-2.27.0 → osbot_utils-2.29.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.
|
3
|
+
Version: 2.29.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
|
-

|
27
27
|
[](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
|
-

|
6
6
|
[](https://codecov.io/gh/owasp-sbot/OSBot-Utils)
|
7
7
|
|
8
8
|
|
@@ -50,7 +50,10 @@ class Task(Type_Safe):
|
|
50
50
|
return self.execute__after()
|
51
51
|
|
52
52
|
def execute__before(self):
|
53
|
-
|
53
|
+
flow_from_stack = self.find_flow()
|
54
|
+
if flow_from_stack:
|
55
|
+
self.task_flow = flow_from_stack
|
56
|
+
|
54
57
|
if self.task_flow is None:
|
55
58
|
raise Exception("No Flow found for Task")
|
56
59
|
|
@@ -62,7 +62,7 @@ class Type_Safe:
|
|
62
62
|
def json(self):
|
63
63
|
return self.serialize_to_dict()
|
64
64
|
|
65
|
-
def json__compress(self):
|
65
|
+
def json__compress(self): # todo: see if this is the best place to put these Type_Safe__Json_Compressor methods
|
66
66
|
from osbot_utils.type_safe.shared.Type_Safe__Json_Compressor import Type_Safe__Json_Compressor
|
67
67
|
return Type_Safe__Json_Compressor().compress(self)
|
68
68
|
|
@@ -97,7 +97,7 @@ class Type_Safe:
|
|
97
97
|
|
98
98
|
return dict_to_obj(self.json())
|
99
99
|
|
100
|
-
def serialize_to_dict(self):
|
100
|
+
def serialize_to_dict(self): # todo: see if we need this method or if the .json() is enough
|
101
101
|
return serialize_to_dict(self)
|
102
102
|
|
103
103
|
def print(self):
|
@@ -110,4 +110,8 @@ class Type_Safe:
|
|
110
110
|
from osbot_utils.type_safe.steps.Type_Safe__Step__From_Json import type_safe_step_from_json # circular dependency on Type_Safe
|
111
111
|
return type_safe_step_from_json.from_json(cls, json_data, raise_on_not_found)
|
112
112
|
|
113
|
-
|
113
|
+
@classmethod
|
114
|
+
def from_json__compressed(cls, json_data): # todo: see if this is the best place to put these Type_Safe__Json_Compressor methods
|
115
|
+
from osbot_utils.type_safe.shared.Type_Safe__Json_Compressor import Type_Safe__Json_Compressor
|
116
|
+
json_data__decompressed = Type_Safe__Json_Compressor().decompress(json_data)
|
117
|
+
return cls.from_json(json_data__decompressed)
|
@@ -1,3 +1,5 @@
|
|
1
|
+
from typing import Type
|
2
|
+
|
1
3
|
from osbot_utils.type_safe.Type_Safe__Base import Type_Safe__Base
|
2
4
|
|
3
5
|
class Type_Safe__Dict(Type_Safe__Base, dict):
|
@@ -27,6 +29,10 @@ class Type_Safe__Dict(Type_Safe__Base, dict):
|
|
27
29
|
|
28
30
|
result = {}
|
29
31
|
for key, value in self.items():
|
32
|
+
|
33
|
+
if isinstance(key, (type, Type)): # Handle Type objects as keys
|
34
|
+
key = f"{key.__module__}.{key.__name__}"
|
35
|
+
|
30
36
|
if isinstance(value, Type_Safe): # Handle Type_Safe objects in values
|
31
37
|
result[key] = value.json()
|
32
38
|
elif isinstance(value, (list, tuple)): # Handle lists/tuples that might contain Type_Safe objects
|
{osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/type_safe/steps/Type_Safe__Step__From_Json.py
RENAMED
@@ -110,7 +110,7 @@ class Type_Safe__Step__From_Json:
|
|
110
110
|
|
111
111
|
return _self
|
112
112
|
|
113
|
-
def deserialize_type__using_value(self, value):
|
113
|
+
def deserialize_type__using_value(self, value): # TODO: Check the security implications of this deserialisation
|
114
114
|
if value:
|
115
115
|
try:
|
116
116
|
module_name, type_name = value.rsplit('.', 1)
|
@@ -139,6 +139,8 @@ class Type_Safe__Step__From_Json:
|
|
139
139
|
for dict_key, dict_value in value.items():
|
140
140
|
key_origin = type_safe_cache.get_origin(key_class)
|
141
141
|
if key_origin is type:
|
142
|
+
if type(dict_key) is str:
|
143
|
+
dict_key = self.deserialize_type__using_value(dict_key)
|
142
144
|
expected_dict_type = get_args(key_class)[0]
|
143
145
|
if dict_key != expected_dict_type and not issubclass(dict_key,expected_dict_type):
|
144
146
|
raise TypeError(f"Expected {expected_dict_type} class for key but got instance: {dict_key}")
|
@@ -284,7 +284,15 @@ def serialize_to_dict(obj):
|
|
284
284
|
elif isinstance(obj, set):
|
285
285
|
return [serialize_to_dict(item) for item in obj]
|
286
286
|
elif isinstance(obj, dict):
|
287
|
-
|
287
|
+
serialized_dict = {} # todo: refactor to separate method
|
288
|
+
for key, value in obj.items():
|
289
|
+
if isinstance(key, type): # Handle type keys by converting to fully qualified string
|
290
|
+
serialized_key = f"{key.__module__}.{key.__name__}"
|
291
|
+
else:
|
292
|
+
serialized_key = key
|
293
|
+
serialized_dict[serialized_key] = serialize_to_dict(value) # Recursively serialize the value
|
294
|
+
return serialized_dict
|
295
|
+
#return {key: serialize_to_dict(value) for key, value in obj.items()}
|
288
296
|
elif hasattr(obj, "__dict__"):
|
289
297
|
data = {} # todo: look at a more advanced version which saved the type of the object, for example with {'__type__': type(obj).__name__}
|
290
298
|
for key, value in obj.__dict__.items():
|
@@ -0,0 +1 @@
|
|
1
|
+
v2.29.0
|
@@ -1 +0,0 @@
|
|
1
|
-
v2.27.0
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/context_managers/disable_root_loggers.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/methods/cache_on_function.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/methods/capture_exception.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/methods/function_type_check.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/decorators/methods/remove_return_value.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Comprehension.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Except_Handler.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/ast/nodes/Ast_Generator_Exp.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Row.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/models/Flow_Run__Config.py
RENAMED
File without changes
|
{osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/models/Flow_Run__Event.py
RENAMED
File without changes
|
{osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Data.py
RENAMED
File without changes
|
{osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Type.py
RENAMED
File without changes
|
{osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/models/Schema__Flow__Artifact.py
RENAMED
File without changes
|
{osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/models/Schema__Flow__Result.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Data.py
RENAMED
File without changes
|
{osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Event.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Log.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/generators/Generator_Manager.py
RENAMED
File without changes
|
{osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/generators/Model__Generator_State.py
RENAMED
File without changes
|
{osbot_utils-2.27.0 → osbot_utils-2.29.0}/osbot_utils/helpers/generators/Model__Generator_Target.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|