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

|
{osbot_utils-2.88.0 → osbot_utils-2.90.0}/osbot_utils/helpers/llms/builders/LLM_Request__Builder.py
RENAMED
@@ -1,14 +1,14 @@
|
|
1
|
-
from typing
|
2
|
-
from osbot_utils.helpers.llms.actions.Type_Safe__Schema_For__LLMs
|
3
|
-
from osbot_utils.
|
4
|
-
from osbot_utils.helpers.llms.schemas.Schema__LLM_Request
|
5
|
-
from osbot_utils.helpers.llms.schemas.Schema__LLM_Request__Data
|
6
|
-
from osbot_utils.helpers.llms.schemas.Schema__LLM_Request__Function_Call
|
7
|
-
from osbot_utils.helpers.llms.schemas.Schema__LLM_Request__Message__Content
|
8
|
-
from osbot_utils.helpers.llms.schemas.Schema__LLM_Request__Message__Role
|
9
|
-
from osbot_utils.type_safe.Type_Safe
|
10
|
-
from osbot_utils.type_safe.primitives.safe_str.text.Safe_Str__Text
|
11
|
-
from osbot_utils.type_safe.type_safe_core.decorators.type_safe
|
1
|
+
from typing import Dict, Any, Type
|
2
|
+
from osbot_utils.helpers.llms.actions.Type_Safe__Schema_For__LLMs import Type_Safe__Schema_For__LLMs
|
3
|
+
from osbot_utils.type_safe.primitives.safe_str.llm.Safe_Str__LLM__Model_Name import Safe_Str__LLM__Model_Name
|
4
|
+
from osbot_utils.helpers.llms.schemas.Schema__LLM_Request import Schema__LLM_Request
|
5
|
+
from osbot_utils.helpers.llms.schemas.Schema__LLM_Request__Data import Schema__LLM_Request__Data
|
6
|
+
from osbot_utils.helpers.llms.schemas.Schema__LLM_Request__Function_Call import Schema__LLM_Request__Function_Call
|
7
|
+
from osbot_utils.helpers.llms.schemas.Schema__LLM_Request__Message__Content import Schema__LLM_Request__Message__Content
|
8
|
+
from osbot_utils.helpers.llms.schemas.Schema__LLM_Request__Message__Role import Schema__LLM_Request__Message__Role
|
9
|
+
from osbot_utils.type_safe.Type_Safe import Type_Safe
|
10
|
+
from osbot_utils.type_safe.primitives.safe_str.text.Safe_Str__Text import Safe_Str__Text
|
11
|
+
from osbot_utils.type_safe.type_safe_core.decorators.type_safe import type_safe
|
12
12
|
|
13
13
|
|
14
14
|
class LLM_Request__Builder(Type_Safe):
|
@@ -1,9 +1,9 @@
|
|
1
|
-
from typing
|
2
|
-
from osbot_utils.helpers.llms.schemas.
|
3
|
-
from osbot_utils.helpers.llms.schemas.
|
4
|
-
from osbot_utils.
|
5
|
-
from osbot_utils.type_safe.
|
6
|
-
from osbot_utils.type_safe.primitives.safe_str.text.Safe_Str__Text
|
1
|
+
from typing import List, Optional
|
2
|
+
from osbot_utils.helpers.llms.schemas.Schema__LLM_Request__Function_Call import Schema__LLM_Request__Function_Call
|
3
|
+
from osbot_utils.helpers.llms.schemas.Schema__LLM_Request__Message__Content import Schema__LLM_Request__Message__Content
|
4
|
+
from osbot_utils.type_safe.Type_Safe import Type_Safe
|
5
|
+
from osbot_utils.type_safe.primitives.safe_str.llm.Safe_Str__LLM__Model_Name import Safe_Str__LLM__Model_Name
|
6
|
+
from osbot_utils.type_safe.primitives.safe_str.text.Safe_Str__Text import Safe_Str__Text
|
7
7
|
|
8
8
|
|
9
9
|
class Schema__LLM_Request__Data(Type_Safe): # Schema for LLM API request data
|
{osbot_utils-2.88.0 → osbot_utils-2.90.0}/osbot_utils/type_safe/primitives/safe_str/Safe_Str.py
RENAMED
@@ -8,16 +8,16 @@ TYPE_SAFE__STR__MAX_LENGTH = 512
|
|
8
8
|
|
9
9
|
|
10
10
|
class Safe_Str(Type_Safe__Primitive, str):
|
11
|
+
allow_all_replacement_char: bool = True
|
12
|
+
allow_empty : bool = True # note: making this False does cause some side effects on .json() on cases like auto serialization in environments like FastAPI (like it requires more explict value setting), so all have now been converted into a value of True
|
13
|
+
exact_length : bool = False # If True, require exact length match, not just max length
|
11
14
|
max_length : int = TYPE_SAFE__STR__MAX_LENGTH
|
12
15
|
regex : re.Pattern = TYPE_SAFE__STR__REGEX__SAFE_STR
|
13
16
|
regex_mode : Enum__Safe_Str__Regex_Mode = Enum__Safe_Str__Regex_Mode.REPLACE
|
14
17
|
replacement_char : str = '_'
|
15
|
-
allow_empty : bool = True # note: making this False does cause some side effects on .json() on cases like auto serialization in environments like FastAPI (like it requires more explict value setting), so all have now been converted into a value of True
|
16
|
-
trim_whitespace : bool = False
|
17
|
-
allow_all_replacement_char: bool = True
|
18
18
|
strict_validation : bool = False # If True, don't replace invalid chars, raise an error instead
|
19
|
-
|
20
|
-
|
19
|
+
to_lower_case : bool = False # If True, convert string to lowercase
|
20
|
+
trim_whitespace : bool = False
|
21
21
|
|
22
22
|
def __new__(cls, value: Optional[str] = None) -> 'Safe_Str':
|
23
23
|
|
@@ -46,6 +46,8 @@ class Safe_Str(Type_Safe__Primitive, str):
|
|
46
46
|
|
47
47
|
sanitized_value = cls.validate_and_sanitize(value)
|
48
48
|
|
49
|
+
if cls.to_lower_case:
|
50
|
+
sanitized_value = sanitized_value.lower()
|
49
51
|
|
50
52
|
return str.__new__(cls, sanitized_value)
|
51
53
|
|
osbot_utils-2.90.0/osbot_utils/type_safe/primitives/safe_str/llm/Safe_Str__LLM__Description.py
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
import re
|
2
|
+
from osbot_utils.type_safe.primitives.safe_str.Safe_Str import Safe_Str
|
3
|
+
|
4
|
+
class Safe_Str__LLM__Description(Safe_Str): # LLM model or feature description
|
5
|
+
max_length = 4096
|
6
|
+
regex = re.compile(r'[^a-zA-Z0-9_ ()\[\]\-+=:;,.?*/\\×\n`&"\'#%<>{}$@|!\s~]') # Allows common description chars
|
7
|
+
|
8
|
+
# Supports rich descriptions with:
|
9
|
+
# - Basic punctuation and formatting
|
10
|
+
# - Mathematical symbols (×, +, -)
|
11
|
+
# - Common special characters for technical descriptions
|
12
|
+
# - Newlines for multi-line descriptions
|
13
|
+
# - Brackets for annotations [like this]
|
14
|
+
# - Quotes for "emphasis" or 'terms'
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import re
|
2
|
+
from osbot_utils.type_safe.primitives.safe_str.Safe_Str import Safe_Str
|
3
|
+
|
4
|
+
|
5
|
+
class Safe_Str__LLM__Message__Assistant(Safe_Str): # For assistant/AI responses
|
6
|
+
max_length = 32768 # Full context window for responses
|
7
|
+
regex = re.compile(r'[\x00-\x08\x0B\x0C\x0E-\x1F]') # Permissive - only control chars
|
osbot_utils-2.90.0/osbot_utils/type_safe/primitives/safe_str/llm/Safe_Str__LLM__Message__System.py
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
import re
|
2
|
+
from osbot_utils.type_safe.primitives.safe_str.Safe_Str import Safe_Str
|
3
|
+
|
4
|
+
|
5
|
+
class Safe_Str__LLM__Message__System(Safe_Str): # For system prompts
|
6
|
+
max_length = 4096 # Shorter than full prompts
|
7
|
+
regex = re.compile(r'[\x00-\x08\x0B\x0C\x0E-\x1F]') # Remove control chars EXCEPT tab (\x09), newline (\x0A), and carriage return (\x0D)
|
osbot_utils-2.90.0/osbot_utils/type_safe/primitives/safe_str/llm/Safe_Str__LLM__Message__Tool.py
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
import re
|
2
|
+
from osbot_utils.type_safe.primitives.safe_str.Safe_Str import Safe_Str
|
3
|
+
|
4
|
+
|
5
|
+
class Safe_Str__LLM__Message__Tool(Safe_Str): # For tool/function responses
|
6
|
+
max_length = 16384 # Tool responses often shorter
|
7
|
+
regex = re.compile(r'[\x00-\x08\x0B\x0C\x0E-\x1F]') # Permissive for JSON/structured data
|
osbot_utils-2.90.0/osbot_utils/type_safe/primitives/safe_str/llm/Safe_Str__LLM__Message__User.py
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
import re
|
2
|
+
from osbot_utils.type_safe.primitives.safe_str.Safe_Str import Safe_Str
|
3
|
+
|
4
|
+
|
5
|
+
class Safe_Str__LLM__Message__User(Safe_Str): # For user messages
|
6
|
+
max_length = 32768 # Full context window for user input
|
7
|
+
regex = re.compile(r'[\x00-\x08\x0B\x0C\x0E-\x1F]') # Permissive - only control chars
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import re
|
2
|
+
from osbot_utils.type_safe.primitives.safe_str.Safe_Str import Safe_Str
|
3
|
+
|
4
|
+
class Safe_Str__LLM__Modality(Safe_Str): # LLM model modality descriptor
|
5
|
+
max_length = 128
|
6
|
+
regex = re.compile(r'[^a-zA-Z0-9+\->\s]') # Allows: alphanumeric, +, -, >, space
|
7
|
+
|
8
|
+
# Supports modality descriptions:
|
9
|
+
# - "text"
|
10
|
+
# - "text->image"
|
11
|
+
# - "image+text->text"
|
12
|
+
# - "multimodal"
|
13
|
+
# - "text + vision"
|
14
|
+
# - "audio->text"
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import re
|
2
|
+
from osbot_utils.type_safe.primitives.safe_str.Safe_Str import Safe_Str
|
3
|
+
|
4
|
+
class Safe_Str__LLM__Model_Id(Safe_Str): # Generic LLM model identifier
|
5
|
+
max_length = 256
|
6
|
+
regex = re.compile(r'[^a-zA-Z0-9/\-.:_@]') # Allows: alphanumeric, /, -, ., :, _, @
|
7
|
+
|
8
|
+
|
9
|
+
# Supports various model ID formats:
|
10
|
+
# - OpenRouter: "openai/gpt-4", "anthropic/claude-3-opus"
|
11
|
+
# - OpenAI: "gpt-4", "gpt-3.5-turbo"
|
12
|
+
# - Anthropic: "claude-3-opus-20240229", "claude-3-sonnet@20240229"
|
13
|
+
# - Cohere: "command-r-plus"
|
14
|
+
# - Google: "models/gemini-pro"
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import re
|
2
|
+
from osbot_utils.type_safe.primitives.safe_str.Safe_Str import Safe_Str
|
3
|
+
|
4
|
+
class Safe_Str__LLM__Model_Name(Safe_Str): # Human-readable LLM model name
|
5
|
+
max_length = 256
|
6
|
+
regex = re.compile(r'[^a-zA-Z0-9: .\-()+,]') # Allows: alphanumeric, :, space, ., -, (, ), +, &, ,
|
7
|
+
|
8
|
+
# Supports various display names:
|
9
|
+
# - "GPT-4 Turbo"
|
10
|
+
# - "Claude 3 Opus (Latest)"
|
11
|
+
# - "Llama 3.1: Instruct (70B)"
|
12
|
+
# - "Command R+"
|
13
|
+
# - "Gemini Pro 1.5"
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import re
|
2
|
+
from osbot_utils.type_safe.primitives.safe_str.Safe_Str import Safe_Str
|
3
|
+
|
4
|
+
class Safe_Str__LLM__Model_Slug(Safe_Str): # URL-safe LLM model slug
|
5
|
+
max_length = 256
|
6
|
+
regex = re.compile(r'[^a-zA-Z0-9/\-._]') # Allows: alphanumeric, /, -, ., _
|
7
|
+
|
8
|
+
# URL-safe slugs for routing/APIs:
|
9
|
+
# - "gpt-4-turbo"
|
10
|
+
# - "claude-3-opus"
|
11
|
+
# - "llama-3.1-70b"
|
12
|
+
# - "command_r_plus"
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import re
|
2
|
+
from osbot_utils.type_safe.primitives.safe_str.Safe_Str import Safe_Str
|
3
|
+
|
4
|
+
|
5
|
+
class Safe_Str__LLM__Prompt(Safe_Str): # Or Safe_Str__LLM__Message
|
6
|
+
max_length = 32768 # Common context window size
|
7
|
+
regex = re.compile(r'[\x00\x01-\x08\x0B\x0C\x0E-\x1F]') # Remove control chars only
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import re
|
2
|
+
from osbot_utils.type_safe.primitives.safe_str.Safe_Str import Safe_Str
|
3
|
+
|
4
|
+
class Safe_Str__LLM__Tokenizer(Safe_Str): # LLM tokenizer type identifier
|
5
|
+
max_length = 64
|
6
|
+
regex = re.compile(r'[^a-zA-Z0-9\-_\s]') # Allows: alphanumeric, -, _, space
|
7
|
+
|
8
|
+
# Supports tokenizer names:
|
9
|
+
# - "cl100k_base"
|
10
|
+
# - "tiktoken"
|
11
|
+
# - "GPT-4 Tokenizer"
|
12
|
+
# - "sentencepiece"
|
13
|
+
# - "BPE"
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import re
|
2
|
+
|
3
|
+
from osbot_utils.type_safe.primitives.safe_str.Safe_Str import Safe_Str
|
4
|
+
|
5
|
+
|
6
|
+
class Safe_Str__Code__Snippet(Safe_Str): # Allows various characters needed for code snippets.
|
7
|
+
regex = re.compile(r'[^a-zA-Z0-9_\-.\s(),;:=+\[\]{}\'"]<>')
|
8
|
+
max_length = 1024
|
9
|
+
trim_whitespace = False # Preserve leading whitespace for code indentation
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import re
|
2
|
+
from osbot_utils.type_safe.primitives.safe_str.Safe_Str import Safe_Str
|
3
|
+
|
4
|
+
class Safe_Str__API__Parameter(Safe_Str): # Generic API parameter name
|
5
|
+
max_length = 64
|
6
|
+
regex = re.compile(r'[^a-zA-Z0-9_]') # Allows: alphanumeric, _
|
7
|
+
|
8
|
+
# Standard API parameter names:
|
9
|
+
# - "max_tokens"
|
10
|
+
# - "temperature"
|
11
|
+
# - "top_p"
|
12
|
+
# - "stream"
|
13
|
+
# - "response_format"
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import re
|
2
|
+
from osbot_utils.type_safe.primitives.safe_str.Safe_Str import Safe_Str
|
3
|
+
|
4
|
+
class Safe_Str__Email(Safe_Str): # Special class for emails with simple custom validation.
|
5
|
+
regex = re.compile(r'[^a-zA-Z0-9_\-.@]')
|
6
|
+
max_length = 256
|
7
|
+
|
8
|
+
def __new__(cls, value=None):
|
9
|
+
result = super().__new__(cls, value)
|
10
|
+
if '@' not in result: # Additional validation for email format
|
11
|
+
raise ValueError(f"in {cls.__name__}, email must contain an @ symbol")
|
12
|
+
return result
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import re
|
2
|
+
|
3
|
+
from osbot_utils.type_safe.primitives.safe_str.Safe_Str import Safe_Str
|
4
|
+
|
5
|
+
|
6
|
+
class Safe_Str__Password(Safe_Str): # Password with minimum requirements.
|
7
|
+
regex = re.compile(r'[^a-zA-Z0-9_\-.\s!@#$%^&*()]')
|
8
|
+
min_length = 8 # Custom attribute
|
9
|
+
|
10
|
+
def __new__(cls, value=None):
|
11
|
+
result = super().__new__(cls, value)
|
12
|
+
if len(result) < cls.min_length:
|
13
|
+
raise ValueError(f"Password must be at least {cls.min_length} characters long")
|
14
|
+
return result
|
@@ -33,13 +33,16 @@ class Type_Safe__Step__Init:
|
|
33
33
|
raise ValueError(f"{__self.__class__.__name__} has no attribute '{key}' and cannot be assigned the value '{value}'. "
|
34
34
|
f"Use {__self.__class__.__name__}.__default_kwargs__() see what attributes are available") from None
|
35
35
|
|
36
|
-
def convert_value_to_type_safe_objects(self, __self, key, value):
|
36
|
+
def convert_value_to_type_safe_objects(self, __self, key, value):
|
37
37
|
annotation = type_safe_annotations.obj_attribute_annotation(__self, key)
|
38
38
|
if annotation:
|
39
39
|
if isinstance(annotation, EnumMeta) and type(value) is str:
|
40
|
-
if value
|
40
|
+
if value in annotation.__members__: # First check if it's a valid name (e.g., 'SYSTEM')
|
41
|
+
value = annotation[value]
|
42
|
+
elif hasattr(annotation, '_value2member_map_') and value in annotation._value2member_map_: # Then check if it's a valid value (e.g., 'system')
|
43
|
+
value = annotation._value2member_map_[value]
|
44
|
+
else:
|
41
45
|
raise ValueError(f"Invalid value '{value}' for enum {annotation.__name__}")
|
42
|
-
value = annotation[value]
|
43
46
|
else:
|
44
47
|
|
45
48
|
origin = type_safe_annotations.get_origin(annotation)
|
@@ -1,5 +1,4 @@
|
|
1
|
-
from types
|
2
|
-
|
1
|
+
from types import SimpleNamespace
|
3
2
|
from osbot_utils.testing.__ import __
|
4
3
|
|
5
4
|
def base_classes(cls):
|
@@ -96,10 +95,13 @@ def str_to_obj(target):
|
|
96
95
|
return dict_to_obj(json.loads(target))
|
97
96
|
|
98
97
|
def enum_from_value(enum_type, value):
|
99
|
-
|
100
|
-
return enum_type[value]
|
101
|
-
|
102
|
-
|
98
|
+
if value in enum_type.__members__: # Try to get by name (e.g., 'SYSTEM')
|
99
|
+
return enum_type[value]
|
100
|
+
|
101
|
+
if hasattr(enum_type, '_value2member_map_') and value in enum_type._value2member_map_: # Try to get by value (e.g., 'system') using the reverse mapping
|
102
|
+
return enum_type._value2member_map_[value]
|
103
|
+
|
104
|
+
raise ValueError(f"Value '{value}' is not a valid member of {enum_type.__name__}.") # If neither worked, raise an error
|
103
105
|
|
104
106
|
|
105
107
|
def get_field(target, field, default=None):
|
@@ -276,13 +278,18 @@ def serialize_to_dict(obj):
|
|
276
278
|
return obj.json() # use the provided .json() method, which handles the type conversions more specifically to those types (dict, list, set and tuple)
|
277
279
|
elif hasattr(obj, '__primitive_base__') and isinstance(obj, (str, int, float)):
|
278
280
|
return obj.__primitive_base__(obj)
|
281
|
+
elif isinstance(obj, Enum):
|
282
|
+
if isinstance(obj.value, (str, int, float, bool, type(None))): # Check if the enum value is directly serializable
|
283
|
+
return obj.value
|
284
|
+
elif isinstance(obj.value, (list, tuple, dict, set)): # Recursively serialize complex values
|
285
|
+
return serialize_to_dict(obj.value)
|
286
|
+
else:
|
287
|
+
return obj.name # Fallback to name for non-serializable values
|
279
288
|
elif isinstance(obj, (str, int, float, bool, bytes, Decimal)) or obj is None: # todo: add support for objects like datetime
|
280
289
|
return obj
|
281
|
-
elif isinstance(obj, Enum):
|
282
|
-
return obj.name
|
283
290
|
elif isinstance(obj, type):
|
284
291
|
return f"{obj.__module__}.{obj.__name__}" # save the full type name
|
285
|
-
elif isinstance(obj, (list, tuple, List)):
|
292
|
+
elif isinstance(obj, (list, tuple, List)): # Added tuple here
|
286
293
|
return [serialize_to_dict(item) for item in obj]
|
287
294
|
elif isinstance(obj, set):
|
288
295
|
return [serialize_to_dict(item) for item in obj]
|
@@ -296,6 +303,12 @@ def serialize_to_dict(obj):
|
|
296
303
|
serialized_dict[serialized_key] = serialize_to_dict(value) # Recursively serialize the value
|
297
304
|
return serialized_dict
|
298
305
|
#return {key: serialize_to_dict(value) for key, value in obj.items()}
|
306
|
+
elif callable(obj) and not isinstance(obj, type): # For functions/lambdas, return a string representation
|
307
|
+
if hasattr(obj, '__name__'):
|
308
|
+
return obj.__name__
|
309
|
+
if hasattr(obj, '__class__'):
|
310
|
+
return obj.__class__.__name__
|
311
|
+
return str(obj)
|
299
312
|
elif hasattr(obj, "__dict__"):
|
300
313
|
data = {} # todo: look at a more advanced version which saved the type of the object, for example with {'__type__': type(obj).__name__}
|
301
314
|
for key, value in obj.__dict__.items():
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
v2.90.0
|
@@ -1,10 +0,0 @@
|
|
1
|
-
import re
|
2
|
-
|
3
|
-
from osbot_utils.type_safe.primitives.safe_str.Safe_Str import Safe_Str
|
4
|
-
|
5
|
-
TYPE_SAFE_STR__LLM__MODEL_NAME__MAX_LENGTH = 256
|
6
|
-
TYPE_SAFE_STR__LLM__MODEL_NAME__REGEX = r'[^a-zA-Z0-9/_\-.:]'
|
7
|
-
|
8
|
-
class Safe_Str__LLM__Model_Name(Safe_Str):
|
9
|
-
regex = re.compile(TYPE_SAFE_STR__LLM__MODEL_NAME__REGEX)
|
10
|
-
max_length = TYPE_SAFE_STR__LLM__MODEL_NAME__MAX_LENGTH
|
@@ -1 +0,0 @@
|
|
1
|
-
v2.88.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.88.0 → osbot_utils-2.90.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.88.0 → osbot_utils-2.90.0}/osbot_utils/decorators/methods/cache_on_function.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.88.0 → osbot_utils-2.90.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.88.0 → osbot_utils-2.90.0}/osbot_utils/decorators/methods/function_type_check.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-2.88.0 → osbot_utils-2.90.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
|