403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.85
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/django/db/models/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/django/db/models/__pycache__/query_utils.cpython-311.pyc
�

48zj�1��L�dZddlZddlZddlZddlZddlmZddlmZm	Z	ddl
mZddlm
Z
ddlmZedd	��ZGd
�de��ZGd�d
ee���Zd�ZGd�de
j��ZGd�d��ZGd�d��Zdd�Zd�Zd�ZGd�d��ZdS)z�
Various data structures used in query construction.

Factored out from django.db.models.query to avoid making the main module very
large and/or so that they can be used by other modules without getting into
circular import difficulties.
�N)�
namedtuple��FieldDoesNotExist�
FieldError)�
LOOKUP_SEP)�tree)�RemovedInDjango40Warning�PathInfozGfrom_opts to_opts target_fields join_field m2m direct filtered_relationc�D��eZdZed���Zd�Z�fd�Z�fd�Z�xZS)�InvalidQueryTypec��ttfS�Nr��selfs �>/usr/lib/python3/dist-packages/django/db/models/query_utils.py�_subclasseszInvalidQueryType._subclassess
��!�:�.�.�c�>�tjdtd���dS)Nz\The InvalidQuery exception class is deprecated. Use FieldDoesNotExist or FieldError instead.�)�category�
stacklevel)�warnings�warnr	rs r�__warnzInvalidQueryType.__warns0���
�
7�-��		
�	
�	
�	
�	
�	
rc���|���t||j��p t���|��Sr)�_InvalidQueryType__warn�
isinstancer�super�__instancecheck__)r�instance�	__class__s  �rrz"InvalidQueryType.__instancecheck__&�;������
�
�
��(�D�$4�5�5�\����9R�9R�S[�9\�9\�\rc���|���t||j��p t���|��Sr)r�
issubclassrr�__subclasscheck__)r�subclassr!s  �rr%z"InvalidQueryType.__subclasscheck__*r"r)	�__name__�
__module__�__qualname__�propertyrrrr%�
__classcell__�r!s@rrrs��������
�/�/��X�/�
�
�
�]�]�]�]�]�]�]�]�]�]�]�]�]�]rrc��eZdZdS)�InvalidQueryN)r'r(r)�rrr.r./s�������Drr.)�	metaclassc#�jK�|V�|���D]}t|��Ed{V���dSr)�__subclasses__�
subclasses��clsr&s  rr3r33sW����

�I�I�I��&�&�(�(�(�(���h�'�'�'�'�'�'�'�'�'�'�(�(rc�j��eZdZdZdZdZeZdZdeefZddd��fd�
Z	d	�Z
d
�Zd�Zd�Z
dd
�Zd�Z�xZS)�Qze
    Encapsulate filters as objects that can then be combined logically (using
    `&` and `|`).
    �AND�ORTNF)�
_connector�_negatedc�&��||jvr?d�d�|jdd�D����}td|�d����t���g|�t|������||���dS)Nz, c3�K�|]}|�V��dSrr/)�.0�conns  r�	<genexpr>zQ.__init__.<locals>.<genexpr>Gs$����'T�'T��4��'T�'T�'T�'T�'T�'Tr�z_connector must be one of z
, or None.)�children�	connector�negated)�
connectors�join�
ValueErrorr�__init__�sorted�items)rr:r;�args�kwargs�connector_reprsr!s      �rrHz
Q.__init__Es�����T�_�,�,�"�i�i�'T�'T���PQ�PR�PR�@S�'T�'T�'T�T�T�O��U�/�U�U�U�V�V�V�
�����"B�D�"B�6�&�,�,�.�.�+A�+A�"B�j�bj��k�k�k�k�krc��t|t��s"t|dd��dust|���|s8t	|d��r|���ntj|��St|t��r/|s-|���\}}}t|��|i|��St|����}||_|�	||��|�	||��|S)N�conditionalFT�copy)
rr7�getattr�	TypeError�hasattrrP�deconstruct�typerC�add)r�otherr?�_rKrL�objs       r�_combinez
Q._combineKs����%��#�#�	#�w�u�m�U�'K�'K�t�'S�'S��E�"�"�"��	/�#*�5�&�#9�#9�O�5�:�:�<�<�<�t�y��?O�?O�O�
��q�
!�
!�	/�%�	/�"�.�.�0�0�O�A�t�V��4��:�:�t�.�v�.�.�.��d�4�j�j�l�l����
�����d��������t�����
rc�8�|�||j��Sr)rZr9�rrWs  r�__or__zQ.__or__[s���}�}�U�D�G�,�,�,rc�8�|�||j��Sr)rZr8r\s  r�__and__z	Q.__and__^s���}�}�U�D�H�-�-�-rc��t|����}|�||j��|���|Sr)rUrVr8�negate)rrYs  r�
__invert__zQ.__invert__as;���d�4�j�j�l�l������d�h�����
�
�����
rc�j�|�|||dd���\}}|�|��|S)NF)�allow_joins�
split_subq�check_filterable)�_add_q�
promote_joins)r�queryrd�reuse�	summarize�for_save�clause�joinss        r�resolve_expressionzQ.resolve_expressiongsG������%�[�U�"�%�
�
�
���	���E�"�"�"��
rc��|jj�d|jj��}|�d��r|�dd��}t|j��}i}|j|jkr
|j|d<|j	rd|d<|||fS)N�.zdjango.db.models.query_utilszdjango.db.modelsr:Tr;)
r!r(r'�
startswith�replace�tuplerBrC�defaultrD)r�pathrKrLs    rrTz
Q.deconstructqs����.�3�3�3�T�^�5L�5L�M���?�?�9�:�:�	T��<�<� >�@R�S�S�D��T�]�#�#�����>�T�\�)�)�#'�>�F�<� ��<�	&�!%�F�:���T�6�!�!r)NTNFF)r'r(r)�__doc__r8r9rurOrErHrZr]r_rbrorTr+r,s@rr7r79s����������
�C�	
�B��G��K���R��J�)-��l�l�l�l�l�l�l���� -�-�-�.�.�.��������
"�
"�
"�
"�
"�
"�
"rr7c�&�eZdZdZd�Zdd�Zd�ZdS)�DeferredAttributez�
    A wrapper for a deferred-loading field. When the value is read from this
    object the first time, the query is executed.
    c��||_dSr)�field)rr{s  rrHzDeferredAttribute.__init__�s
����
�
�
rNc��|�|S|j}|jj}||vr4|�|��}|�|�|g���n|||<||S)zx
        Retrieve and caches the value from the datastore on the first lookup.
        Return the cached value.
        N)�fields)�__dict__r{�attname�_check_parent_chain�refresh_from_db)rr r5�data�
field_name�vals      r�__get__zDeferredAttribute.__get__�sw��
���K�� ���Z�'�
��T�!�!��*�*�8�4�4�C��{��(�(���(�=�=�=�=�#&��Z� ��J��rc��|j}|�|jj��}|jjr |j|krt||j��SdS)z�
        Check if the field value can be fetched from a parent field already
        loaded in the instance. This can be done if the to-be fetched
        field is a primary key field.
        N)�_meta�get_ancestor_linkr{�model�primary_keyrQr)rr �opts�
link_fields    rr�z%DeferredAttribute._check_parent_chain�sT���~���+�+�D�J�,<�=�=�
��:�!�	9�d�j�J�&>�&>��8�Z�%7�8�8�8��trr)r'r(r)rwrHr�r�r/rrryry~sP����������� � � � �&
�
�
�
�
rryc���eZdZed���Zeejd���d�����Zd�Zd�Z	e
d���Zed���Zedd	���Z
edd
���ZdS)�RegisterLookupMixinc�R�|����|d��Sr)�get_lookups�get)r5�lookup_names  r�_get_lookupzRegisterLookupMixin._get_lookup�s"����� � �$�$�[�$�7�7�7rN)�maxsizec�h�d�tj|��D��}|�|��S)Nc�D�g|]}|j�di����S)�
class_lookups)r~r�)r>�parents  r�
<listcomp>z3RegisterLookupMixin.get_lookups.<locals>.<listcomp>�s*��d�d�d�f���,�,�_�b�A�A�d�d�dr)�inspect�getmro�merge_dicts)r5r�s  rr�zRegisterLookupMixin.get_lookups�s7��e�d�PW�P^�_b�Pc�Pc�d�d�d�
����}�-�-�-rc��ddlm}|�|��}|�*t|d��r|j�|��S|�t
||��sdS|S)Nr)�Lookup�output_field)�django.db.models.lookupsr�r�rSr��
get_lookupr$)rr�r��founds    rr�zRegisterLookupMixin.get_lookup�sp��3�3�3�3�3�3�� � ��-�-���=�W�T�>�:�:�=��$�/�/��<�<�<���Z��v�%>�%>���4��rc��ddlm}|�|��}|�*t|d��r|j�|��S|�t
||��sdS|S)Nr)�	Transformr�)r�r�r�rSr��
get_transformr$)rr�r�r�s    rr�z!RegisterLookupMixin.get_transform�sp��6�6�6�6�6�6�� � ��-�-���=�W�T�>�:�:�=��$�2�2�;�?�?�?���Z��y�%A�%A���4��rc�X�i}t|��D]}|�|���|S)z�
        Merge dicts in reverse to preference the order of the original list. e.g.,
        merge_dicts([a, b]) will preference the keys in 'a' over those in 'b'.
        )�reversed�update)�dicts�merged�ds   rr�zRegisterLookupMixin.merge_dicts�s8�����%���	�	�A��M�M�!������
rc�\�t|��D]}|j����dSr)r3r��cache_clearr4s  r�_clear_cached_lookupsz)RegisterLookupMixin._clear_cached_lookups�s9��"�3���	/�	/�H�� �,�,�.�.�.�.�	/�	/rc�t�|�|j}d|jvri|_||j|<|���|S)Nr�)r�r~r�r��r5�lookupr�s   r�register_lookupz#RegisterLookupMixin.register_lookup�sI���� �,�K��#�,�.�.� "�C��)/���+�&��!�!�#�#�#��
rc�(�|�|j}|j|=dS)zn
        Remove given lookup from cls lookups. For use in tests only as it's
        not thread-safe.
        N)r�r�r�s   r�_unregister_lookupz&RegisterLookupMixin._unregister_lookup�s#���� �,�K���k�*�*�*rr)r'r(r)�classmethodr��	functools�	lru_cacher�r�r��staticmethodr�r�r�r�r/rrr�r��s��������8�8��[�8���Y���&�&�&�.�.�'�&��[�.�����������\���/�/��[�/������[���+�+�+��[�+�+�+rr�Fc�$�|jsdS|jjr|sdS|r'|r|���|vrdS|s|j|vrdS|s	|jrdS|r@|j|vr7|r5|j|vr,d|jjj�d|j�d�}t|���dS)au
    Return True if this field should be used to descend deeper for
    select_related() purposes. Used by both the query construction code
    (sql.query.fill_related_selections()) and the model instance creation code
    (query.get_klass_info()).

    Arguments:
     * field - the field to be checked
     * restricted - a boolean field, indicating if the field list has been
       manually restricted using a requested clause)
     * requested - The select_related() dictionary.
     * load_fields - the set of fields to be loaded on this model
     * reverse - boolean, True if we are checking a reverse select related
    FzField rqzM cannot be both deferred and traversed using select_related at the same time.T)
�remote_field�parent_link�related_query_name�name�nullrr�r��object_namer)r{�
restricted�	requested�load_fields�reverse�msgs      r�select_related_descendr��s�������u���%��g���u����	�u�/�/�1�1��B�B��5��	�5�:�Y�6�6��5���%�*���u��&��=��+�+��
&�e�j�I�5�5�5��[�&�2�2�2�E�J�J�J�@��!��o�o�%��4rc���tdt|��dz��D]>}tj|d|���}||vr||r||||d�fcS�?dS)z�
    Check if the lookup_parts contains references to the given annotations set.
    Because the LOOKUP_SEP is contained in the default annotation names, check
    each prefix of the lookup_parts for a match.
    rArN)Fr/)�range�lenrrF)�lookup_parts�annotations�n�level_n_lookups    r�refs_expressionr�s~���1�c�,�'�'�!�+�
,�
,�A�A��#���a��c�):�;�;���[�(�(�[��-H�(��~�.��Q�R�R�0@�@�@�@�@���9rc�p���fd�}||��p%t|dd��o||jj��S)z�
    Check that self.model is compatible with target_opts. Compatibility
    is OK if:
      1) model and opts match (where proxy inheritance is removed)
      2) model is parent of opts' model or the other way around
    c����jj|jkp5|j�j���vp�|���vSr)r��concrete_model�get_parent_list)r�r�s �r�checkz-check_rel_lookup_compatibility.<locals>.check"sO����K�&�$�*=�=�
,���5�;�#>�#>�#@�#@�@�
,��T�)�)�+�+�+�	
rr�F)rQr�r�)r��target_optsr{r�s`   r�check_rel_lookup_compatibilityr�sY���
�
�
�
�
� 	��k���	L�	��
�u�	-�	-�	J�%�%���8I�2J�2J�rc�F�eZdZdZe��d�d�Zd�Zd�Zd�Zd�Z	dS)	�FilteredRelationz7Specify custom filtering in the ON clause of SQL joins.��	conditionc��|std���||_d|_t|t��std���||_g|_dS)Nzrelation_name cannot be empty.z*condition argument must be a Q() instance.)rG�
relation_name�aliasrr7r�rv)rr�r�s   rrHzFilteredRelation.__init__:s\���	?��=�>�>�>�*�����
��)�Q�'�'�	K��I�J�J�J�"�����	�	�	rc��t||j��stS|j|jko|j|jko|j|jkSr)rr!�NotImplementedr�r�r�r\s  r�__eq__zFilteredRelation.__eq__DsQ���%���0�0�	"�!�!���%�"5�5�
.��J�%�+�%�
.��N�e�o�-�	
rc�|�t|j|j���}|j|_|jdd�|_|S)Nr�)r�r�r�r�rv)r�clones  rr�zFilteredRelation.cloneMs8�� ��!3�t�~�N�N�N���j����Y�q�q�q�\��
��rc� �td���)zz
        QuerySet.annotate() only accepts expression-like arguments
        (with a resolve_expression() method).
        z0FilteredRelation.resolve_expression() is unused.)�NotImplementedError)rrKrLs   rroz#FilteredRelation.resolve_expressionSs��
"�"T�U�U�Urc��|j}|�|jt|j�����}|�|��S)N)rj)ri�build_filtered_relation_qr��setrv�compile)r�compiler�
connectionri�wheres     r�as_sqlzFilteredRelation.as_sqlZs?������/�/���c�$�)�n�n�/�U�U������&�&�&rN)
r'r(r)rwr7rHr�r�ror�r/rrr�r�7s{������A�A�34�1�3�3������
�
�
����V�V�V�'�'�'�'�'rr�)F)rwrPr�r�r�collectionsr�django.core.exceptionsrr�django.db.models.constantsr�django.utilsr�django.utils.deprecationr	r
rUr�	Exceptionr.r3�Noder7ryr�r�r�r�r�r/rr�<module>r�s��������������������"�"�"�"�"�"�@�@�@�@�@�@�@�@�1�1�1�1�1�1�������=�=�=�=�=�=�
�:�j�"k�l�l��]�]�]�]�]�t�]�]�]�,	�	�	�	�	�9�(8�	�	�	�	�(�(�(�B"�B"�B"�B"�B"��	�B"�B"�B"�J%�%�%�%�%�%�%�%�P@+�@+�@+�@+�@+�@+�@+�@+�F"�"�"�"�J
�
�
����8''�''�''�''�''�''�''�''�''�''r

Youez - 2016 - github.com/yon3zu
LinuXploit