osbot-utils 2.21.0__tar.gz → 2.22.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.21.0 → osbot_utils-2.22.0}/PKG-INFO +2 -2
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/README.md +1 -1
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/shared/Type_Safe__Validation.py +43 -4
- osbot_utils-2.22.0/osbot_utils/version +1 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/pyproject.toml +1 -1
- osbot_utils-2.21.0/osbot_utils/version +0 -1
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/LICENSE +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/base_classes/Cache_Pickle.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/base_classes/Kwargs_To_Disk.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/base_classes/Kwargs_To_Self.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/base_classes/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/context_managers/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/context_managers/async_invoke.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/context_managers/capture_duration.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/context_managers/disable_root_loggers.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/context_managers/print_duration.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/classes/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/classes/singleton.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/lists/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/lists/filter_list.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/lists/group_by.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/lists/index_by.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/methods/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/methods/cache.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/methods/cache_on_function.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/methods/cache_on_self.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/methods/cache_on_tmp.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/methods/capture_exception.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/methods/capture_status.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/methods/catch.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/methods/context.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/methods/depreciated.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/methods/function_type_check.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/methods/obj_as_context.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/methods/remove_return_value.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/methods/required_fields.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/fluent/Fluent_Dict.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/fluent/Fluent_List.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/fluent/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/CFormat.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/CPrint.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/Dependency_Manager.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/Dict_To_Attr.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/Guid.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/Hashicorp_Secrets.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/Local_Cache.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/Local_Caches.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/Obj_Id.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/Print_Table.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/Python_Audit.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/Random_Guid.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/Random_Guid_Short.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/Random_Seed.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/Safe_Id.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/Str_ASCII.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/Timestamp_Now.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/Type_Registry.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/Zip_Bytes.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/Ast.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/Ast_Base.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/Ast_Data.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/Ast_Load.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/Ast_Merge.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/Ast_Node.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/Ast_Visit.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/Call_Tree.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Add.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Alias.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_And.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Argument.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Arguments.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Assert.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Assign.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Attribute.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Aug_Assign.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Bin_Op.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Bool_Op.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Break.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Call.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Class_Def.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Compare.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Comprehension.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Constant.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Continue.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Dict.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Eq.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Except_Handler.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Expr.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_For.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Function_Def.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Generator_Exp.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Gt.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_GtE.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_If.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_If_Exp.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Import.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Import_From.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_In.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Is.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Is_Not.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Keyword.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Lambda.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_List.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_List_Comp.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Load.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Lt.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_LtE.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Mod.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Module.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Mult.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Name.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Not.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Not_Eq.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Not_In.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Or.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Pass.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Pow.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Raise.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Return.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Set.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Slice.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Starred.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Store.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Sub.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Subscript.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Try.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Tuple.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Unary_Op.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_While.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_With.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_With_Item.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/Ast_Yield.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ast/nodes/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Actions.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Config.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Data.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Invoke.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Row.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Table.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/cache_requests/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/cache_requests/flows/flow__Cache__Requests.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/Flow.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/Task.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/actions/Flow__Data.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/actions/Flow__Events.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/actions/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/decorators/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/decorators/flow.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/decorators/task.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/models/Flow_Run__Config.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/models/Flow_Run__Event.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Data.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Type.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/models/Schema__Flow__Artifact.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/models/Schema__Flow__Result.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/models/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/schemas/Schema__Flow.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Data.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Event.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Event__Data.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Log.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Task__Data.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/schemas/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/generators/Generator_Context_Manager.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/generators/Generator_Manager.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/generators/Model__Generator_State.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/generators/Model__Generator_Target.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/generators/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/html/Dict_To_Css.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/html/Dict_To_Html.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/html/Dict_To_Tags.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/html/Html_To_Dict.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/html/Html_To_Tag.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/html/Tag__Base.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/html/Tag__Body.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/html/Tag__Div.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/html/Tag__H.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/html/Tag__HR.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/html/Tag__Head.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/html/Tag__Html.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/html/Tag__Link.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/html/Tag__Style.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/html/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/pubsub/Event__Queue.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/pubsub/PubSub__Client.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/pubsub/PubSub__Room.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/pubsub/PubSub__Server.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/pubsub/PubSub__Sqlite.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/pubsub/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Connect.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Disconnect.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Execute_Method.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Join_Room.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Leave_Room.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Message.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/pubsub/schemas/Schema__PubSub__Client.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/pubsub/schemas/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/python_compatibility/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/python_compatibility/python_3_8.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/Capture_Sqlite_Error.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/Sqlite__Cursor.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/Sqlite__Database.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/Sqlite__Field.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/Sqlite__Globals.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/Sqlite__Table.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/Sqlite__Table__Create.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Database__Disk.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Table.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/cache/Schema__Table__Requests.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Patch.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Sqlite.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Table.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/cache/Sqlite__DB__Requests.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/cache/TestCase__Sqlite__Cache__Requests.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/cache/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Files.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Graph.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Json.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Local.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/domains/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/domains/schemas/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/models/Sqlite__Field__Type.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/models/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/sample_data/Sqlite__Sample_Data__Chinook.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/sample_data/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder__Select.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/sql_builder/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Config.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Edges.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Files.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Nodes.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/sqlite/tables/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ssh/SCP.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ssh/SSH.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ssh/SSH__Cache__Requests.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ssh/SSH__Execute.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ssh/SSH__Health_Check.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ssh/SSH__Linux.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ssh/SSH__Linux__Amazon.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ssh/SSH__Python.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ssh/TestCase__SSH.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/ssh/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/trace/Trace_Call.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/trace/Trace_Call__Config.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/trace/Trace_Call__Handler.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/trace/Trace_Call__Print_Lines.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/trace/Trace_Call__Print_Traces.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/trace/Trace_Call__Stack.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/trace/Trace_Call__Stack_Node.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/trace/Trace_Call__Stats.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/trace/Trace_Call__View_Model.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/trace/Trace_Files.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/trace/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/xml/Xml__Attribute.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/xml/Xml__Element.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/xml/Xml__File.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/xml/Xml__File__Load.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/xml/Xml__File__To_Dict.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/xml/Xml__File__To_Xml.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/xml/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/xml/rss/RSS__Channel.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/xml/rss/RSS__Enclosure.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/xml/rss/RSS__Feed.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/xml/rss/RSS__Feed__Parser.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/xml/rss/RSS__Image.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/xml/rss/RSS__Item.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/Catch.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/Custom_Handler_For_Http_Tests.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/Duration.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/Hook_Method.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/Log_To_Queue.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/Log_To_String.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/Logging.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/Patch_Print.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/Profiler.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/Pytest.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/Stderr.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/Stdout.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/Temp_Env_Vars.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/Temp_File.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/Temp_Folder.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/Temp_Sys_Path.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/Temp_Web_Server.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/Temp_Zip.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/Temp_Zip_In_Memory.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/Unit_Test.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/Unzip_File.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/performance/Performance_Measure__Session.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/performance/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/performance/models/Model__Performance_Measure__Measurement.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/performance/models/Model__Performance_Measure__Result.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/testing/performance/models/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/Type_Safe.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/Type_Safe__Base.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/Type_Safe__Dict.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/Type_Safe__List.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/Type_Safe__Method.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/Type_Safe__Set.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/Type_Safe__Tuple.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/decorators/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/decorators/type_safe.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/methods/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/methods/type_safe_property.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/shared/Type_Safe__Annotations.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/shared/Type_Safe__Cache.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/shared/Type_Safe__Convert.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/shared/Type_Safe__Not_Cached.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/shared/Type_Safe__Raise_Exception.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/shared/Type_Safe__Shared__Variables.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/shared/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Class_Kwargs.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Default_Kwargs.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Default_Value.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/steps/Type_Safe__Step__From_Json.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Init.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Set_Attr.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/steps/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/validators/Type_Safe__Validator.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/validators/Validator__Max.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/validators/Validator__Min.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/validators/Validator__One_Of.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/validators/Validator__Regex.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/validators/__init__.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Assert.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Call_Stack.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Csv.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Dev.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Env.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Exceptions.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Files.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Functions.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Http.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Int.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Json.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Json_Cache.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Lists.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Misc.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Objects.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Png.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Process.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Python_Logger.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Regex.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Status.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Str.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Threads.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Toml.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Version.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/utils/Zip.py +0 -0
- {osbot_utils-2.21.0 → osbot_utils-2.22.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.22.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
|
|
{osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/type_safe/shared/Type_Safe__Validation.py
RENAMED
@@ -1,3 +1,5 @@
|
|
1
|
+
import collections
|
2
|
+
import inspect
|
1
3
|
import types
|
2
4
|
import typing
|
3
5
|
from enum import EnumMeta
|
@@ -151,14 +153,15 @@ class Type_Safe__Validation:
|
|
151
153
|
return all(isinstance(k, key_type) and isinstance(v, value_type)
|
152
154
|
for k, v in value.items()) # if it is not a Union or Annotated types just return None (to give an indication to the caller that the comparison was not made)
|
153
155
|
|
154
|
-
def check_if__type_matches__obj_annotation__for_attr(self, target,
|
155
|
-
attr_name,
|
156
|
-
value
|
157
|
-
) -> Optional[bool]:
|
156
|
+
def check_if__type_matches__obj_annotation__for_attr(self, target, attr_name, value) -> Optional[bool]:
|
158
157
|
annotations = type_safe_cache.get_obj_annotations(target)
|
159
158
|
attr_type = annotations.get(attr_name)
|
160
159
|
if attr_type:
|
161
160
|
origin_attr_type = get_origin(attr_type) # to handle when type definition contains a generic
|
161
|
+
|
162
|
+
if origin_attr_type is collections.abc.Callable: # Handle Callable types
|
163
|
+
return self.is_callable_compatible(value, attr_type) # ISSUE: THIS IS NEVER CALLED
|
164
|
+
|
162
165
|
if origin_attr_type is set:
|
163
166
|
if type(value) is list:
|
164
167
|
return True # if the attribute is a set and the value is a list, then they are compatible
|
@@ -190,6 +193,42 @@ class Type_Safe__Validation:
|
|
190
193
|
return value_type is attr_type
|
191
194
|
return None
|
192
195
|
|
196
|
+
def is_callable_compatible(self, value, expected_type) -> bool:
|
197
|
+
if not callable(value):
|
198
|
+
return False
|
199
|
+
|
200
|
+
expected_args = get_args(expected_type)
|
201
|
+
if not expected_args: # Callable without type hints
|
202
|
+
return True
|
203
|
+
|
204
|
+
if len(expected_args) != 2: # Should have args and return type
|
205
|
+
return False
|
206
|
+
|
207
|
+
expected_param_types = expected_args[0] # First element is tuple of parameter types
|
208
|
+
expected_return_type = expected_args[1] # Second element is return type
|
209
|
+
|
210
|
+
|
211
|
+
try: # Get the signature of the actual value
|
212
|
+
sig = inspect.signature(value)
|
213
|
+
except ValueError: # Some built-in functions don't support introspection
|
214
|
+
return True
|
215
|
+
|
216
|
+
actual_params = list(sig.parameters.values()) # Get actual parameters
|
217
|
+
|
218
|
+
if len(actual_params) != len(expected_param_types): # Check number of parameters matches
|
219
|
+
return False
|
220
|
+
|
221
|
+
for actual_param, expected_param_type in zip(actual_params, expected_param_types): # Check each parameter type
|
222
|
+
if actual_param.annotation != inspect.Parameter.empty:
|
223
|
+
if not self.are_types_compatible_for_assigment(actual_param.annotation, expected_param_type):
|
224
|
+
return False # todo: check if we shouldn't raise an exception here, since this is the only place where we actually know the types that don't match in the method signature
|
225
|
+
|
226
|
+
if sig.return_annotation != inspect.Parameter.empty: # Check return type
|
227
|
+
if not self.are_types_compatible_for_assigment(sig.return_annotation, expected_return_type):
|
228
|
+
return False # todo: check if we shouldn't raise an exception here, since this is the only place where we actually know the types that don't match in the method return type
|
229
|
+
|
230
|
+
return True
|
231
|
+
|
193
232
|
# todo: add cache support to this method
|
194
233
|
def should_skip_type_check(self, var_type): # Determine if type checking should be skipped
|
195
234
|
origin = type_safe_cache.get_origin(var_type) # Use cached get_origin
|
@@ -0,0 +1 @@
|
|
1
|
+
v2.22.0
|
@@ -1 +0,0 @@
|
|
1
|
-
v2.21.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.21.0 → osbot_utils-2.22.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.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/methods/cache_on_function.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.21.0 → osbot_utils-2.22.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.21.0 → osbot_utils-2.22.0}/osbot_utils/decorators/methods/function_type_check.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-2.21.0 → osbot_utils-2.22.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.21.0 → osbot_utils-2.22.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.21.0 → osbot_utils-2.22.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.21.0 → osbot_utils-2.22.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.21.0 → osbot_utils-2.22.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.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/models/Flow_Run__Config.py
RENAMED
File without changes
|
{osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/models/Flow_Run__Event.py
RENAMED
File without changes
|
{osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Data.py
RENAMED
File without changes
|
{osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Type.py
RENAMED
File without changes
|
{osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/models/Schema__Flow__Artifact.py
RENAMED
File without changes
|
{osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/models/Schema__Flow__Result.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Data.py
RENAMED
File without changes
|
{osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Event.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-2.21.0 → osbot_utils-2.22.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.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/generators/Generator_Manager.py
RENAMED
File without changes
|
{osbot_utils-2.21.0 → osbot_utils-2.22.0}/osbot_utils/helpers/generators/Model__Generator_State.py
RENAMED
File without changes
|
{osbot_utils-2.21.0 → osbot_utils-2.22.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
|