Format: application/x-python-code
1 o
2
3 �hn, � @ sL d Z ddlZddlmZ ddlmZ ddlmZ ddlm Z ddl
4 mZ ddlm
5 Z
6 dd lmZ dd
7 lmZmZmZ ddlmZ ddlmZmZ dd
8 lmZmZ ddlmZ ddlmZm Z m!Z! e"� Z#G dd� de�Z$G dd� dee!�Z%G dd� de e%�Z&G dd� de�Z'G dd� dej(�Z)e� dd� �Z*dd� Z+dd� Z,e� d d!� �Z-dS )"z
9 Used only for REPL Completion.
10 � N)�Path)�get_cached_code_lines)�settings)�memoize_method)�compiled)�FileIO)�NameWrapper)�ValueSet�ValueWrapper� NO_VALUES)�ModuleValue)�inference_state_function_cache�inference_state_method_cache)�ALLOWED_GETITEM_TYPES�get_api_type)�to_stub)�CompiledContext�CompiledModuleContext�TreeContextMixinc s� e Zd ZdZ� fdd�Zdd� Zdd� Zeed�d d
11 � �Z e
12 fdd�Zed
13 d� �Z
14 dd� Zdd� Zdd� Zdd� Zdd� Z� ZS )�MixedObjecta�
15 A ``MixedObject`` is used in two ways:
16
17 1. It uses the default logic of ``parser.python.tree`` objects,
18 2. except for getattr calls and signatures. The names dicts are generated
19 in a fashion like ``CompiledValue``.
20
21 This combined logic makes it possible to provide more powerful REPL
22 completion. It allows side effects that are not noticable with the default
23 parser structure to still be completable.
24
25 The biggest difference from CompiledValue to MixedObject is that we are
26 generally dealing with Python code and not with C code. This will generate
27 fewer special cases, because we in Python you don't have the same freedoms
28 to modify the runtime.
29 c s t � �|� || _|j| _d S �N)�super�__init__�compiled_value�
30 access_handle)�selfr �
31 tree_value�� __class__� �Sc:\Users\shubh\Videos\agent\nova\Lib\site-packages\jedi/inference/compiled/mixed.pyr , s zMixedObject.__init__c o s � t | j| j| j�V d S r )�MixedObjectFilter�inference_stater �_wrapped_value�r �args�kwargsr r r �get_filters1 s �
32 �zMixedObject.get_filtersc C �
33 | j �� S r )r �get_signatures�r r r r r) 5 s
34 zMixedObject.get_signatures)�defaultc C s t | j�}|s
35 | j}|�|�S r )r r# �
36 py__call__)r � arguments�valuesr r r r, : s
37
38 zMixedObject.py__call__c C s |t u r | j�� S | j�|�S r )� _sentinelr �get_safe_value)r r+ r r r r0 B s
39 zMixedObject.get_safe_valuec C � | j jS r )r �
40 array_typer* r r r r2 H � zMixedObject.array_typec C r( r )r �get_key_valuesr* r r r r4 L �
41 zMixedObject.get_key_valuesc C s0 | j jjj}t|�tv r| j �|�S | j�|�S r )r r �access�_obj�typer �py__simple_getitem__r# )r �index�
42 python_objectr r r r9 O s z MixedObject.py__simple_getitem__c C r( r )r �negater* r r r r<