Format: application/x-python-code
⬇ Download File (11.3 KB)
   1  o
   2  
   3  �h�*�@sdZddlmZddlmZddlmZddlmZm	Z	m
   4  Z
   5  ddlmZm
   6  Z
   7  ddlmZmZddlmZdd	lmZdd
   8  lmZddlmZddlmZdd
   9  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
  10  �Z,GdIdJ�dJe
  11  e�Z-GdKdL�dLe
  12  �Z.GdMdN�dNe
  13  e�Z/GdOdP�dPe�Z0GdQdR�dRe�Z1GdSdT�dTe
  14  �Z2GdUdV�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)�AbstractSignatureZIntegerField)N�intZBigIntegerFieldZPositiveIntegerFieldZSmallIntegerFieldZ	CharField)N�strZ	TextFieldZ
  20  EmailFieldZGenericIPAddressFieldZURLFieldZ
  21  FloatField)N�floatZBinaryField)N�bytesZBooleanField)N�boolZDecimalField)�decimal�DecimalZ	TimeField)�datetime�timeZ
  22  DurationField)r�	timedeltaZ	DateField)r�dateZ
  23  DateTimeField)rrZ	UUIDField)�uuid�UUID)�create�filter�exclude�update�getZ
  24  get_or_createZupdate_or_createcCs|�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/cCspz
  28  t|��\}}Wn
  29  tyYdSw|st|�S|dur#|j}n|�|f�}|�|�D]}|��SdS�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_field3s��r;c	cs��t|t�rF|j��}t|d�\}}|durH|durJ|��D]-}|��dkr>|��}|��}|�	|�D]	}|�
  32  �r<|Vq3q|�
  33  �rE|VqdSdSdSdS)N)NNr)�
  34  isinstancer
  35  �
  36  _arguments�unpack�next�inferr2Zget_safe_value�get_root_contextr*�is_class)	�clsr6Zargument_iterator�keyZlazy_values�valueZforeign_key_class_namer9�vr-r-r.�_get_foreign_key_valuesEs(�
  37  
  38  ����rGc
  39  Cs�|j}|��}|D]B}t||||�}|dur|S|��}|dk}|dvs(|rK|s0t|�St||�}	|rEttddd�|	D���S|	��Sq	t	�
  40  d|j|���|S)NZManyToManyField)Z
  41  ForeignKeyZ
  42  OneToOneFieldcSsg|]}t|d��qS)ZRelatedManager)�_create_manager_for��.0rFr-r-r.�
  43  <listcomp>hs
  44  �z _infer_field.<locals>.<listcomp>z1django plugin: fail to infer `%s` from class `%s`)r,r@r;r2r/rGrr r4rZdbg�string_name)
  45  rCr5r7r,�resultr6Zscalar_field�nameZis_many_to_many�valuesr-r-r.�_infer_fieldWs0�
  46  ��
  47  �rPc�$eZdZ�fdd�Zdd�Z�ZS)�DjangoModelNamecst��|�||_||_dSr0)�super�__init__�_cls�_is_instance)�selfrCrNr7��	__class__r-r.rTts
  48  zDjangoModelName.__init__cCst|j|j|j�Sr0)rPrUZ
  49  _wrapped_namerV�rWr-r-r.r@yszDjangoModelName.infer)�__name__�
  50  __module__�__qualname__rTr@�
  51  __classcell__r-r-rXr.rRssrR�BaseManagercCsV|j�d��|�}|D]}|��r(tt|g�f�}t||���D]}|SqdS)N)r$r%r&�manager)r,r)r*Zis_class_mixinrrrr+)rCZmanager_clsZmanagers�mZgenerics_manager�cr-r-r.rH}s���rHcsHt�j�ddd��}��fdd�t|�D�}�r t�jd�|d<t|�S)NF)r7Zinclude_metaclassesZinclude_type_when_classcs*i|]}|��D]
  52  }|jt�|���qqSr-)rOrLrR)rJ�filter_rN�rCr7r-r.�
  53  <dictcomp>�s���z$_new_dict_filter.<locals>.<dictcomp>�objects)�listZget_filters�reversedrr,r)rCr7�filters�dctr-rdr.�_new_dict_filter�s��rkcCs|��dko
  54  |����dkS)NZ	ModelBasezdjango.db.models.base)r2rA)rEr-r-r.�is_django_model_base�s�rlc��fdd�}|S)Ncs.|D]}t|�rt||�gSq�|||�Sr0)rlrk)rC�metaclassesr7�	metaclass��funcr-r.�wrapper�s
  55  �z&get_metaclass_filters.<locals>.wrapperr-�rqrrr-rpr.�get_metaclass_filters�srtcrm)Ncs��|||�}|jtvrD|D]4����d|jfkrA�j��rA�j��dkrA|��}|��}t|�dkrAt	�fdd�|dD��Sq
  56  |S|jdkr\|��r\|��dkr\t	d	d�|D��S|jd
  57  krt|��rt|��dkrtt	dd�|D��S|S)
  58  NZ
  59  _BaseQuerySetzdjango.db.models.query�c3s�|]}t�|�VqdSr0)�QuerySetMethodWrapper)rJ�model�rFr-r.�	<genexpr>�s��z7tree_name_to_values.<locals>.wrapper.<locals>.<genexpr>rr_zdjango.db.models.managercs��|]}t|�VqdSr0)�ManagerWrapper�rJ�rr-r-r.ry����Fieldzdjango.db.models.fieldscsrzr0)�FieldWrapperr|r-r-r.ry�r~)
  60  rE�_FILTER_LIKE_METHODS�get_qualified_names�parent_contextZ	is_moduler2�	get_valueZget_generics�lenr)r,�context�	tree_namerM�qsZgenericsrprxr.rr�s,
  61  ���
  62  �z$tree_name_to_values.<locals>.wrapperr-rsr-rpr.�tree_name_to_values�sr�ccsB�t|dd���D]}|��D]}|jjdd�dkr|Vqq	dS)NF)r7T)Zinclude_module_names)r$r%r&r'r()rkrOr@rNr�)rCrNrEr-r-r.�_find_fields�s�����r�cCst|tt|��d�gS)N)�field_names)�DjangoModelSignaturergr�)rCr-r-r.�_get_signatures�sr�crm)Ncs(|D]}t|�rt|�Sq�||�Sr0)rlr�)rCrnrorpr-r.rr�s
  63  �
  64  z)get_metaclass_signatures.<locals>.wrapperr-rsr-rpr.�get_metaclass_signatures�sr�c@�eZdZdd�ZdS)r{cC�tdd�|j�||�D��S)Ncsrzr0)�GenericManagerWrapper�rJZgenericr-r-r.ry��
  65  ��
  66  �z/ManagerWrapper.py__getitem__.<locals>.<genexpr>�r�_wrapped_value�
  67  py__getitem__�rWZindex_value_setZcontextualized_noder-r-r.r���
  68  ��zManagerWrapper.py__getitem__N�r[r\r]r�r-r-r-r.r{��r{c@seZdZdd�Zdd�ZdS)r�cCs|j�t|h�f��|j�Sr0)�class_value�
  69  with_genericsrZ
  70  py__call__r=�rWZcalling_instance�instancer�r-r-r.�py__get__on_class�s
  71  
  72  ��z'GenericManagerWrapper.py__get__on_classcCs|j�|�Sr0)r�r�)rWZgenerics_tupler-r-r.r��sz#GenericManagerWrapper.with_genericsN)r[r\r]r�r�r-r-r-r.r��sr�c@r�)r�cCr�)Ncsrzr0)�GenericFieldWrapperr�r-r-r.ry�r�z-FieldWrapper.py__getitem__.<locals>.<genexpr>r�r�r-r-r.r��r�zFieldWrapper.py__getitem__Nr�r-r-r-r.r��r�r�c@r�)r�cCs
  73  t|h�Sr0)rr�r-r-r.r��s
  74  z%GenericFieldWrapper.py__get__on_classN)r[r\r]r�r-r-r-r.r��r�r�cs&eZdZ�fdd�Zddd�Z�ZS)r�c�t��|�||_dSr0)rSrT�_field_names)rWrEr�rXr-r.rT�
  75  zDjangoModelSignature.__init__FcCsdd�|jD�S)NcSsg|]}t|��qSr-)�DjangoParamName)rJrNr-r-r.rK	sz8DjangoModelSignature.get_param_names.<locals>.<listcomp>)r�)rWZ
  76  resolve_starsr-r-r.�get_param_namessz$DjangoModelSignature.get_param_names)F)r[r\r]rTr�r^r-r-rXr.r�sr�cs,eZdZ�fdd�Zdd�Zdd�Z�ZS)r�cst��|j|j�||_dSr0)rSrTr�r��_field_name)rWr5rXr-r.rT
  77  s
  78  zDjangoParamName.__init__cCstjSr0)r�KEYWORD_ONLYrZr-r-r.�get_kindszDjangoParamName.get_kindcCs
  79  |j��Sr0)r�r@rZr-r-r.r@�
  80  zDjangoParamName.infer)r[r\r]rTr�r@r^r-r-rXr.r�sr�crQ)rvcr�r0�rSrT�
  81  _model_cls�rW�methodZ	model_clsrXr-r.rTr�zQuerySetMethodWrapper.__init__cs t�fdd��j�||�D��S)Ncsh|]}t|�j��qSr-)�QuerySetBoundMethodWrapperr�rIrZr-r.�	<setcomp>s�z2QuerySetMethodWrapper.py__get__.<locals>.<setcomp>)rr��	py__get__)rWr�r�r-rZr.r�s�zQuerySetMethodWrapper.py__get__)r[r\r]rTr�r^r-r-rXr.rv�rvcrQ)r�cr�r0r�r�rXr-r.rT#r�z#QuerySetBoundMethodWrapper.__init__cCs
  82  t|j�Sr0)r�r�rZr-r-r.�get_signatures'r�z)QuerySetBoundMethodWrapper.get_signatures)r[r\r]rTr�r^r-r-rXr.r�"r�r�N)r_)4�__doc__�inspectrZjedirZjedi.inference.cacherZjedi.inference.base_valuerrrZjedi.inference.filtersrr	Zjedi.inference.namesr
  83  rZjedi.inference.compiled.valuerZjedi.inference.value.instancer
  84  Zjedi.inference.value.klassrZjedi.inference.gradual.baserZjedi.inference.gradual.genericsrZjedi.inference.signaturerr1r�r/r;rGrPrRrHrkrlrtr�r�r�r�r{r�r�r�r�r�rvr�r-r-r-r.�<module>s���������	�
  85  ���
  86  ������
  87  
  88  
  89  
  90  
  91  		
  92  		
  93