File tree 2 files changed +11
-2
lines changed
2 files changed +11
-2
lines changed Original file line number Diff line number Diff line change 1
1
from math import isfinite
2
- from typing import Any
2
+ from typing import Any , Union
3
3
4
4
from ..error import GraphQLError
5
5
from ..pyutils import inspect , is_finite , is_integer , FrozenDict
@@ -60,8 +60,15 @@ def serialize_int(output_value: Any) -> int:
60
60
)
61
61
return num
62
62
63
+ def _try_convert_str_to_int (s : str ) -> Union [str , int ]:
64
+ try :
65
+ return int (s )
66
+ except (ValueError , TypeError ):
67
+ return s
63
68
64
69
def coerce_int (input_value : Any ) -> int :
70
+ if isinstance (input_value , str ):
71
+ input_value = _try_convert_str_to_int (input_value )
65
72
if not is_integer (input_value ):
66
73
raise GraphQLError (
67
74
"Int cannot represent non-integer value: " + inspect (input_value )
Original file line number Diff line number Diff line change 12
12
GraphQLBoolean ,
13
13
GraphQLID ,
14
14
)
15
+ from graphql .type .scalars import coerce_int
15
16
16
17
17
18
def describe_type_system_specified_scalar_types ():
@@ -27,6 +28,7 @@ def _parse_value_raises(s, message):
27
28
assert _parse_value (1 ) == 1
28
29
assert _parse_value (0 ) == 0
29
30
assert _parse_value (- 1 ) == - 1
31
+ assert _parse_value ("123" ) == 123
30
32
31
33
_parse_value_raises (
32
34
9876504321 ,
@@ -44,7 +46,7 @@ def _parse_value_raises(s, message):
44
46
)
45
47
_parse_value_raises (None , "Int cannot represent non-integer value: None" )
46
48
_parse_value_raises ("" , "Int cannot represent non-integer value: ''" )
47
- _parse_value_raises ("123 " , "Int cannot represent non-integer value: '123 '" )
49
+ _parse_value_raises ("abc " , "Int cannot represent non-integer value: 'abc '" )
48
50
_parse_value_raises (False , "Int cannot represent non-integer value: False" )
49
51
_parse_value_raises (True , "Int cannot represent non-integer value: True" )
50
52
_parse_value_raises ([1 ], "Int cannot represent non-integer value: [1]" )
You can’t perform that action at this time.
0 commit comments