Skip to content

Commit 2a4cc03

Browse files
authored
Add stubs for jmespath (#5780)
1 parent b3b8dae commit 2a4cc03

File tree

9 files changed

+165
-0
lines changed

9 files changed

+165
-0
lines changed

pyrightconfig.stricter.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
"stubs/html5lib",
3939
"stubs/httplib2",
4040
"stubs/Jinja2",
41+
"stubs/jmespath",
4142
"stubs/Markdown",
4243
"stubs/oauthlib",
4344
"stubs/Pillow",

stubs/jmespath/METADATA.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
version = "0.10"
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from typing import Any
2+
3+
from jmespath import parser as parser
4+
from jmespath.visitor import Options as Options
5+
6+
def compile(expression): ...
7+
def search(expression, data, options: Any | None = ...): ...

stubs/jmespath/jmespath/ast.pyi

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
def comparator(name, first, second): ...
2+
def current_node(): ...
3+
def expref(expression): ...
4+
def function_expression(name, args): ...
5+
def field(name): ...
6+
def filter_projection(left, right, comparator): ...
7+
def flatten(node): ...
8+
def identity(): ...
9+
def index(index): ...
10+
def index_expression(children): ...
11+
def key_val_pair(key_name, node): ...
12+
def literal(literal_value): ...
13+
def multi_select_dict(nodes): ...
14+
def multi_select_list(nodes): ...
15+
def or_expression(left, right): ...
16+
def and_expression(left, right): ...
17+
def not_expression(expr): ...
18+
def pipe(left, right): ...
19+
def projection(left, right): ...
20+
def subexpression(children): ...
21+
def slice(start, end, step): ...
22+
def value_projection(left, right): ...
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
from typing import Any
2+
3+
class JMESPathError(ValueError): ...
4+
5+
class ParseError(JMESPathError):
6+
lex_position: Any
7+
token_value: Any
8+
token_type: Any
9+
msg: Any
10+
expression: Any
11+
def __init__(self, lex_position, token_value, token_type, msg=...) -> None: ...
12+
13+
class IncompleteExpressionError(ParseError):
14+
expression: Any
15+
lex_position: Any
16+
token_type: Any
17+
token_value: Any
18+
def set_expression(self, expression) -> None: ...
19+
20+
class LexerError(ParseError):
21+
lexer_position: Any
22+
lexer_value: Any
23+
message: Any
24+
expression: Any
25+
def __init__(self, lexer_position, lexer_value, message, expression: Any | None = ...) -> None: ...
26+
27+
class ArityError(ParseError):
28+
expected_arity: Any
29+
actual_arity: Any
30+
function_name: Any
31+
expression: Any
32+
def __init__(self, expected, actual, name) -> None: ...
33+
34+
class VariadictArityError(ArityError): ...
35+
36+
class JMESPathTypeError(JMESPathError):
37+
function_name: Any
38+
current_value: Any
39+
actual_type: Any
40+
expected_types: Any
41+
def __init__(self, function_name, current_value, actual_type, expected_types) -> None: ...
42+
43+
class EmptyExpressionError(JMESPathError):
44+
def __init__(self) -> None: ...
45+
46+
class UnknownFunctionError(JMESPathError): ...
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
from typing import Any
2+
3+
TYPES_MAP: Any
4+
REVERSE_TYPES_MAP: Any
5+
6+
def signature(*arguments): ...
7+
8+
class FunctionRegistry(type):
9+
def __init__(cls, name, bases, attrs) -> None: ...
10+
11+
class Functions:
12+
FUNCTION_TABLE: Any
13+
def call_function(self, function_name, resolved_args): ...

stubs/jmespath/jmespath/lexer.pyi

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from typing import Any
2+
3+
from jmespath.exceptions import EmptyExpressionError as EmptyExpressionError, LexerError as LexerError
4+
5+
class Lexer:
6+
START_IDENTIFIER: Any
7+
VALID_IDENTIFIER: Any
8+
VALID_NUMBER: Any
9+
WHITESPACE: Any
10+
SIMPLE_TOKENS: Any
11+
def tokenize(self, expression) -> None: ...

stubs/jmespath/jmespath/parser.pyi

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from typing import Any
2+
3+
class Parser:
4+
BINDING_POWER: Any
5+
tokenizer: Any
6+
def __init__(self, lookahead: int = ...) -> None: ...
7+
def parse(self, expression): ...
8+
@classmethod
9+
def purge(cls) -> None: ...
10+
11+
class ParsedResult:
12+
expression: Any
13+
parsed: Any
14+
def __init__(self, expression, parsed) -> None: ...
15+
def search(self, value, options: Any | None = ...): ...
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
from typing import Any
2+
3+
class Options:
4+
dict_cls: Any
5+
custom_functions: Any
6+
def __init__(self, dict_cls: Any | None = ..., custom_functions: Any | None = ...) -> None: ...
7+
8+
class _Expression:
9+
expression: Any
10+
interpreter: Any
11+
def __init__(self, expression, interpreter) -> None: ...
12+
def visit(self, node, *args, **kwargs): ...
13+
14+
class Visitor:
15+
def __init__(self) -> None: ...
16+
def visit(self, node, *args, **kwargs): ...
17+
def default_visit(self, node, *args, **kwargs) -> None: ...
18+
19+
class TreeInterpreter(Visitor):
20+
COMPARATOR_FUNC: Any
21+
MAP_TYPE: Any
22+
def __init__(self, options: Any | None = ...) -> None: ...
23+
def default_visit(self, node, *args, **kwargs) -> None: ...
24+
def visit_subexpression(self, node, value): ...
25+
def visit_field(self, node, value): ...
26+
def visit_comparator(self, node, value): ...
27+
def visit_current(self, node, value): ...
28+
def visit_expref(self, node, value): ...
29+
def visit_function_expression(self, node, value): ...
30+
def visit_filter_projection(self, node, value): ...
31+
def visit_flatten(self, node, value): ...
32+
def visit_identity(self, node, value): ...
33+
def visit_index(self, node, value): ...
34+
def visit_index_expression(self, node, value): ...
35+
def visit_slice(self, node, value): ...
36+
def visit_key_val_pair(self, node, value): ...
37+
def visit_literal(self, node, value): ...
38+
def visit_multi_select_dict(self, node, value): ...
39+
def visit_multi_select_list(self, node, value): ...
40+
def visit_or_expression(self, node, value): ...
41+
def visit_and_expression(self, node, value): ...
42+
def visit_not_expression(self, node, value): ...
43+
def visit_pipe(self, node, value): ...
44+
def visit_projection(self, node, value): ...
45+
def visit_value_projection(self, node, value): ...
46+
47+
class GraphvizVisitor(Visitor):
48+
def __init__(self) -> None: ...
49+
def visit(self, node, *args, **kwargs): ...

0 commit comments

Comments
 (0)