1+ from _typeshed import Unused
12from collections .abc import Callable , MutableMapping
2- from typing import Any , ClassVar , NoReturn , TypedDict
3+ from typing import Any , ClassVar , NoReturn , TypedDict , TypeVar
34
45from jmespath .functions import Functions
56
7+ _T = TypeVar ("_T" )
8+
69class Options :
710 dict_cls : Callable [[], MutableMapping [Any , Any ]] | None
811 custom_functions : Functions | None
@@ -19,7 +22,7 @@ class _Expression:
1922class Visitor :
2023 def __init__ (self ) -> None : ...
2124 def visit (self , node : _TreeNode , * args , ** kwargs ) -> Any : ...
22- def default_visit (self , node : _TreeNode , * args , ** kwargs ) -> NoReturn : ...
25+ def default_visit (self , node : _TreeNode , * args : Unused , ** kwargs : Unused ) -> NoReturn : ...
2326
2427class _TreeNode (TypedDict ):
2528 type : str
@@ -30,29 +33,29 @@ class TreeInterpreter(Visitor):
3033 COMPARATOR_FUNC : ClassVar [dict [str , Callable [[Any , Any ], Any ]]]
3134 MAP_TYPE : ClassVar [Callable [[], MutableMapping [Any , Any ]]]
3235 def __init__ (self , options : Options | None = None ) -> None : ...
33- def default_visit (self , node : _TreeNode , * args , ** kwargs ) -> NoReturn : ...
36+ def default_visit (self , node : _TreeNode , * args : Unused , ** kwargs : Unused ) -> NoReturn : ...
3437 def visit_subexpression (self , node : _TreeNode , value : Any ) -> Any : ...
3538 def visit_field (self , node : _TreeNode , value : Any ) -> Any : ...
3639 def visit_comparator (self , node : _TreeNode , value : Any ) -> Any : ...
37- def visit_current (self , node : _TreeNode , value : Any ) -> Any : ...
38- def visit_expref (self , node : _TreeNode , value : Any ) -> Any : ...
40+ def visit_current (self , node : _TreeNode , value : _T ) -> _T : ...
41+ def visit_expref (self , node : _TreeNode , value : Any ) -> _Expression : ...
3942 def visit_function_expression (self , node : _TreeNode , value : Any ) -> Any : ...
40- def visit_filter_projection (self , node : _TreeNode , value : Any ) -> Any : ...
43+ def visit_filter_projection (self , node : _TreeNode , value : Any ) -> list [ Any ] | None : ...
4144 def visit_flatten (self , node : _TreeNode , value : Any ) -> Any : ...
42- def visit_identity (self , node : _TreeNode , value : Any ) -> Any : ...
45+ def visit_identity (self , node : _TreeNode , value : _T ) -> _T : ...
4346 def visit_index (self , node : _TreeNode , value : Any ) -> Any : ...
4447 def visit_index_expression (self , node : _TreeNode , value : Any ) -> Any : ...
4548 def visit_slice (self , node : _TreeNode , value : Any ) -> Any : ...
4649 def visit_key_val_pair (self , node : _TreeNode , value : Any ) -> Any : ...
4750 def visit_literal (self , node : _TreeNode , value : Any ) -> Any : ...
4851 def visit_multi_select_dict (self , node : _TreeNode , value : Any ) -> Any : ...
49- def visit_multi_select_list (self , node : _TreeNode , value : Any ) -> Any : ...
52+ def visit_multi_select_list (self , node : _TreeNode , value : Any ) -> list [ Any ] | None : ...
5053 def visit_or_expression (self , node : _TreeNode , value : Any ) -> Any : ...
5154 def visit_and_expression (self , node : _TreeNode , value : Any ) -> Any : ...
52- def visit_not_expression (self , node : _TreeNode , value : Any ) -> Any : ...
55+ def visit_not_expression (self , node : _TreeNode , value : Any ) -> bool : ...
5356 def visit_pipe (self , node : _TreeNode , value : Any ) -> Any : ...
54- def visit_projection (self , node : _TreeNode , value : Any ) -> Any : ...
55- def visit_value_projection (self , node : _TreeNode , value : Any ) -> Any : ...
57+ def visit_projection (self , node : _TreeNode , value : Any ) -> list [ Any ] | None : ...
58+ def visit_value_projection (self , node : _TreeNode , value : Any ) -> list [ Any ] | None : ...
5659
5760class GraphvizVisitor (Visitor ):
5861 def __init__ (self ) -> None : ...
0 commit comments