Skip to content

Commit d7d2973

Browse files
committed
return-original-value
1 parent 48971a5 commit d7d2973

1 file changed

Lines changed: 1 addition & 43 deletions

File tree

IPython/core/guarded_eval.py

Lines changed: 1 addition & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -663,7 +663,7 @@ def eval_node(node: Union[ast.AST, None], context: EvaluationContext):
663663
return_type, context
664664
)
665665
else:
666-
inferred_duck_object = _get_duck_from_return_value(node, context)
666+
inferred_duck_object = _infer_return_value(node, context)
667667
context.transient_locals[node.name] = inferred_duck_object
668668

669669
return None
@@ -887,48 +887,6 @@ def _infer_return_value(node: ast.FunctionDef, context: EvaluationContext):
887887
return None
888888

889889

890-
def _get_duck_from_return_value(node: ast.FunctionDef, context: EvaluationContext):
891-
"""Infer the 'duck type' from the first valid return value."""
892-
try:
893-
return_value = _infer_return_value(node, context)
894-
if return_value is not None and return_value is not NOT_EVALUATED:
895-
duck = _create_duck_from_value(return_value)
896-
return duck
897-
except Exception:
898-
pass
899-
return None
900-
901-
902-
def _create_duck_from_value(value):
903-
"""Create a Duck object from an actual runtime value."""
904-
if value is None or value is NOT_EVALUATED:
905-
return None
906-
value_type = type(value)
907-
if isinstance(value, dict):
908-
return _Duck(
909-
attributes=dict.fromkeys(dir(dict())), items=value if value else {}
910-
)
911-
elif isinstance(value, list):
912-
element_duck = None
913-
if value:
914-
element_duck = _create_duck_from_value(value[0])
915-
return _Duck(
916-
attributes=dict.fromkeys(dir(list())),
917-
items=_GetItemDuck(lambda: element_duck),
918-
)
919-
elif isinstance(value, set):
920-
return _Duck(attributes=dict.fromkeys(dir(set())))
921-
elif isinstance(value, tuple):
922-
return value
923-
elif isinstance(value, (str, int, float, bool, bytes)):
924-
return _Duck(attributes=dict.fromkeys(dir(value_type())))
925-
else:
926-
try:
927-
return _create_duck_for_heap_type(value_type)
928-
except Exception:
929-
return _Duck(attributes=dict.fromkeys(dir(value)))
930-
931-
932890
def _eval_return_type(func: Callable, node: ast.Call, context: EvaluationContext):
933891
"""Evaluate return type of a given callable function.
934892

0 commit comments

Comments
 (0)