← Back
Editing: dynamic_params.cpython-311.pyc
� p�{c� � �$ � d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z ddl mZ ddlm Z dd lmZ dd lmZ ddlmZmZ ddlmZ dd lmZ dZd� Zej ed� � � � � Z ed�� � ed� � � � � Zd� Zd� Zd� Z dS )a� One of the really important features of |jedi| is to have an option to understand code like this:: def foo(bar): bar. # completion here foo(1) There's no doubt wheter bar is an ``int`` or not, but if there's also a call like ``foo('str')``, what would happen? Well, we'll just show both. Because that's what a human would expect. It works as follows: - |Jedi| sees a param - search for function calls named ``foo`` - execute these calls and check the input. � )�settings)�debug)�get_parent_scope)�inference_state_method_cache)� TreeArguments)�get_executed_param_names)�is_stdlib_path)�to_list)�instance)�ValueSet� NO_VALUES)�#get_module_contexts_containing_name)� recursion� c � � � � fd�}|S )Nc �( �� | j }t j || j � � 5 }|rN|xj dz c_ �| |� � |xj dz c_ cd d d � � S # |xj dz c_ w xY wt cd d d � � S # 1 swxY w Y d S )N� )�inference_stater �execution_allowed� tree_node�dynamic_params_depthr )�function_value�param_index�inf�allowed�funcs ��?/usr/lib/python3/dist-packages/jedi/inference/dynamic_params.py�wrapperz"_avoid_recursions.<locals>.wrapper&