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

|
27
27
|
[](https://codecov.io/gh/owasp-sbot/OSBot-Utils)
|
28
28
|
|
29
29
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Powerful Python util methods and classes that simplify common apis and tasks.
|
4
4
|
|
5
|
-

|
6
6
|
[](https://codecov.io/gh/owasp-sbot/OSBot-Utils)
|
7
7
|
|
8
8
|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import random
|
2
|
+
from osbot_utils.type_safe.Type_Safe__Primitive import Type_Safe__Primitive
|
2
3
|
|
3
4
|
_hex_table = [f"{i:02x}" for i in range(256)]
|
4
5
|
|
@@ -14,7 +15,7 @@ def is_obj_id(value: str):
|
|
14
15
|
def new_obj_id():
|
15
16
|
return hex(random.getrandbits(32))[2:].zfill(8) # slice off '0x' and pad
|
16
17
|
|
17
|
-
class Obj_Id(str):
|
18
|
+
class Obj_Id(Type_Safe__Primitive,str):
|
18
19
|
def __new__(cls, value: str=None):
|
19
20
|
if value:
|
20
21
|
if is_obj_id(value):
|
@@ -1,6 +1,6 @@
|
|
1
1
|
from osbot_utils.type_safe.Type_Safe__Primitive import Type_Safe__Primitive
|
2
|
-
from osbot_utils.utils.Misc
|
3
|
-
from osbot_utils.utils.Str
|
2
|
+
from osbot_utils.utils.Misc import random_id_short
|
3
|
+
from osbot_utils.utils.Str import safe_id
|
4
4
|
|
5
5
|
SAFE_ID__MAX_LENGTH = 512
|
6
6
|
|
@@ -1,6 +1,8 @@
|
|
1
|
-
from
|
1
|
+
from typing import Type
|
2
|
+
from osbot_utils.type_safe.Type_Safe__Base import Type_Safe__Base, type_str
|
2
3
|
|
3
4
|
class Type_Safe__List(Type_Safe__Base, list):
|
5
|
+
expected_type : Type
|
4
6
|
|
5
7
|
def __init__(self, expected_type, *args):
|
6
8
|
super().__init__(*args)
|
@@ -21,7 +23,7 @@ class Type_Safe__List(Type_Safe__Base, list):
|
|
21
23
|
try:
|
22
24
|
self.is_instance_of_type(item, self.expected_type)
|
23
25
|
except TypeError as e:
|
24
|
-
raise TypeError(f"In Type_Safe__List: Invalid type for item: {e}")
|
26
|
+
raise TypeError(f"In Type_Safe__List: Invalid type for item: {e}") from None
|
25
27
|
super().append(item)
|
26
28
|
|
27
29
|
|
@@ -185,5 +185,5 @@ class Type_Safe__Method:
|
|
185
185
|
base_type = expected_type
|
186
186
|
|
187
187
|
if not isinstance(param_value, base_type):
|
188
|
-
raise ValueError(f"Parameter '{param_name}' expected type {expected_type}, but got {type(param_value)}")
|
188
|
+
raise ValueError(f"Parameter '{param_name}' expected type {expected_type}, but got {type(param_value)}") from None
|
189
189
|
return True
|
@@ -0,0 +1,64 @@
|
|
1
|
+
class Type_Safe__Primitive:
|
2
|
+
|
3
|
+
__primitive_base__ = None # Cache the primitive base type at class level
|
4
|
+
|
5
|
+
def __init_subclass__(cls, **kwargs):
|
6
|
+
super().__init_subclass__(**kwargs)
|
7
|
+
for base in cls.__mro__: # Find and cache the primitive base type when the class is created
|
8
|
+
if base in (str, int, float): # for now, we only support str, int, float
|
9
|
+
cls.__primitive_base__ = base
|
10
|
+
break
|
11
|
+
|
12
|
+
def __add__(self, other):
|
13
|
+
"""Override addition/concatenation to maintain type safety"""
|
14
|
+
if self.__primitive_base__ is str: # For string concatenation
|
15
|
+
result = super().__add__(other) # Perform the operation
|
16
|
+
return type(self)(result) # Return instance of the safe type
|
17
|
+
else: # For numeric types (int, float)
|
18
|
+
result = super().__add__(other)
|
19
|
+
try:
|
20
|
+
return type(self)(result) # Try to create safe type
|
21
|
+
except (ValueError, TypeError):
|
22
|
+
return result # Fall back to primitive if constraints violated
|
23
|
+
|
24
|
+
|
25
|
+
def __eq__(self, other):
|
26
|
+
if type(self) is type(other): # Same type → compare values
|
27
|
+
return super().__eq__(other)
|
28
|
+
if self.__primitive_base__ and type(other) is self.__primitive_base__: # Compare with cached primitive base type
|
29
|
+
return super().__eq__(other)
|
30
|
+
return False # Different types → not equal
|
31
|
+
|
32
|
+
def __ne__(self, other):
|
33
|
+
return not self.__eq__(other)
|
34
|
+
|
35
|
+
def __hash__(self): # Include type in hash to maintain hash/eq contract , This works for str, int, float subclasses
|
36
|
+
return hash((type(self).__name__, super().__hash__()))
|
37
|
+
|
38
|
+
def __radd__(self, other):
|
39
|
+
"""Reverse addition/concatenation for when safe type is on the right"""
|
40
|
+
if self.__primitive_base__ is str:
|
41
|
+
result = other + str(self) # Perform string concatenation
|
42
|
+
return type(self)(result) # Return instance of the safe type
|
43
|
+
else:
|
44
|
+
result = other + self.__primitive_base__(self)
|
45
|
+
try:
|
46
|
+
return type(self)(result)
|
47
|
+
except (ValueError, TypeError):
|
48
|
+
return result
|
49
|
+
|
50
|
+
def __str__(self): # Return the primitive string representation"""
|
51
|
+
if self.__primitive_base__ is float: # Format the value using the primitive type's string formatting
|
52
|
+
return format(float(self), '')
|
53
|
+
elif self.__primitive_base__ is int:
|
54
|
+
return format(int(self), '')
|
55
|
+
elif self.__primitive_base__ is str:
|
56
|
+
return str.__str__(self)
|
57
|
+
return super().__str__()
|
58
|
+
|
59
|
+
def __repr__(self): # Enhanced repr for debugging that shows type information
|
60
|
+
value_str = self.__str__()
|
61
|
+
if self.__primitive_base__ is str:
|
62
|
+
return f"{type(self).__name__}('{value_str}')"
|
63
|
+
else:
|
64
|
+
return f"{type(self).__name__}({value_str})"
|
{osbot_utils-2.62.0 → osbot_utils-2.63.0}/osbot_utils/type_safe/shared/Type_Safe__Raise_Exception.py
RENAMED
@@ -8,7 +8,7 @@ class Type_Safe__Raise_Exception:
|
|
8
8
|
raise ValueError(exception_message)
|
9
9
|
|
10
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}'"
|
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
12
|
raise ValueError(exception_message)
|
13
13
|
|
14
14
|
type_safe_raise_exception = Type_Safe__Raise_Exception()
|
{osbot_utils-2.62.0 → osbot_utils-2.63.0}/osbot_utils/type_safe/shared/Type_Safe__Validation.py
RENAMED
@@ -289,7 +289,7 @@ class Type_Safe__Validation:
|
|
289
289
|
if self.obj_is_type_union_compatible(var_type, IMMUTABLE_TYPES) is False: # if var_type is not something like Optional[Union[int, str]]
|
290
290
|
if var_type not in IMMUTABLE_TYPES or type(var_type) not in IMMUTABLE_TYPES:
|
291
291
|
if not isinstance(var_type, EnumMeta):
|
292
|
-
if not issubclass(var_type, (int,str, float)):
|
292
|
+
if not (isinstance(var_type, type) and issubclass(var_type, (int,str, float))):
|
293
293
|
type_safe_raise_exception.immutable_type_error(var_name, var_type)
|
294
294
|
|
295
295
|
def validate_variable_type(self, var_name, var_type, var_value): # Validate type compatibility
|
{osbot_utils-2.62.0 → osbot_utils-2.63.0}/osbot_utils/type_safe/steps/Type_Safe__Step__Init.py
RENAMED
@@ -25,7 +25,7 @@ class Type_Safe__Step__Init:
|
|
25
25
|
setattr(__self, key, value)
|
26
26
|
else:
|
27
27
|
raise ValueError(f"{__self.__class__.__name__} has no attribute '{key}' and cannot be assigned the value '{value}'. "
|
28
|
-
f"Use {__self.__class__.__name__}.__default_kwargs__() see what attributes are available")
|
28
|
+
f"Use {__self.__class__.__name__}.__default_kwargs__() see what attributes are available") from None
|
29
29
|
|
30
30
|
def convert_value_to_type_safe_objects(self, __self, key, value):
|
31
31
|
annotation = type_safe_annotations.obj_attribute_annotation(__self, key)
|
@@ -0,0 +1 @@
|
|
1
|
+
v2.63.0
|
@@ -1,28 +0,0 @@
|
|
1
|
-
class Type_Safe__Primitive:
|
2
|
-
|
3
|
-
__primitive_base__ = None # Cache the primitive base type at class level
|
4
|
-
|
5
|
-
def __init_subclass__(cls, **kwargs):
|
6
|
-
super().__init_subclass__(**kwargs)
|
7
|
-
for base in cls.__mro__: # Find and cache the primitive base type when the class is created
|
8
|
-
if base in (str, int, float): # for now, we only support str, int, float
|
9
|
-
cls.__primitive_base__ = base
|
10
|
-
break
|
11
|
-
|
12
|
-
def __eq__(self, other):
|
13
|
-
if type(self) is type(other): # Same type → compare values
|
14
|
-
return super().__eq__(other)
|
15
|
-
if self.__primitive_base__ and type(other) is self.__primitive_base__: # Compare with cached primitive base type
|
16
|
-
return super().__eq__(other)
|
17
|
-
return False # Different types → not equal
|
18
|
-
|
19
|
-
def __ne__(self, other):
|
20
|
-
return not self.__eq__(other)
|
21
|
-
|
22
|
-
def __hash__(self): # Include type in hash to maintain hash/eq contract , This works for str, int, float subclasses
|
23
|
-
return hash((type(self).__name__, super().__hash__()))
|
24
|
-
|
25
|
-
def __repr__(self): # Enhanced repr to show type information in assertions
|
26
|
-
value_repr = super().__repr__()
|
27
|
-
return f"{type(self).__name__}({value_repr})"
|
28
|
-
|
@@ -1 +0,0 @@
|
|
1
|
-
v2.62.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.62.0 → osbot_utils-2.63.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.62.0 → osbot_utils-2.63.0}/osbot_utils/decorators/methods/cache_on_function.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.62.0 → osbot_utils-2.63.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.62.0 → osbot_utils-2.63.0}/osbot_utils/decorators/methods/function_type_check.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-2.62.0 → osbot_utils-2.63.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
|
{osbot_utils-2.62.0 → osbot_utils-2.63.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.62.0 → osbot_utils-2.63.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.62.0 → osbot_utils-2.63.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.62.0 → osbot_utils-2.63.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.62.0 → osbot_utils-2.63.0}/osbot_utils/helpers/duration/decorators/__init__.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-2.62.0 → osbot_utils-2.63.0}/osbot_utils/helpers/duration/decorators/duration.py
RENAMED
File without changes
|
{osbot_utils-2.62.0 → osbot_utils-2.63.0}/osbot_utils/helpers/duration/decorators/print_duration.py
RENAMED
File without changes
|
{osbot_utils-2.62.0 → osbot_utils-2.63.0}/osbot_utils/helpers/duration/schemas/Schema__Duration.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|