
    Evg                         d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	  G d d          Z
 G d d	e
                    e	                    Z G d
 d          Z G d de          ZdS )    Nwraps)import_module)router)QuerySetc                        e Zd ZdZdZdZ fdZ fdZd Zd Z	d Z
d Zed	             Zedd            Zd Zd ZddZed             Zd Zd Zd Zd Z xZS )BaseManagerr   Fc                 \    t                                          |           }||f|_        |S N)super__new___constructor_args)clsargskwargsobj	__class__s       U/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/django/db/models/manager.pyr   zBaseManager.__new__   s)    ggooc""!%v
    c                     t                                                       |                                  d | _        d | _        d | _        i | _        d S r   )r   __init___set_creation_countermodelname_db_hintsselfr   s    r   r   zBaseManager.__init__   sK    ""$$$
	r   c                 8    | j         j        j        d| j        S )z,Return "app_label.model_label.manager_name"..)r   _metalabelr   r   s    r   __str__zBaseManager.__str__#   s    **000$))<<r   c                     | S r    )r   r   r   s      r   __class_getitem__zBaseManager.__class_getitem__'   s    
r   c                 2   | j         }t          | dd          rdd|j        d|j        ddfS | j        }| j        j        }t          |          }t          ||          st          d|d|d          d|d|d| j        d	         | j        d
         fS )z
        Return a 5-tuple of the form (as_manager (True), manager_class,
        queryset_class, args, kwargs).

        Raise a ValueError if the manager is dynamically generated.
        _built_with_as_managerFTNr    zCould not find manager z in zf.
Please note that you need to inherit from managers you dynamically generated with 'from_queryset()'.r      )	_queryset_classgetattr
__module____name__r   r   hasattr
ValueErrorr   )r   qs_classmodule_namer   modules        r   deconstructzBaseManager.deconstruct*   s     '41599 	 #...0A0AB  /K>*D";//F64((  j tt[[[*   &;;-&q)&q) r   c                     g S r   r&   )r   r   s     r   checkzBaseManager.checkO   s    	r   c                     d }i }t          j        |t           j                  D ]P\  }}t          | |          rt	          |dd           }|s||                    d          rA |||          ||<   Q|S )Nc                 <     t          |           fd            }|S )Nc                 T     t          |                                           |i |S r   )r,   get_queryset)r   r   r   r   s      r   manager_methodzPBaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methodU   s.    9wt0022D994J6JJJr   r   )r   methodr;   s   `  r   create_methodz8BaseManager._get_queryset_methods.<locals>.create_methodT   s9    6]]K K K K ]K "!r   )	predicatequeryset_only_)inspect
getmembers
isfunctionr/   r,   
startswith)r   queryset_classr=   new_methodsr   r<   r?   s          r   _get_queryset_methodsz!BaseManager._get_queryset_methodsR   s    	" 	" 	" #.g&8
 
 
 	< 	<LD& sD!!  $FOTBBM !64??3;O;O!6 -dF ; ;Kr   Nc                 z    || j         d|j         }t          || fd|i|                     |                    S )NFromr+   )r.   typerG   )r   rE   
class_names      r   from_querysetzBaseManager.from_querysetk   sX    '*|||^5L5LMJF!>++N;;
 
 	
r   c                     | j         p|| _         || _        t          ||t          |                      |j                            |            d S r   )r   r   setattrManagerDescriptorr!   add_manager)r   r   r   s      r   contribute_to_classzBaseManager.contribute_to_classx   sN    I%	
T,T22333	d#####r   c                 R    t           j        | _        t           xj        dz  c_        dS )zn
        Set the creation counter value for this instance and increment the
        class-level copy.
        r*   N)r	   creation_counterr#   s    r   r   z!BaseManager._set_creation_counter   s)    
 !, <$$)$$$$r   c                 f    t          j         |           }|p| j        |_        |p| j        |_        |S r   )copyr   r   )r   usinghintsr   s       r   
db_managerzBaseManager.db_manager   s0    ioo#48)dk

r   c                 H    | j         pt          j        | j        fi | j        S r   )r   r   db_for_readr   r   r#   s    r   dbzBaseManager.db   s&    xH6-djHHDKHHHr   c                 P    |                      | j        | j        | j                  S )z
        Return a new QuerySet object. Subclasses can override this method to
        customize the behavior of the Manager.
        )r   rV   rW   )r+   r   r   r   r#   s    r   r:   zBaseManager.get_queryset   s%    
 ##$*DHDK#XXXr   c                 *    |                                  S r   )r:   r#   s    r   allzBaseManager.all   s       """r   c                 L    t          || j                  o| j        |j        k    S r   )
isinstancer   r   )r   others     r   __eq__zBaseManager.__eq__   s*    udn-- B&%*AA	
r   c                      t          |           S r   )idr#   s    r   __hash__zBaseManager.__hash__   s    $xxr   r   )NN)r.   r-   __qualname__rS   auto_createduse_in_migrationsr   r   r$   r'   r4   r6   classmethodrG   rL   rQ   r   rX   propertyr[   r:   r^   rb   re   __classcell__r   s   @r   r	   r	   
   sm        L         = = =  # # #J     [0 

 

 

 [

$ $ $* * *    I I XIY Y Y# # #
 
 
      r   r	   c                       e Zd ZdS )ManagerN)r.   r-   rf   r&   r   r   rn   rn      s        Dr   rn   c                       e Zd Zd ZddZdS )rO   c                     || _         d S r   )manager)r   rq   s     r   r   zManagerDescriptor.__init__   s    r   Nc                 *   |t          d|j        z            |j        j        rt          d|j        j        d          |j        j        r*t          d|j        j        d|j        j        d          |j        j        | j        j	                 S )Nz)Manager isn't accessible via %s instanceszManager isn't available; z is abstractzManager isn't available; 'z' has been swapped for '')
AttributeErrorr.   r!   abstractobject_nameswappedr"   managers_maprq   r   )r   instancer   s      r   __get__zManagerDescriptor.__get__   s     ;clJ   9 	 .=@Y=R=R=RT   9 	 . IOOOI%%%   y%dl&788r   r   )r.   r-   rf   r   rz   r&   r   r   rO   rO      s7          9 9 9 9 9 9r   rO   c                   (     e Zd Z fdZ fdZ xZS )EmptyManagerc                 V    t                                                       || _        d S r   )r   r   r   )r   r   r   s     r   r   zEmptyManager.__init__   s$    


r   c                 h    t                                                                                      S r   )r   r:   noner   s    r   r:   zEmptyManager.get_queryset   s%    ww##%%**,,,r   )r.   r-   rf   r   r:   rk   rl   s   @r   r|   r|      sQ            - - - - - - - - -r   r|   )rU   rA   	functoolsr   	importlibr   	django.dbr   django.db.models.queryr   r	   rL   rn   rO   r|   r&   r   r   <module>r      s$           # # # # # #       + + + + + +c c c c c c c cL	 	 	 	 	k''11 	 	 	9 9 9 9 9 9 9 96- - - - -7 - - - - -r   