osbot-utils 2.87.0__tar.gz → 2.88.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.87.0 → osbot_utils-2.88.0}/PKG-INFO +2 -2
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/README.md +1 -1
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/Type_Safe.py +1 -1
- osbot_utils-2.88.0/osbot_utils/type_safe/type_safe_core/shared/Type_Safe__Raise_Exception.py +18 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/shared/Type_Safe__Validation.py +6 -6
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/steps/Type_Safe__Step__Class_Kwargs.py +1 -1
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/steps/Type_Safe__Step__Set_Attr.py +5 -5
- osbot_utils-2.88.0/osbot_utils/version +1 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/pyproject.toml +1 -1
- osbot_utils-2.87.0/osbot_utils/type_safe/type_safe_core/shared/Type_Safe__Raise_Exception.py +0 -14
- osbot_utils-2.87.0/osbot_utils/version +0 -1
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/LICENSE +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/base_classes/Cache_Pickle.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/base_classes/Kwargs_To_Disk.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/base_classes/Kwargs_To_Self.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/base_classes/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/context_managers/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/context_managers/async_invoke.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/context_managers/disable_root_loggers.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/classes/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/classes/singleton.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/lists/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/lists/filter_list.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/lists/group_by.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/lists/index_by.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/methods/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/methods/cache.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/methods/cache_on_function.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/methods/cache_on_self.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/methods/cache_on_tmp.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/methods/capture_exception.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/methods/capture_status.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/methods/catch.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/methods/context.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/methods/depreciated.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/methods/function_type_check.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/methods/obj_as_context.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/methods/remove_return_value.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/methods/required_fields.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/fluent/Fluent_Dict.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/fluent/Fluent_List.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/fluent/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/CFormat.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/CPrint.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/Dependency_Manager.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/Dict_To_Attr.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/Hashicorp_Secrets.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/Local_Cache.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/Local_Caches.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/Obj_Id.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/Print_Table.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/Python_Audit.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/Random_Seed.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/Str_ASCII.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/Type_Registry.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/Zip_Bytes.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/Ast.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/Ast_Base.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/Ast_Data.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/Ast_Load.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/Ast_Merge.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/Ast_Node.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/Ast_Visit.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/Call_Tree.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Add.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Alias.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_And.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Argument.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Arguments.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Assert.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Assign.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Attribute.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Aug_Assign.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Bin_Op.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Bool_Op.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Break.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Call.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Class_Def.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Compare.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Comprehension.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Constant.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Continue.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Dict.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Eq.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Except_Handler.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Expr.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_For.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Function_Def.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Generator_Exp.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Gt.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_GtE.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_If.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_If_Exp.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Import.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Import_From.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_In.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Is.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Is_Not.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Keyword.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Lambda.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_List.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_List_Comp.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Load.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Lt.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_LtE.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Mod.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Module.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Mult.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Name.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Not.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Not_Eq.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Not_In.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Or.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Pass.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Pow.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Raise.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Return.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Set.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Slice.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Starred.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Store.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Sub.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Subscript.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Try.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Tuple.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Unary_Op.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_While.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_With.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_With_Item.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/Ast_Yield.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ast/nodes/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/cache_on_self/Cache_Controller.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/cache_on_self/Cache_Key_Generator.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/cache_on_self/Cache_Metrics.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/cache_on_self/Cache_On_Self.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/cache_on_self/Cache_Storage.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/cache_on_self/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Actions.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Config.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Data.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Invoke.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Row.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/cache_requests/Cache__Requests__Table.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/cache_requests/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/duration/Duration.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/duration/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/duration/decorators/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/duration/decorators/capture_duration.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/duration/decorators/duration.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/duration/decorators/print_duration.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/duration/schemas/Schema__Duration.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/duration/schemas/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/Flow.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/Task.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/actions/Flow__Data.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/actions/Flow__Events.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/actions/Flow__Stats__Collector.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/actions/Task__Stats__Collector.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/actions/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/decorators/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/decorators/flow.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/decorators/task.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/models/Flow_Run__Config.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/models/Flow_Run__Event.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Data.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/models/Flow_Run__Event_Type.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/models/Schema__Flow__Artifact.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/models/Schema__Flow__Result.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/models/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/schemas/Schema__Flow.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Data.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Event.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Event__Data.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Log.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Stats.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Status.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/schemas/Schema__Flow__Task__Data.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/schemas/Schema__Task__Stats.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/schemas/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/generators/Generator_Context_Manager.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/generators/Generator_Manager.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/generators/Model__Generator_State.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/generators/Model__Generator_Target.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/generators/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/schemas/Schema__Html_Document.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/schemas/Schema__Html_Node.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/schemas/Schema__Html_Node__Data.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/schemas/Schema__Html_Node__Data__Type.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/schemas/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/tags/Tag__Base.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/tags/Tag__Body.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/tags/Tag__Div.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/tags/Tag__H.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/tags/Tag__HR.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/tags/Tag__Head.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/tags/Tag__Html.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/tags/Tag__Link.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/tags/Tag__Style.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/tags/Tag__Text.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/tags/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/transformers/CSS_Dict__To__Css.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/transformers/Html_Dict__To__Html.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/transformers/Html_Dict__To__Html_Document.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/transformers/Html_Dict__To__Html_Tags.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/transformers/Html_Document__To__Html_Dict.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/transformers/Html__To__Html_Dict.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/transformers/Html__To__Html_Document.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/transformers/Html__To__Html_Tag.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/transformers/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/utils/Html__Query.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/html/utils/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/actions/LLM_Request__Execute.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/actions/Type_Safe__Schema_For__LLMs.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/actions/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/builders/LLM_Request__Builder.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/builders/LLM_Request__Builder__Open_AI.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/builders/LLM_Request__Factory.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/builders/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/cache/LLM_Cache__Path_Generator.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/cache/LLM_Request__Cache.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/cache/LLM_Request__Cache__File_System.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/cache/LLM_Request__Cache__Storage.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/cache/Virtual_Storage__Local__Folder.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/cache/Virtual_Storage__Sqlite.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/cache/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/platforms/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/platforms/open_ai/API__LLM__Open_AI.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/platforms/open_ai/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/schemas/Safe_Str__LLM__Model_Name.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Cache__Index.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Request.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Request__Data.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Request__Function_Call.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Request__Message__Content.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Request__Message__Role.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Response.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/schemas/Schema__LLM_Response__Cache.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/llms/schemas/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/pubsub/Event__Queue.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/pubsub/PubSub__Client.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/pubsub/PubSub__Room.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/pubsub/PubSub__Server.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/pubsub/PubSub__Sqlite.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/pubsub/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Connect.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Disconnect.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Execute_Method.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Join_Room.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Leave_Room.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/pubsub/schemas/Schema__Event__Message.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/pubsub/schemas/Schema__PubSub__Client.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/pubsub/schemas/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/python_compatibility/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/python_compatibility/python_3_8.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/Capture_Sqlite_Error.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/Sqlite__Cursor.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/Sqlite__Database.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/Sqlite__Field.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/Sqlite__Globals.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/Sqlite__Table.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/Sqlite__Table__Create.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Database__Disk.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/Temp_Sqlite__Table.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/cache/Schema__Table__Requests.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Patch.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Sqlite.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/cache/Sqlite__Cache__Requests__Table.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/cache/Sqlite__DB__Requests.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/cache/TestCase__Sqlite__Cache__Requests.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/cache/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Files.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Graph.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Json.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/domains/Sqlite__DB__Local.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/domains/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/domains/schemas/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/models/Sqlite__Field__Type.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/models/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/sample_data/Sqlite__Sample_Data__Chinook.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/sample_data/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/sql_builder/SQL_Builder__Select.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/sql_builder/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Config.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Edges.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Files.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/tables/Sqlite__Table__Nodes.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/sqlite/tables/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ssh/SCP.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ssh/SSH.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ssh/SSH__Cache__Requests.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ssh/SSH__Execute.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ssh/SSH__Health_Check.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ssh/SSH__Linux.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ssh/SSH__Linux__Amazon.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ssh/SSH__Python.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ssh/TestCase__SSH.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/ssh/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/trace/Trace_Call.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/trace/Trace_Call__Config.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/trace/Trace_Call__Handler.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/trace/Trace_Call__Print_Lines.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/trace/Trace_Call__Print_Traces.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/trace/Trace_Call__Stack.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/trace/Trace_Call__Stack_Node.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/trace/Trace_Call__Stats.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/trace/Trace_Call__View_Model.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/trace/Trace_Files.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/trace/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/transformers/Dict__To__Toml.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/xml/Xml__Attribute.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/xml/Xml__Element.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/xml/Xml__File.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/xml/Xml__File__Load.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/xml/Xml__File__To_Dict.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/xml/Xml__File__To_Xml.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/xml/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/xml/rss/RSS__Channel.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/xml/rss/RSS__Enclosure.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/xml/rss/RSS__Feed.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/xml/rss/RSS__Feed__Parser.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/xml/rss/RSS__Image.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/xml/rss/RSS__Item.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/Catch.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/Custom_Handler_For_Http_Tests.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/Hook_Method.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/Log_To_Queue.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/Log_To_String.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/Logging.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/Patch_Print.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/Profiler.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/Pytest.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/Stderr.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/Stdout.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/Temp_Env_Vars.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/Temp_File.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/Temp_Folder.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/Temp_Sys_Path.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/Temp_Web_Server.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/Temp_Zip.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/Temp_Zip_In_Memory.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/Unit_Test.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/Unzip_File.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/performance/Performance_Measure__Session.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/performance/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/performance/models/Model__Performance_Measure__Measurement.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/performance/models/Model__Performance_Measure__Result.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/performance/models/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/test_data/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/testing/test_data/const__test__data__html.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/Type_Safe__Base.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/Type_Safe__Primitive.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_float/Safe_Float.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_float/Safe_Float__Engineering.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_float/Safe_Float__Money.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_float/Safe_Float__Percentage_Exact.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_float/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_int/Safe_Int.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_int/Timestamp_Now.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_int/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/Enum__Safe_Str__Regex_Mode.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/Safe_Str.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/cryptography/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/cryptography/hashes/Safe_Str__Hash.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/cryptography/hashes/Safe_Str__SHA1.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/cryptography/hashes/Safe_Str__SHA1__Short.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/cryptography/hashes/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/cryptography/nacl/Safe_Str__NaCl__Private_Key.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/cryptography/nacl/Safe_Str__NaCl__Public_Key.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/cryptography/nacl/Schema__NaCl__Keys.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/cryptography/nacl/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/filesystem/Safe_Str__File__Name.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/filesystem/Safe_Str__File__Path.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/filesystem/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/git/Safe_Str__Git__Branch.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/git/Safe_Str__Git__Ref.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/git/Safe_Str__Git__Ref_Base.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/git/Safe_Str__Git__Tag.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/git/Safe_Str__Version.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/git/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/github/Safe_Str__GitHub__Repo.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/github/Safe_Str__GitHub__Repo_Name.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/github/Safe_Str__GitHub__Repo_Owner.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/github/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/http/Safe_Str__Http__Content_Type.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/http/Safe_Str__Http__ETag.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/http/Safe_Str__Http__Last_Modified.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/http/Safe_Str__Http__Text.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/http/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/identifiers/Guid.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/identifiers/Random_Guid.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/identifiers/Random_Guid_Short.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/identifiers/Safe_Id.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/identifiers/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/text/Safe_Str__Text.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/text/Safe_Str__Text__Dangerous.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/text/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/web/Safe_Str__Html.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/web/Safe_Str__IP_Address.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/web/Safe_Str__Url.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_str/web/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_uint/Safe_UInt.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_uint/Safe_UInt__Byte.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_uint/Safe_UInt__FileSize.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_uint/Safe_UInt__Percentage.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_uint/Safe_UInt__Port.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/primitives/safe_uint/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/collections/Type_Safe__Dict.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/collections/Type_Safe__List.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/collections/Type_Safe__Set.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/collections/Type_Safe__Tuple.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/collections/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/decorators/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/decorators/type_safe.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/methods/Type_Safe__Method.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/methods/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/methods/type_safe_property.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/shared/Type_Safe__Annotations.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/shared/Type_Safe__Cache.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/shared/Type_Safe__Convert.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/shared/Type_Safe__Json_Compressor.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/shared/Type_Safe__Json_Compressor__Type_Registry.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/shared/Type_Safe__Not_Cached.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/shared/Type_Safe__Shared__Variables.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/shared/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/steps/Type_Safe__Step__Default_Kwargs.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/steps/Type_Safe__Step__Default_Value.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/steps/Type_Safe__Step__From_Json.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/steps/Type_Safe__Step__Init.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/type_safe_core/steps/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/validators/Type_Safe__Validator.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/validators/Validator__Max.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/validators/Validator__Min.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/validators/Validator__One_Of.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/validators/Validator__Regex.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/type_safe/validators/__init__.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Assert.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Call_Stack.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Csv.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Dev.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Env.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Exceptions.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Files.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Functions.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Http.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Int.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Json.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Json_Cache.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Lists.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Misc.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Objects.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Png.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Process.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Python_Logger.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Regex.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Status.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Str.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Threads.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Toml.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Version.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/utils/Zip.py +0 -0
- {osbot_utils-2.87.0 → osbot_utils-2.88.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.88.0
|
4
4
|
Summary: OWASP Security Bot - Utils
|
5
5
|
License: MIT
|
6
6
|
Author: Dinis Cruz
|
@@ -21,7 +21,7 @@ Description-Content-Type: text/markdown
|
|
21
21
|
|
22
22
|
# OSBot-Utils
|
23
23
|
|
24
|
-

|
25
25
|

|
26
26
|

|
27
27
|

|
@@ -1,6 +1,6 @@
|
|
1
1
|
# OSBot-Utils
|
2
2
|
|
3
|
-

|
4
4
|

|
5
5
|

|
6
6
|

|
@@ -88,7 +88,7 @@ class Type_Safe:
|
|
88
88
|
if value is not None:
|
89
89
|
if hasattr(self,'__annotations__'): # can only do type safety checks if the class does not have annotations
|
90
90
|
if type_safe_validation.check_if__type_matches__obj_annotation__for_attr(self, key, value) is False:
|
91
|
-
raise ValueError(f"
|
91
|
+
raise ValueError(f"On {self.__class__.__name__} invalid type for attribute '{key}'. Expected '{self.__annotations__.get(key)}' but got '{type(value)}'")
|
92
92
|
setattr(self, key, value)
|
93
93
|
return self
|
94
94
|
|
@@ -0,0 +1,18 @@
|
|
1
|
+
from osbot_utils.type_safe.type_safe_core.shared.Type_Safe__Shared__Variables import IMMUTABLE_TYPES
|
2
|
+
|
3
|
+
|
4
|
+
class Type_Safe__Raise_Exception:
|
5
|
+
|
6
|
+
def type_mismatch_error__on_instance(self, _self, var_name: str, expected_type: type, actual_type: type) -> None: # Raises formatted error for type validation failures
|
7
|
+
exception_message = f"On {_self.__class__.__name__}, invalid type for attribute '{var_name}'. Expected '{expected_type}' but got '{actual_type}'"
|
8
|
+
raise ValueError(exception_message) from None
|
9
|
+
|
10
|
+
def type_mismatch_error__on_type(self, cls, var_name: str, expected_type: type, actual_type: type) -> None: # Raises formatted error for type validation failures
|
11
|
+
exception_message = f"On {cls.__name__}, invalid type for attribute '{var_name}'. Expected '{expected_type}' but got '{actual_type}'"
|
12
|
+
raise ValueError(exception_message) from None
|
13
|
+
|
14
|
+
def immutable_type_error(self, var_name, var_type):
|
15
|
+
exception_message = f"variable '{var_name}' is defined as type '{var_type}' which is not supported by Type_Safe, with only the following immutable types being supported: '{IMMUTABLE_TYPES}' and the following subclasses (int, float, str)"
|
16
|
+
raise ValueError(exception_message) from None
|
17
|
+
|
18
|
+
type_safe_raise_exception = Type_Safe__Raise_Exception()
|
@@ -270,11 +270,11 @@ class Type_Safe__Validation:
|
|
270
270
|
def validate_if_value_has_been_set(self, _self, annotations, name, value):
|
271
271
|
if hasattr(_self, name) and annotations.get(name) : # don't allow previously set variables to be set to None
|
272
272
|
if getattr(_self, name) is not None: # unless it is already set to None
|
273
|
-
raise ValueError(f"
|
273
|
+
raise ValueError(f"On {_self.__class__.__name__}, can't be set to None, to a variable that is already set. Invalid type for attribute '{name}'. Expected '{_self.__annotations__.get(name)}' but got '{type(value)}'")
|
274
274
|
|
275
|
-
def validate_if__types_are_compatible_for_assigment(self, name, current_type, expected_type):
|
275
|
+
def validate_if__types_are_compatible_for_assigment(self, _self, name, current_type, expected_type):
|
276
276
|
if not type_safe_validation.are_types_compatible_for_assigment(current_type, expected_type):
|
277
|
-
type_safe_raise_exception.
|
277
|
+
type_safe_raise_exception.type_mismatch_error__on_instance(_self, name, expected_type, current_type)
|
278
278
|
|
279
279
|
def validate_type_compatibility(self, target : Any , # Target object to validate
|
280
280
|
annotations : Dict[str, Any] , # Type annotations
|
@@ -295,7 +295,7 @@ class Type_Safe__Validation:
|
|
295
295
|
actual_type = value
|
296
296
|
else:
|
297
297
|
actual_type = type(value)
|
298
|
-
raise ValueError(f"
|
298
|
+
raise ValueError(f"On {target.__class__.__name__}, invalid type for attribute '{name}'. Expected '{expected_type}' but got '{actual_type}'") from None
|
299
299
|
|
300
300
|
# todo: see if need to add cache support to this method (it looks like this method is not called very often)
|
301
301
|
def validate_type_immutability(self, var_name: str, var_type: Any) -> None: # Validates that type is immutable or in supported format
|
@@ -321,8 +321,8 @@ class Type_Safe__Validation:
|
|
321
321
|
# if not (isinstance(var_type, type) and issubclass(var_type, (int,str, float))):
|
322
322
|
# type_safe_raise_exception.immutable_type_error(var_name, var_type)
|
323
323
|
|
324
|
-
def validate_variable_type(self, var_name, var_type, var_value): # Validate type compatibility
|
324
|
+
def validate_variable_type(self, base_cls, var_name, var_type, var_value): # Validate type compatibility
|
325
325
|
if type(var_type) is type and not isinstance(var_value, var_type):
|
326
|
-
type_safe_raise_exception.
|
326
|
+
type_safe_raise_exception.type_mismatch_error__on_type(base_cls, var_name, var_type, type(var_value))
|
327
327
|
|
328
328
|
type_safe_validation = Type_Safe__Validation()
|
@@ -96,7 +96,7 @@ class Type_Safe__Step__Class_Kwargs:
|
|
96
96
|
# If conversion fails, let the original validation handle it
|
97
97
|
pass
|
98
98
|
|
99
|
-
type_safe_validation.validate_variable_type(var_name, var_type, var_value)
|
99
|
+
type_safe_validation.validate_variable_type(base_cls, var_name, var_type, var_value)
|
100
100
|
type_safe_validation.validate_type_immutability(var_name, var_type)
|
101
101
|
|
102
102
|
def process_annotation(self, cls : Type , # Process single annotation
|
@@ -22,7 +22,7 @@ class Type_Safe__Step__Set_Attr:
|
|
22
22
|
else:
|
23
23
|
value = self.resolve_value__from_origin(value)
|
24
24
|
|
25
|
-
self.validate_literal_value(annotations, name, value) # Check Literal value constraints before generic type checking
|
25
|
+
self.validate_literal_value(_self, annotations, name, value) # Check Literal value constraints before generic type checking
|
26
26
|
|
27
27
|
type_safe_validation.validate_type_compatibility(_self, annotations, name, value)
|
28
28
|
return value
|
@@ -106,7 +106,7 @@ class Type_Safe__Step__Set_Attr:
|
|
106
106
|
if name in immutable_vars:
|
107
107
|
expected_type = immutable_vars[name]
|
108
108
|
current_type = type if value is type else type(value)
|
109
|
-
type_safe_validation.validate_if__types_are_compatible_for_assigment(name, current_type, expected_type)
|
109
|
+
type_safe_validation.validate_if__types_are_compatible_for_assigment(_self, name, current_type, expected_type)
|
110
110
|
_super.__setattr__(name, value)
|
111
111
|
return True
|
112
112
|
return False
|
@@ -129,7 +129,7 @@ class Type_Safe__Step__Set_Attr:
|
|
129
129
|
|
130
130
|
_super.__setattr__(name, value)
|
131
131
|
|
132
|
-
def validate_literal_value(self, annotations, name, value): # Check if a value is valid for a Literal type annotation
|
132
|
+
def validate_literal_value(self, _self, annotations, name, value): # Check if a value is valid for a Literal type annotation
|
133
133
|
|
134
134
|
annotation = annotations.get(name)
|
135
135
|
if not annotation:
|
@@ -145,7 +145,7 @@ class Type_Safe__Step__Set_Attr:
|
|
145
145
|
allowed_values = get_args(arg) # Found Literal inside Optional
|
146
146
|
if value is not None and value not in allowed_values:
|
147
147
|
allowed_str = ', '.join(repr(v) for v in allowed_values)
|
148
|
-
raise ValueError(f"
|
148
|
+
raise ValueError(f"On {_self.__class__.__name__}, invalid value for '{name}': must be one of [{allowed_str}], got {repr(value)}")
|
149
149
|
return
|
150
150
|
|
151
151
|
|
@@ -153,7 +153,7 @@ class Type_Safe__Step__Set_Attr:
|
|
153
153
|
allowed_values = get_args(annotation)
|
154
154
|
if value not in allowed_values:
|
155
155
|
allowed_str = ', '.join(repr(v) for v in allowed_values)
|
156
|
-
raise ValueError(f"
|
156
|
+
raise ValueError(f"On {_self.__class__.__name__}, invalid value for '{name}': must be one of [{allowed_str}], got {repr(value)}")
|
157
157
|
|
158
158
|
|
159
159
|
type_safe_step_set_attr = Type_Safe__Step__Set_Attr()
|
@@ -0,0 +1 @@
|
|
1
|
+
v2.88.0
|
osbot_utils-2.87.0/osbot_utils/type_safe/type_safe_core/shared/Type_Safe__Raise_Exception.py
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
from osbot_utils.type_safe.type_safe_core.shared.Type_Safe__Shared__Variables import IMMUTABLE_TYPES
|
2
|
-
|
3
|
-
|
4
|
-
class Type_Safe__Raise_Exception:
|
5
|
-
|
6
|
-
def type_mismatch_error(self, var_name: str, expected_type: type, actual_type: type) -> None: # Raises formatted error for type validation failures
|
7
|
-
exception_message = f"Invalid type for attribute '{var_name}'. Expected '{expected_type}' but got '{actual_type}'"
|
8
|
-
raise ValueError(exception_message) from None
|
9
|
-
|
10
|
-
def immutable_type_error(self, var_name, var_type):
|
11
|
-
exception_message = f"variable '{var_name}' is defined as type '{var_type}' which is not supported by Type_Safe, with only the following immutable types being supported: '{IMMUTABLE_TYPES}' and the following subclasses (int, float, str)"
|
12
|
-
raise ValueError(exception_message) from None
|
13
|
-
|
14
|
-
type_safe_raise_exception = Type_Safe__Raise_Exception()
|
@@ -1 +0,0 @@
|
|
1
|
-
v2.87.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
|
{osbot_utils-2.87.0 → osbot_utils-2.88.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
|
{osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/methods/cache_on_function.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.87.0 → osbot_utils-2.88.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.87.0 → osbot_utils-2.88.0}/osbot_utils/decorators/methods/function_type_check.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-2.87.0 → osbot_utils-2.88.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
|
{osbot_utils-2.87.0 → osbot_utils-2.88.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.87.0 → osbot_utils-2.88.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.87.0 → osbot_utils-2.88.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
|
{osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/cache_on_self/Cache_Controller.py
RENAMED
File without changes
|
{osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/cache_on_self/Cache_Key_Generator.py
RENAMED
File without changes
|
{osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/cache_on_self/Cache_Metrics.py
RENAMED
File without changes
|
{osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/cache_on_self/Cache_On_Self.py
RENAMED
File without changes
|
{osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/cache_on_self/Cache_Storage.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.87.0 → osbot_utils-2.88.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
|
{osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/duration/decorators/__init__.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/duration/decorators/duration.py
RENAMED
File without changes
|
{osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/duration/decorators/print_duration.py
RENAMED
File without changes
|
{osbot_utils-2.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/duration/schemas/Schema__Duration.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.87.0 → osbot_utils-2.88.0}/osbot_utils/helpers/flows/models/Flow_Run__Config.py
RENAMED
File without changes
|