1
1
import re
2
- from typing import Any , Iterable , List , Mapping , Optional , cast
2
+ from typing import Any , Iterable , Mapping , Optional , cast
3
3
4
4
from ..language import (
5
5
BooleanValueNode ,
@@ -76,8 +76,8 @@ def ast_from_value(value: Any, type_: GraphQLInputType) -> Optional[ValueNode]:
76
76
type_ = cast (GraphQLList , type_ )
77
77
item_type = type_ .of_type
78
78
if isinstance (value , Iterable ) and not isinstance (value , str ):
79
- value_nodes = [ ast_from_value (item , item_type ) for item in value ]
80
- value_nodes = [ item_node for item_node in value_nodes if item_node ]
79
+ maybe_value_nodes = ( ast_from_value (item , item_type ) for item in value )
80
+ value_nodes = filter ( None , maybe_value_nodes )
81
81
return ListValueNode (values = FrozenList (value_nodes ))
82
82
return ast_from_value (value , item_type )
83
83
@@ -87,17 +87,16 @@ def ast_from_value(value: Any, type_: GraphQLInputType) -> Optional[ValueNode]:
87
87
if value is None or not isinstance (value , Mapping ):
88
88
return None
89
89
type_ = cast (GraphQLInputObjectType , type_ )
90
- field_nodes : List [ObjectFieldNode ] = []
91
- append_node = field_nodes .append
92
- for field_name , field in type_ .fields .items ():
93
- if field_name in value :
94
- field_value = ast_from_value (value [field_name ], field .type )
95
- if field_value :
96
- append_node (
97
- ObjectFieldNode (
98
- name = NameNode (value = field_name ), value = field_value
99
- )
100
- )
90
+ field_items = (
91
+ (field_name , ast_from_value (value [field_name ], field .type ))
92
+ for field_name , field in type_ .fields .items ()
93
+ if field_name in value
94
+ )
95
+ field_nodes = (
96
+ ObjectFieldNode (name = NameNode (value = field_name ), value = field_value )
97
+ for field_name , field_value in field_items
98
+ if field_value
99
+ )
101
100
return ObjectValueNode (fields = FrozenList (field_nodes ))
102
101
103
102
if is_leaf_type (type_ ):
0 commit comments