Format: application/x-python-code
1 o
2
3 �h�* � @ s d Z ddlmZ ddlmZ ddlmZ ddlmZm Z m
4 Z
5 ddlmZm
6 Z
7 ddlmZmZ ddlmZ dd lmZ dd
8 lmZ ddlmZ ddlmZ dd
9 lmZ i dd�dd�dd�dd�dd�dd�dd�dd�dd�dd�dd�dd�dd �d!d"�d#d$�d%d&�d'd(�d)d*i�Zd+Ze� d,d-� �Zd.d/� Z e d0d1� �Z!d2d3� Z"G d4d5� d5e�Z#dXd7d8�Z$d9d:� Z%d;d<� Z&d=d>� Z'd?d@� Z(dAdB� Z)dCdD� Z*dEdF� Z+G dGdH� dHe
10 �Z,G dIdJ� dJe
11 e�Z-G dKdL� dLe
12 �Z.G dMdN� dNe
13 e�Z/G dOdP� dPe�Z0G dQdR� dRe�Z1G dSdT� dTe
14 �Z2G dUdV� dVe
15 �Z3dWS )Yz.
16 Module is used to infer Django model fields.
17 � )� Parameter)�debug)�inference_state_function_cache)�ValueSet�iterator_to_value_set�ValueWrapper)�
18 DictFilter�AttributeOverwrite)�NameWrapper�BaseTreeParamName)�EmptyCompiledName)�TreeInstance)�
19 ClassMixin)�GenericClass)�TupleGenericManager)�AbstractSignatureZIntegerField)N�intZBigIntegerFieldZPositiveIntegerFieldZSmallIntegerFieldZ CharField)N�strZ TextFieldZ
20 EmailFieldZGenericIPAddressFieldZURLFieldZ
21 FloatField)N�floatZBinaryField)N�bytesZBooleanField)N�boolZDecimalField)�decimal�DecimalZ TimeField)�datetime�timeZ
22 DurationField)r � timedeltaZ DateField)r �dateZ
23 DateTimeField)r r Z UUIDField)�uuid�UUID)�create�filter�exclude�update�getZ
24 get_or_createZupdate_or_createc C s | � d��d��� S )N)�django�db�models�query_utils�DeferredAttribute)�
25 import_module�py__getattribute__�execute_annotation)�inference_state� r- �Ic:\Users\shubh\Videos\agent\nova\Lib\site-packages\jedi/plugins/django.py�_get_deferred_attributes, s
26 �
27 �r/ c C sp z
28 t |�� \}}W n
29 ty Y d S w |st| �S |d u r#| j}n| �|f�}|�|�D ]}|�� S d S �N)�mapping�
30 py__name__�KeyErrorr/ Zbuiltins_moduler) r* �execute_with_values)r, �
31 field_name�field_tree_instance�is_instance�module_nameZattribute_name�module� attributer- r- r. �_infer_scalar_field3 s ��r; c c s� � t |t�rF|j�� }t|d�\}}|d u rH|d urJ|�� D ]-}|�� dkr>|�� }| �� }|� |�D ] }|�
32 � r<|V q3q|�
33 � rE|V qd S d S d S d S )N)NNr )�
34 isinstancer
35 �
36 _arguments�unpack�next�inferr2 Zget_safe_value�get_root_contextr* �is_class) �clsr6 Zargument_iterator�keyZlazy_values�valueZforeign_key_class_namer9 �vr- r- r. �_get_foreign_key_valuesE s( �
37
38 ����rG c
39 C s� | j }|�� }|D ]B}t||||�}|d ur| S |�� }|dk}|dv s(|rK|s0t|� S t| |�} |rEttd dd� | D ��� S | �� S q t �
40 d|j| �� � |S )NZManyToManyField)Z
41 ForeignKeyZ
42 OneToOneFieldc S s g | ]}t |d ��qS )ZRelatedManager)�_create_manager_for��.0rF r- r- r. �
43 <listcomp>h s
44 �z _infer_field.<locals>.<listcomp>z1django plugin: fail to infer `%s` from class `%s`)r, r@ r; r2 r/ rG r r r4 r Zdbg�string_name)
45 rC r5 r7 r, �resultr6 Zscalar_field�nameZis_many_to_many�valuesr- r- r. �_infer_fieldW s0 �
46 ��
47 �rP c �$ e Zd Z� fdd�Zdd� Z� ZS )�DjangoModelNamec s t � �|� || _|| _d S r0 )�super�__init__�_cls�_is_instance)�selfrC rN r7 �� __class__r- r. rT t s
48 zDjangoModelName.__init__c C s t | j| j| j�S r0 )rP rU Z
49 _wrapped_namerV �rW r- r- r. r@ y s zDjangoModelName.infer)�__name__�
50 __module__�__qualname__rT r@ �
51 __classcell__r- r- rX r. rR s s rR �BaseManagerc C sV | j �d��|�}|D ]}|�� r(tt| g�f�}t||��� D ]}| S qd S )N)r$ r% r&