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

|
@@ -93,7 +93,7 @@ fetcher.fetch(10) # Returns cached result
|
|
93
93
|
### HTML Parsing
|
94
94
|
|
95
95
|
```python
|
96
|
-
from osbot_utils.helpers.html.Html__To__Html_Dict import html_to_dict
|
96
|
+
from osbot_utils.helpers.html.transformers.Html__To__Html_Dict import html_to_dict
|
97
97
|
|
98
98
|
html_code = "<html><body><h1>Hello</h1></body></html>"
|
99
99
|
print(html_to_dict(html_code))
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# OSBot-Utils
|
2
2
|
|
3
|
-

|
4
4
|

|
5
5
|

|
6
6
|

|
@@ -72,7 +72,7 @@ fetcher.fetch(10) # Returns cached result
|
|
72
72
|
### HTML Parsing
|
73
73
|
|
74
74
|
```python
|
75
|
-
from osbot_utils.helpers.html.Html__To__Html_Dict import html_to_dict
|
75
|
+
from osbot_utils.helpers.html.transformers.Html__To__Html_Dict import html_to_dict
|
76
76
|
|
77
77
|
html_code = "<html><body><h1>Hello</h1></body></html>"
|
78
78
|
print(html_to_dict(html_code))
|
@@ -1,11 +1,11 @@
|
|
1
1
|
import ast
|
2
2
|
|
3
|
-
from osbot_utils.helpers.Type_Registry
|
4
|
-
from osbot_utils.utils.Files
|
5
|
-
from osbot_utils.utils.Functions
|
6
|
-
from osbot_utils.helpers.ast.Ast_Node
|
3
|
+
from osbot_utils.helpers.Type_Registry import type_registry
|
4
|
+
from osbot_utils.utils.Files import file_contents, file_exists
|
5
|
+
from osbot_utils.utils.Functions import python_file
|
6
|
+
from osbot_utils.helpers.ast.Ast_Node import Ast_Node
|
7
7
|
|
8
|
-
#todo: check if this is
|
8
|
+
#todo: check if this is still needed since it Ast_Visit does it similar
|
9
9
|
class Ast_Load(ast.NodeVisitor):
|
10
10
|
|
11
11
|
def __init__(self):
|
@@ -1,6 +1,6 @@
|
|
1
1
|
from collections import defaultdict
|
2
2
|
|
3
|
-
from osbot_utils.helpers.html.Html__To__Html_Dict import STRING__SCHEMA_TEXT
|
3
|
+
from osbot_utils.helpers.html.transformers.Html__To__Html_Dict import STRING__SCHEMA_TEXT
|
4
4
|
from osbot_utils.type_safe.Type_Safe import Type_Safe
|
5
5
|
from osbot_utils.utils.Files import file_create
|
6
6
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
from typing import List
|
2
2
|
|
3
|
-
from osbot_utils.helpers.html.Tag__Base import Tag__Base
|
4
|
-
from osbot_utils.helpers.html.Tag__Link import Tag__Link
|
5
|
-
from osbot_utils.helpers.html.Tag__Style import Tag__Style
|
3
|
+
from osbot_utils.helpers.html.tags.Tag__Base import Tag__Base
|
4
|
+
from osbot_utils.helpers.html.tags.Tag__Link import Tag__Link
|
5
|
+
from osbot_utils.helpers.html.tags.Tag__Style import Tag__Style
|
6
6
|
from osbot_utils.utils.Dev import pprint
|
7
7
|
|
8
8
|
|
@@ -1,6 +1,6 @@
|
|
1
|
-
from osbot_utils.helpers.html.Tag__Base import Tag__Base
|
2
|
-
from osbot_utils.helpers.html.Tag__Body import Tag__Body
|
3
|
-
from osbot_utils.helpers.html.Tag__Head import Tag__Head
|
1
|
+
from osbot_utils.helpers.html.tags.Tag__Base import Tag__Base
|
2
|
+
from osbot_utils.helpers.html.tags.Tag__Body import Tag__Body
|
3
|
+
from osbot_utils.helpers.html.tags.Tag__Head import Tag__Head
|
4
4
|
from osbot_utils.utils.Misc import str_to_bytes
|
5
5
|
|
6
6
|
ATTRIBUTES_NAMES__LINK = ['lang']
|
@@ -1,5 +1,5 @@
|
|
1
|
-
from osbot_utils.helpers.html.CSS_Dict__To__Css import CSS_Dict__To__Css
|
2
|
-
from osbot_utils.helpers.html.Tag__Base import Tag__Base, INDENT_SIZE
|
1
|
+
from osbot_utils.helpers.html.transformers.CSS_Dict__To__Css import CSS_Dict__To__Css
|
2
|
+
from osbot_utils.helpers.html.tags.Tag__Base import Tag__Base, INDENT_SIZE
|
3
3
|
|
4
4
|
|
5
5
|
class Tag__Style(Tag__Base):
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from osbot_utils.helpers.html.Html__To__Html_Dict import STRING__SCHEMA_TEXT, STRING__SCHEMA_NODES
|
1
|
+
from osbot_utils.helpers.html.transformers.Html__To__Html_Dict import STRING__SCHEMA_TEXT, STRING__SCHEMA_NODES
|
2
2
|
|
3
3
|
HTML_SELF_CLOSING_TAGS = {'area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'link', 'meta',
|
4
4
|
'param', 'source', 'track', 'wbr'}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from typing import Dict, Any
|
2
|
-
from osbot_utils.helpers.html.Html__To__Html_Dict
|
2
|
+
from osbot_utils.helpers.html.transformers.Html__To__Html_Dict import STRING__SCHEMA_TEXT, STRING__SCHEMA_NODES
|
3
3
|
from osbot_utils.helpers.html.schemas.Schema__Html_Document import Schema__Html_Document
|
4
4
|
from osbot_utils.helpers.html.schemas.Schema__Html_Node import Schema__Html_Node
|
5
5
|
from osbot_utils.helpers.html.schemas.Schema__Html_Node__Data import Schema__Html_Node__Data
|
@@ -1,11 +1,11 @@
|
|
1
|
-
from osbot_utils.helpers.html.Html_Dict__To__Html import HTML_SELF_CLOSING_TAGS
|
2
|
-
from osbot_utils.helpers.html.Html__To__Html_Dict import STRING__SCHEMA_TEXT, STRING__SCHEMA_NODES
|
3
|
-
from osbot_utils.helpers.html.Tag__Base
|
4
|
-
from osbot_utils.helpers.html.Tag__Body
|
5
|
-
from osbot_utils.helpers.html.Tag__Head
|
6
|
-
from osbot_utils.helpers.html.Tag__Html
|
7
|
-
from osbot_utils.helpers.html.Tag__Link
|
8
|
-
from osbot_utils.helpers.html.Tag__Text
|
1
|
+
from osbot_utils.helpers.html.transformers.Html_Dict__To__Html import HTML_SELF_CLOSING_TAGS
|
2
|
+
from osbot_utils.helpers.html.transformers.Html__To__Html_Dict import STRING__SCHEMA_TEXT, STRING__SCHEMA_NODES
|
3
|
+
from osbot_utils.helpers.html.tags.Tag__Base import Tag__Base
|
4
|
+
from osbot_utils.helpers.html.tags.Tag__Body import Tag__Body
|
5
|
+
from osbot_utils.helpers.html.tags.Tag__Head import Tag__Head
|
6
|
+
from osbot_utils.helpers.html.tags.Tag__Html import Tag__Html
|
7
|
+
from osbot_utils.helpers.html.tags.Tag__Link import Tag__Link
|
8
|
+
from osbot_utils.helpers.html.tags.Tag__Text import Tag__Text
|
9
9
|
|
10
10
|
|
11
11
|
class Html_Dict__To__Html_Tags:
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from typing import Dict, Any, List, Union
|
2
|
-
from osbot_utils.helpers.html.Html__To__Html_Dict
|
2
|
+
from osbot_utils.helpers.html.transformers.Html__To__Html_Dict import STRING__SCHEMA_TEXT, STRING__SCHEMA_NODES, STRING__SCHEMA_TAG, STRING__SCHEMA_ATTRS
|
3
3
|
from osbot_utils.helpers.html.schemas.Schema__Html_Document import Schema__Html_Document
|
4
4
|
from osbot_utils.helpers.html.schemas.Schema__Html_Node import Schema__Html_Node
|
5
5
|
from osbot_utils.type_safe.Type_Safe import Type_Safe
|
@@ -1,7 +1,7 @@
|
|
1
|
-
from osbot_utils.helpers.html.Html_Dict__To__Html_Document import Html_Dict__To__Html_Document
|
2
|
-
from osbot_utils.helpers.html.Html__To__Html_Dict import Html__To__Html_Dict
|
3
|
-
from osbot_utils.helpers.html.schemas.Schema__Html_Document
|
4
|
-
from osbot_utils.type_safe.Type_Safe
|
1
|
+
from osbot_utils.helpers.html.transformers.Html_Dict__To__Html_Document import Html_Dict__To__Html_Document
|
2
|
+
from osbot_utils.helpers.html.transformers.Html__To__Html_Dict import Html__To__Html_Dict
|
3
|
+
from osbot_utils.helpers.html.schemas.Schema__Html_Document import Schema__Html_Document
|
4
|
+
from osbot_utils.type_safe.Type_Safe import Type_Safe
|
5
5
|
|
6
6
|
class Html__To__Html_Document(Type_Safe):
|
7
7
|
html: str
|
@@ -1,5 +1,5 @@
|
|
1
|
-
from osbot_utils.helpers.html.Html_Dict__To__Html_Tags import Html_Dict__To__Html_Tags
|
2
|
-
from osbot_utils.helpers.html.Html__To__Html_Dict import Html__To__Html_Dict
|
1
|
+
from osbot_utils.helpers.html.transformers.Html_Dict__To__Html_Tags import Html_Dict__To__Html_Tags
|
2
|
+
from osbot_utils.helpers.html.transformers.Html__To__Html_Dict import Html__To__Html_Dict
|
3
3
|
|
4
4
|
|
5
5
|
class Html__To__Html_Tag:
|
@@ -0,0 +1,226 @@
|
|
1
|
+
from typing import List, Optional, Dict, Any
|
2
|
+
from osbot_utils.helpers.html.transformers.Html__To__Html_Document import Html__To__Html_Document
|
3
|
+
from osbot_utils.helpers.html.schemas.Schema__Html_Document import Schema__Html_Document
|
4
|
+
from osbot_utils.helpers.html.schemas.Schema__Html_Node import Schema__Html_Node
|
5
|
+
from osbot_utils.type_safe.Type_Safe import Type_Safe
|
6
|
+
|
7
|
+
|
8
|
+
class Html__Query(Type_Safe):
|
9
|
+
html : str
|
10
|
+
document : Schema__Html_Document
|
11
|
+
|
12
|
+
def __enter__(self):
|
13
|
+
self.document = Html__To__Html_Document(html=self.html).convert()
|
14
|
+
return self
|
15
|
+
|
16
|
+
def __exit__(self, exc_type, exc_val, exc_tb):
|
17
|
+
pass
|
18
|
+
|
19
|
+
@property
|
20
|
+
def root(self) -> Schema__Html_Node: # Get the root node
|
21
|
+
return self.document.root_node
|
22
|
+
|
23
|
+
@property
|
24
|
+
def head(self) -> Optional[Schema__Html_Node]: # Get the head node
|
25
|
+
return self.find_child_by_tag(self.root, 'head')
|
26
|
+
|
27
|
+
@property
|
28
|
+
def body(self) -> Optional[Schema__Html_Node]: # Get the body node
|
29
|
+
return self.find_child_by_tag(self.root, 'body')
|
30
|
+
|
31
|
+
@property
|
32
|
+
def title(self) -> Optional[str]: # Get the page title text
|
33
|
+
if not self.head:
|
34
|
+
return None
|
35
|
+
title_node = self.find_child_by_tag(self.head, 'title')
|
36
|
+
if title_node:
|
37
|
+
return self.get_text_content(title_node).strip()
|
38
|
+
return None
|
39
|
+
|
40
|
+
@property
|
41
|
+
def links(self) -> List[Dict[str, str]]: # Get all link tags as list of attribute dicts
|
42
|
+
if not self.head:
|
43
|
+
return []
|
44
|
+
return [node.attrs for node in self.head.child_nodes if node.tag == 'link']
|
45
|
+
|
46
|
+
@property
|
47
|
+
def link_hrefs(self) -> List[str]: # Get all link hrefs
|
48
|
+
return [link.get('href', '') for link in self.links if 'href' in link]
|
49
|
+
|
50
|
+
@property
|
51
|
+
def css_links(self) -> List[str]: # Get all stylesheet link hrefs
|
52
|
+
result = []
|
53
|
+
for link in self.links:
|
54
|
+
if link.get('rel') == 'stylesheet' and 'href' in link:
|
55
|
+
result.append(link['href'])
|
56
|
+
return result
|
57
|
+
|
58
|
+
@property
|
59
|
+
def script_sources(self) -> List[str]: # Get all external script src URLs
|
60
|
+
scripts = self.find_all_by_tag('script')
|
61
|
+
return [s.attrs.get('src') for s in scripts if 'src' in s.attrs]
|
62
|
+
|
63
|
+
@property
|
64
|
+
def inline_scripts(self) -> List[str]: # Get all inline script contents
|
65
|
+
scripts = self.find_all_by_tag('script')
|
66
|
+
result = []
|
67
|
+
for script in scripts:
|
68
|
+
if 'src' not in script.attrs: # Only inline scripts
|
69
|
+
content = self.get_text_content(script)
|
70
|
+
if content:
|
71
|
+
result.append(content)
|
72
|
+
return result
|
73
|
+
|
74
|
+
@property
|
75
|
+
def meta_tags(self) -> List[Dict[str, str]]: # Get all meta tags as list of attribute dicts
|
76
|
+
if not self.head:
|
77
|
+
return []
|
78
|
+
return [node.attrs for node in self.head.child_nodes if node.tag == 'meta']
|
79
|
+
|
80
|
+
@property
|
81
|
+
def favicon(self) -> Optional[str]: # Get favicon URL if present
|
82
|
+
return (self.find_link_by_rel('shortcut icon') or
|
83
|
+
self.find_link_by_rel('icon'))
|
84
|
+
|
85
|
+
@property
|
86
|
+
def stylesheets(self) -> List[str]: # Alias for css_links
|
87
|
+
return self.css_links
|
88
|
+
|
89
|
+
# Query methods
|
90
|
+
def has_link(self, href : str = None , # Check if link exists with attributes
|
91
|
+
rel : str = None ,
|
92
|
+
**attrs
|
93
|
+
) -> bool:
|
94
|
+
for link in self.links:
|
95
|
+
if href and link.get('href') != href:
|
96
|
+
continue
|
97
|
+
if rel and link.get('rel') != rel:
|
98
|
+
continue
|
99
|
+
if all(link.get(k) == v for k, v in attrs.items()): # Check any additional attributes
|
100
|
+
return True
|
101
|
+
return False
|
102
|
+
|
103
|
+
def has_script(self, src : str = None , # Check if script exists with src or text
|
104
|
+
contains : str = None
|
105
|
+
) -> bool:
|
106
|
+
scripts = self.find_all_by_tag('script')
|
107
|
+
for script in scripts:
|
108
|
+
if src and script.attrs.get('src') == src:
|
109
|
+
return True
|
110
|
+
if contains:
|
111
|
+
content = self.get_text_content(script)
|
112
|
+
if contains in content:
|
113
|
+
return True
|
114
|
+
return False
|
115
|
+
|
116
|
+
def has_meta(self, name : str = None , # Check if meta tag exists with attributes
|
117
|
+
content : str = None ,
|
118
|
+
**attrs
|
119
|
+
) -> bool:
|
120
|
+
for meta in self.meta_tags:
|
121
|
+
if name and meta.get('name') != name:
|
122
|
+
continue
|
123
|
+
if content and meta.get('content') != content:
|
124
|
+
continue
|
125
|
+
if all(meta.get(k) == v for k, v in attrs.items()):
|
126
|
+
return True
|
127
|
+
return False
|
128
|
+
|
129
|
+
def find_by_id(self, element_id : str # Find element by id attribute
|
130
|
+
) -> Optional[Schema__Html_Node]:
|
131
|
+
return self.find_by_attribute('id', element_id)
|
132
|
+
|
133
|
+
def find_by_class(self, class_name : str # Find all elements with a specific class
|
134
|
+
) -> List[Schema__Html_Node]:
|
135
|
+
result = []
|
136
|
+
for node in self.find_all():
|
137
|
+
classes = node.attrs.get('class', '').split()
|
138
|
+
if class_name in classes:
|
139
|
+
result.append(node)
|
140
|
+
return result
|
141
|
+
|
142
|
+
def find_by_tag(self, tag_name : str # Find all elements with a specific tag
|
143
|
+
) -> List[Schema__Html_Node]:
|
144
|
+
return self.find_all_by_tag(tag_name)
|
145
|
+
|
146
|
+
def get_attribute(self, element : Schema__Html_Node , # Get attribute value from an element
|
147
|
+
attr_name : str
|
148
|
+
) -> Optional[str]:
|
149
|
+
return element.attrs.get(attr_name)
|
150
|
+
|
151
|
+
def get_text(self, element : Optional[Schema__Html_Node] = None # Get text content of element or document
|
152
|
+
) -> str:
|
153
|
+
if element is None:
|
154
|
+
element = self.root
|
155
|
+
return self.get_text_content(element)
|
156
|
+
|
157
|
+
|
158
|
+
# other helper methods
|
159
|
+
def find_child_by_tag(self, parent : Schema__Html_Node, # Find first direct child with tag
|
160
|
+
tag : str
|
161
|
+
) -> Optional[Schema__Html_Node]:
|
162
|
+
for child in parent.child_nodes:
|
163
|
+
if child.tag == tag:
|
164
|
+
return child
|
165
|
+
return None
|
166
|
+
|
167
|
+
def find_all_by_tag(self, tag : str, # Recursively find all nodes with tag
|
168
|
+
node : Optional[Schema__Html_Node] = None
|
169
|
+
) -> List[Schema__Html_Node]:
|
170
|
+
if node is None:
|
171
|
+
node = self.root
|
172
|
+
|
173
|
+
result = []
|
174
|
+
if node.tag == tag:
|
175
|
+
result.append(node)
|
176
|
+
|
177
|
+
for child in node.child_nodes:
|
178
|
+
result.extend(self.find_all_by_tag(tag, child))
|
179
|
+
|
180
|
+
return result
|
181
|
+
|
182
|
+
def find_by_attribute(self, attr_name : str , # Find first node with attribute value
|
183
|
+
attr_value : str ,
|
184
|
+
node : Optional[Schema__Html_Node] = None
|
185
|
+
) -> Optional[Schema__Html_Node]:
|
186
|
+
if node is None:
|
187
|
+
node = self.root
|
188
|
+
|
189
|
+
if node.attrs.get(attr_name) == attr_value:
|
190
|
+
return node
|
191
|
+
|
192
|
+
for child in node.child_nodes:
|
193
|
+
result = self.find_by_attribute(attr_name, attr_value, child)
|
194
|
+
if result:
|
195
|
+
return result
|
196
|
+
|
197
|
+
return None
|
198
|
+
|
199
|
+
def find_all(self, node : Optional[Schema__Html_Node] = None # Get all nodes in the tree
|
200
|
+
) -> List[Schema__Html_Node]:
|
201
|
+
if node is None:
|
202
|
+
node = self.root
|
203
|
+
|
204
|
+
result = [node]
|
205
|
+
for child in node.child_nodes:
|
206
|
+
result.extend(self.find_all(child))
|
207
|
+
|
208
|
+
return result
|
209
|
+
|
210
|
+
def find_link_by_rel(self, rel_value: str) -> Optional[str]:
|
211
|
+
for link in self.links:
|
212
|
+
if link.get('rel') == rel_value:
|
213
|
+
return link.get('href')
|
214
|
+
return None
|
215
|
+
|
216
|
+
def get_text_content(self, node : Schema__Html_Node # Get all text content from node
|
217
|
+
) -> str:
|
218
|
+
texts = []
|
219
|
+
|
220
|
+
for text_node in node.text_nodes: # Get text from this node's text_nodes
|
221
|
+
texts.append(text_node.data)
|
222
|
+
|
223
|
+
for child in node.child_nodes: # Recursively get text from children
|
224
|
+
texts.append(self.get_text_content(child))
|
225
|
+
|
226
|
+
return ''.join(texts)
|
@@ -0,0 +1,45 @@
|
|
1
|
+
TEST__DATA__HTML__SIMPLE = """
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Test Page</title>
|
5
|
+
<link rel="stylesheet" href="/css/main.css">
|
6
|
+
<link rel="shortcut icon" href="/favicon.ico">
|
7
|
+
<meta name="description" content="Test description">
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<div id="main">Content</div>
|
11
|
+
<script src="/js/app.js"></script>
|
12
|
+
<script>console.log('inline');</script>
|
13
|
+
</body>
|
14
|
+
</html>
|
15
|
+
"""
|
16
|
+
TEST__DATA__HTML__SWAGGER = """
|
17
|
+
<!DOCTYPE html>
|
18
|
+
<html>
|
19
|
+
<head>
|
20
|
+
<link type="text/css" rel="stylesheet" href="/static/swagger-ui/swagger-ui.css">
|
21
|
+
<link rel="shortcut icon" href="/static/swagger-ui/favicon.png">
|
22
|
+
<title>Fast_API - Swagger UI</title>
|
23
|
+
</head>
|
24
|
+
<body>
|
25
|
+
<div id="swagger-ui"></div>
|
26
|
+
<script src="/static/swagger-ui/swagger-ui-bundle.js"></script>
|
27
|
+
<script>
|
28
|
+
const ui = SwaggerUIBundle({
|
29
|
+
url: '/openapi.json',
|
30
|
+
"dom_id": "#swagger-ui"
|
31
|
+
})
|
32
|
+
</script>
|
33
|
+
</body>
|
34
|
+
</html>
|
35
|
+
"""
|
36
|
+
|
37
|
+
TEST__DATA__HTML__MIXED_CONTENT = """
|
38
|
+
<div class="container">
|
39
|
+
Text before
|
40
|
+
<p class="paragraph">Paragraph content</p>
|
41
|
+
Text middle
|
42
|
+
<span class="highlight">Highlighted</span>
|
43
|
+
Text after
|
44
|
+
</div>
|
45
|
+
"""
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
v2.77.0
|
@@ -1 +0,0 @@
|
|
1
|
-
v2.76.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.76.0 → osbot_utils-2.77.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.76.0 → osbot_utils-2.77.0}/osbot_utils/decorators/methods/cache_on_function.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{osbot_utils-2.76.0 → osbot_utils-2.77.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.76.0 → osbot_utils-2.77.0}/osbot_utils/decorators/methods/function_type_check.py
RENAMED
File without changes
|
File without changes
|
{osbot_utils-2.76.0 → osbot_utils-2.77.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
|