Skip to content

Commit cf714ec

Browse files
committed
Simplify Undefined
1 parent 36a5bae commit cf714ec

File tree

1 file changed

+26
-26
lines changed

1 file changed

+26
-26
lines changed

graphql/execution/values.py

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def get_variable_values(schema, definition_asts, inputs):
2525
for def_ast in definition_asts:
2626
var_name = def_ast.variable.name.value
2727
var_type = type_from_ast(schema, def_ast.type)
28-
value = inputs.get(var_name, Undefined)
28+
value = inputs.get(var_name)
2929

3030
if not is_input_type(var_type):
3131
raise GraphQLError(
@@ -35,7 +35,7 @@ def get_variable_values(schema, definition_asts, inputs):
3535
),
3636
[def_ast]
3737
)
38-
elif value is Undefined or value is None:
38+
elif value is None:
3939
if def_ast.default_value is not None:
4040
values[var_name] = value_from_ast(def_ast.default_value, var_type)
4141
if isinstance(var_type, GraphQLNonNull):
@@ -57,7 +57,7 @@ def get_variable_values(schema, definition_asts, inputs):
5757
[def_ast]
5858
)
5959
coerced_value = coerce_value(var_type, value)
60-
if coerced_value is Undefined:
60+
if coerced_value is None:
6161
raise Exception('Should have reported error.')
6262

6363
values[var_name] = coerced_value
@@ -79,8 +79,8 @@ def get_argument_values(arg_defs, arg_asts, variables=None):
7979
result = {}
8080
for name, arg_def in arg_defs.items():
8181
arg_type = arg_def.type
82-
value_ast = arg_ast_map.get(name, Undefined)
83-
if not value_ast:
82+
value_ast = arg_ast_map.get(name)
83+
if name not in arg_ast_map:
8484
if arg_def.default_value is not Undefined:
8585
result[arg_def.out_name or name] = arg_def.default_value
8686
continue
@@ -92,7 +92,7 @@ def get_argument_values(arg_defs, arg_asts, variables=None):
9292
elif isinstance(value_ast.value, ast.Variable):
9393
variable_name = value_ast.value.name.value
9494
variable_value = variables.get(variable_name, Undefined)
95-
if variables and variable_value is not Undefined:
95+
if variables and variable_name in variables:
9696
result[arg_def.out_name or name] = variable_value
9797
elif arg_def.default_value is not Undefined:
9898
result[arg_def.out_name or name] = arg_def.default_value
@@ -104,21 +104,22 @@ def get_argument_values(arg_defs, arg_asts, variables=None):
104104
), arg_asts)
105105
continue
106106

107-
if value_ast:
107+
else:
108108
value_ast = value_ast.value
109109

110-
value = value_from_ast(
111-
value_ast,
112-
arg_type,
113-
variables
114-
)
115-
if value is Undefined:
116-
value = arg_def.default_value
117-
118-
if value is not Undefined:
119-
# We use out_name as the output name for the
120-
# dict if exists
121-
result[arg_def.out_name or name] = value
110+
value = value_from_ast(
111+
value_ast,
112+
arg_type,
113+
variables
114+
)
115+
if value is Undefined:
116+
if arg_def.default_value is not Undefined:
117+
value = arg_def.default_value
118+
result[arg_def.out_name or name] = value
119+
else:
120+
# We use out_name as the output name for the
121+
# dict if exists
122+
result[arg_def.out_name or name] = value
122123

123124
return result
124125

@@ -148,13 +149,12 @@ def coerce_value(type, value):
148149
fields = type.fields
149150
obj = {}
150151
for field_name, field in fields.items():
151-
field_value = coerce_value(field.type, value.get(field_name, Undefined))
152-
if field_value is Undefined:
153-
field_value = field.default_value
154-
155-
if field_value is not Undefined:
156-
# We use out_name as the output name for the
157-
# dict if exists
152+
if field_name not in value:
153+
if field.default_value is not Undefined:
154+
field_value = field.default_value
155+
obj[field.out_name or field_name] = field_value
156+
else:
157+
field_value = coerce_value(field.type, value.get(field_name))
158158
obj[field.out_name or field_name] = field_value
159159

160160
return type.create_container(obj)

0 commit comments

Comments
 (0)