File tree Expand file tree Collapse file tree 2 files changed +11
-2
lines changed
Expand file tree Collapse file tree 2 files changed +11
-2
lines changed Original file line number Diff line number Diff line change 11from math import isfinite
2- from typing import Any
2+ from typing import Any , Union
33
44from ..error import GraphQLError
55from ..pyutils import inspect , is_finite , is_integer , FrozenDict
@@ -60,8 +60,15 @@ def serialize_int(output_value: Any) -> int:
6060 )
6161 return num
6262
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
6368
6469def coerce_int (input_value : Any ) -> int :
70+ if isinstance (input_value , str ):
71+ input_value = _try_convert_str_to_int (input_value )
6572 if not is_integer (input_value ):
6673 raise GraphQLError (
6774 "Int cannot represent non-integer value: " + inspect (input_value )
Original file line number Diff line number Diff line change 1212 GraphQLBoolean ,
1313 GraphQLID ,
1414)
15+ from graphql .type .scalars import coerce_int
1516
1617
1718def describe_type_system_specified_scalar_types ():
@@ -27,6 +28,7 @@ def _parse_value_raises(s, message):
2728 assert _parse_value (1 ) == 1
2829 assert _parse_value (0 ) == 0
2930 assert _parse_value (- 1 ) == - 1
31+ assert _parse_value ("123" ) == 123
3032
3133 _parse_value_raises (
3234 9876504321 ,
@@ -44,7 +46,7 @@ def _parse_value_raises(s, message):
4446 )
4547 _parse_value_raises (None , "Int cannot represent non-integer value: None" )
4648 _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 '" )
4850 _parse_value_raises (False , "Int cannot represent non-integer value: False" )
4951 _parse_value_raises (True , "Int cannot represent non-integer value: True" )
5052 _parse_value_raises ([1 ], "Int cannot represent non-integer value: [1]" )
You can’t perform that action at this time.
0 commit comments