Skip to content

Commit 6a6a677

Browse files
authored
Improve various jmespath types
Merge `jmespath` from microsoft/python-type-stubs
1 parent 3b94e71 commit 6a6a677

File tree

2 files changed

+26
-26
lines changed

2 files changed

+26
-26
lines changed

stubs/jmespath/jmespath/exceptions.pyi

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,43 @@
1+
from collections.abc import Sequence
12
from typing import Any
23

34
class JMESPathError(ValueError): ...
45

56
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: ...
7+
lex_position: int
8+
token_value: str
9+
token_type: str
10+
msg: str
11+
expression: str | None
12+
def __init__(self, lex_position: int, token_value: str, token_type: str, msg: str = ...) -> None: ...
1213

1314
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: ...
15+
# When ParseError is used directly, the token always have a non-null value and type
16+
token_value: str | None # type: ignore[assignment]
17+
token_type: str | None # type: ignore[assignment]
18+
expression: str
19+
def set_expression(self, expression: str) -> None: ...
1920

2021
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: ...
22+
lexer_position: int
23+
lexer_value: str
24+
message: str
25+
def __init__(self, lexer_position: int, lexer_value: str, message: str, expression: str | None = ...) -> None: ...
2626

2727
class ArityError(ParseError):
28-
expected_arity: Any
29-
actual_arity: Any
30-
function_name: Any
31-
expression: Any
28+
expected_arity: int
29+
actual_arity: int
30+
function_name: str
3231
def __init__(self, expected, actual, name) -> None: ...
3332

3433
class VariadictArityError(ArityError): ...
3534

3635
class JMESPathTypeError(JMESPathError):
37-
function_name: Any
36+
function_name: str
3837
current_value: Any
39-
actual_type: Any
40-
expected_types: Any
41-
def __init__(self, function_name, current_value, actual_type, expected_types) -> None: ...
38+
actual_type: str
39+
expected_types: Sequence[str]
40+
def __init__(self, function_name: str, current_value: Any, actual_type: str, expected_types: Sequence[str]) -> None: ...
4241

4342
class EmptyExpressionError(JMESPathError):
4443
def __init__(self) -> None: ...

stubs/jmespath/jmespath/functions.pyi

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from collections.abc import Callable
1+
from collections.abc import Callable, Iterable
22
from typing import Any, TypeVar
33
from typing_extensions import NotRequired, TypedDict
44

@@ -18,4 +18,5 @@ class FunctionRegistry(type):
1818

1919
class Functions(metaclass=FunctionRegistry):
2020
FUNCTION_TABLE: Any
21-
def call_function(self, function_name, resolved_args): ...
21+
# resolved_args and return value are the *args and return of a function called by name
22+
def call_function(self, function_name: str, resolved_args: Iterable[Any]) -> Any: ...

0 commit comments

Comments
 (0)