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