/ lib / jedi / plugins / django.pyc
django.pyc
 1  o

 2  )��c�*�@sdZddlmZddlmZddlmZddlmZm	Z	m
 3  Z
 4  ddlmZm
Z
ddlmZmZddlmZdd	lmZdd
 5  lmZddlmZddlmZdd
lmZidd�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"Gd4d5�d5e�Z#dXd7d8�Z$d9d:�Z%d;d<�Z&d=d>�Z'd?d@�Z(dAdB�Z)dCdD�Z*dEdF�Z+GdGdH�dHe
 6  �Z,GdIdJ�dJe
e�Z-GdKdL�dLe
 7  �Z.GdMdN�dNe
e�Z/GdOdP�dPe�Z0GdQdR�dRe�Z1GdSdT�dTe
 8  �Z2GdUdV�dVe
 9  �Z3dWS)Yz.
10  Module is used to infer Django model fields.
11  �)�	Parameter)�debug)�inference_state_function_cache)�ValueSet�iterator_to_value_set�ValueWrapper)�
12  DictFilter�AttributeOverwrite)�NameWrapper�BaseTreeParamName)�EmptyCompiledName)�TreeInstance)�
13  ClassMixin)�GenericClass)�TupleGenericManager)�AbstractSignatureZIntegerField)N�intZBigIntegerFieldZPositiveIntegerFieldZSmallIntegerFieldZ	CharField)N�str�	TextFieldZ
14  EmailFieldZGenericIPAddressFieldZURLFieldZ
15  FloatField)N�floatZBinaryField)N�bytesZBooleanField)N�boolZDecimalField)�decimal�DecimalZ	TimeField)�datetime�timeZ
DurationField)r�	timedeltaZ	DateField)r�date�
DateTimeField)rrZ	UUIDField)�uuid�UUID)�create�filter�exclude�update�getZ
get_or_createZupdate_or_createcCs|�d��d���S)N)�django�db�models�query_utils�DeferredAttribute)�
import_module�py__getattribute__�execute_annotation)�inference_state�r/��C:\Users\Jacks.GUTTSPC\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\jedi\plugins\django.py�_get_deferred_attributes,s
16  �
17  �r1cCspz
18  t|��\}}Wn
19  tyYdSw|st|�S|dur#|j}n|�|f�}|�|�D]}|��SdS�N)�mapping�
20  py__name__�KeyErrorr1�builtins_moduler+r,�execute_with_values)r.�
21  field_name�field_tree_instance�is_instance�module_name�attribute_name�module�	attributer/r/r0�_infer_scalar_field3s��r?c	cs��t|t�rF|j��}t|d�\}}|durH|durJ|��D]-}|��dkr>|��}|��}|�	|�D]	}|�
22  �r<|Vq3q|�
23  �rE|VqdSdSdSdS)N)NNr)�
24  isinstancer
�
25  _arguments�unpack�next�inferr4�get_safe_value�get_root_contextr,�is_class)	�clsr9Zargument_iterator�key�lazy_values�valueZforeign_key_class_namer=�vr/r/r0�_get_foreign_key_valuesEs(�
26  
27  ����rMc
28  Cs�|j}|��}|D]B}t||||�}|dur|S|��}|dk}|dvs(|rK|s0t|�St||�}	|rEttddd�|	D���S|	��Sq	t	�
29  d|j|���|S)NZManyToManyField)Z
30  ForeignKeyZ
OneToOneFieldcSsg|]}t|d��qS)ZRelatedManager)�_create_manager_for��.0rLr/r/r0�
31  <listcomp>hs
32  �z _infer_field.<locals>.<listcomp>z1django plugin: fail to infer `%s` from class `%s`)r.rDr?r4r1rMrr"r7r�dbg�string_name)
33  rHr8r:r.�resultr9Zscalar_field�nameZis_many_to_many�valuesr/r/r0�_infer_fieldWs0�
34  ��
35  �rWc�$eZdZ�fdd�Zdd�Z�ZS)�DjangoModelNamecst��|�||_||_dSr2)�super�__init__�_cls�_is_instance)�selfrHrUr:��	__class__r/r0r[ts
36  zDjangoModelName.__init__cCst|j|j|j�Sr2)rWr\�
_wrapped_namer]�r^r/r/r0rDyszDjangoModelName.infer)�__name__�
37  __module__�__qualname__r[rD�
__classcell__r/r/r_r0rYssrY�BaseManagercCsV|j�d��|�}|D]}|��r(tt|g�f�}t||���D]}|SqdS)N)r&r'r(�manager)r.r+r,�is_class_mixinrrrr-)rHZmanager_cls�managers�m�generics_manager�cr/r/r0rN}s���rNcsHt�j�ddd��}��fdd�t|�D�}�r t�jd�|d<t|�S)NF)r:�include_metaclasses�include_type_when_classcs*i|]}|��D]
38  }|jt�|���qqSr/)rVrSrY)rP�filter_rU�rHr:r/r0�
39  <dictcomp>�s���z$_new_dict_filter.<locals>.<dictcomp>�objects)�list�get_filters�reversedrr.r)rHr:�filters�dctr/rqr0�_new_dict_filter�s��rycCs|��dko
|����dkS)NZ	ModelBasezdjango.db.models.base)r4rF)rKr/r/r0�is_django_model_base�s�rzc��fdd�}|S)Ncs.|D]}t|�rt||�gSq�|||�Sr2)rzry)rH�metaclassesr:�	metaclass��funcr/r0�wrapper�s
40  �z&get_metaclass_filters.<locals>.wrapperr/�rr�r/r~r0�get_metaclass_filters�sr�cr{)Ncs��|||�}|jtvrD|D]4����d|jfkrA�j��rA�j��dkrA|��}|��}t|�dkrAt	�fdd�|dD��Sq
|S|jdkr\|��r\|��dkr\t	d	d�|D��S|jd
41  krt|��rt|��dkrtt	dd�|D��S|S)
NZ
_BaseQuerySetzdjango.db.models.query�c3s�|]}t�|�VqdSr2)�QuerySetMethodWrapper)rP�model�rLr/r0�	<genexpr>�s��z7tree_name_to_values.<locals>.wrapper.<locals>.<genexpr>rrgzdjango.db.models.managercs��|]}t|�VqdSr2)�ManagerWrapper�rP�rr/r/r0r�����Fieldzdjango.db.models.fieldscsr�r2)�FieldWrapperr�r/r/r0r��r�)
42  rK�_FILTER_LIKE_METHODS�get_qualified_names�parent_context�	is_moduler4�	get_value�get_generics�lenr)r.�context�	tree_namerT�qs�genericsr~r�r0r��s,
43  ���
44  �z$tree_name_to_values.<locals>.wrapperr/r�r/r~r0�tree_name_to_values�sr�ccsB�t|dd���D]}|��D]}|jjdd�dkr|Vqq	dS)NF)r:T)�include_module_names)r&r'r(r)r*)ryrVrDrUr�)rHrUrKr/r/r0�_find_fields�s�����r�cCst|tt|��d�gS)N)�field_names)�DjangoModelSignaturertr�)rHr/r/r0�_get_signatures�sr�cr{)Ncs(|D]}t|�rt|�Sq�||�Sr2)rzr�)rHr|r}r~r/r0r��s
45  �
46  z)get_metaclass_signatures.<locals>.wrapperr/r�r/r~r0�get_metaclass_signatures�sr�c@�eZdZdd�ZdS)r�cC�tdd�|j�||�D��S)Ncsr�r2)�GenericManagerWrapper�rP�genericr/r/r0r���
47  ��
48  �z/ManagerWrapper.py__getitem__.<locals>.<genexpr>�r�_wrapped_value�
py__getitem__�r^�index_value_set�contextualized_noder/r/r0r���
49  ��zManagerWrapper.py__getitem__N�rcrdrer�r/r/r/r0r���r�c@seZdZdd�Zdd�ZdS)r�cCs|j�t|h�f��|j�Sr2)�class_value�
with_genericsr�
50  py__call__rA�r^�calling_instance�instancer�r/r/r0�py__get__on_class�s
51  
52  ��z'GenericManagerWrapper.py__get__on_classcCs|j�|�Sr2)r�r�)r^�generics_tupler/r/r0r��sz#GenericManagerWrapper.with_genericsN)rcrdrer�r�r/r/r/r0r��sr�c@r�)r�cCr�)Ncsr�r2)�GenericFieldWrapperr�r/r/r0r��r�z-FieldWrapper.py__getitem__.<locals>.<genexpr>r�r�r/r/r0r��r�zFieldWrapper.py__getitem__Nr�r/r/r/r0r��r�r�c@r�)r�cCs
53  t|h�Sr2)rr�r/r/r0r��s
54  z%GenericFieldWrapper.py__get__on_classN)rcrdrer�r/r/r/r0r��r�r�cs&eZdZ�fdd�Zddd�Z�ZS)r�c�t��|�||_dSr2)rZr[�_field_names)r^rKr�r_r/r0r[�
55  zDjangoModelSignature.__init__FcCsdd�|jD�S)NcSsg|]}t|��qSr/)�DjangoParamName)rPrUr/r/r0rQ	sz8DjangoModelSignature.get_param_names.<locals>.<listcomp>)r�)r^�
resolve_starsr/r/r0�get_param_namessz$DjangoModelSignature.get_param_names)F)rcrdrer[r�rfr/r/r_r0r�sr�cs,eZdZ�fdd�Zdd�Zdd�Z�ZS)r�cst��|j|j�||_dSr2)rZr[r�r��_field_name)r^r8r_r/r0r[
s
56  zDjangoParamName.__init__cCstjSr2)r�KEYWORD_ONLYrbr/r/r0�get_kindszDjangoParamName.get_kindcCs
57  |j��Sr2)r�rDrbr/r/r0rD�
58  zDjangoParamName.infer)rcrdrer[r�rDrfr/r/r_r0r�sr�crX)r�cr�r2�rZr[�
59  _model_cls�r^�methodZ	model_clsr_r/r0r[r�zQuerySetMethodWrapper.__init__cs t�fdd��j�||�D��S)Ncsh|]}t|�j��qSr/)�QuerySetBoundMethodWrapperr�rOrbr/r0�	<setcomp>s�z2QuerySetMethodWrapper.py__get__.<locals>.<setcomp>)rr��	py__get__)r^r�r�r/rbr0r�s�zQuerySetMethodWrapper.py__get__)rcrdrer[r�rfr/r/r_r0r��r�crX)r�cr�r2r�r�r_r/r0r[#r�z#QuerySetBoundMethodWrapper.__init__cCs
60  t|j�Sr2)r�r�rbr/r/r0�get_signatures'r�z)QuerySetBoundMethodWrapper.get_signatures)rcrdrer[r�rfr/r/r_r0r�"r�r�N)rg)4�__doc__�inspectr�jedir�jedi.inference.cacher�jedi.inference.base_valuerrr�jedi.inference.filtersrr	�jedi.inference.namesr
61  r�jedi.inference.compiled.valuer�jedi.inference.value.instancer
�jedi.inference.value.klassr�jedi.inference.gradual.baser�jedi.inference.gradual.genericsr�jedi.inference.signaturerr3r�r1r?rMrWrYrNryrzr�r�r�r�r�r�r�r�r�r�r�r�r�r/r/r/r0�<module>s���������	�
62  ���
������
63  
64  
65  
66  
67  		
68