
    g                         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
j                  e	            Z G d
 d      Z G d de      Zy)    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                 8    t         |   |       }||f|_        |S N)super__new___constructor_args)clsargskwargsobj	__class__s       p/var/www/python.vincentserveurtest.ovh/public_html/venv/lib/python3.12/site-packages/django/db/models/manager.pyr   zBaseManager.__new__   s"    goc"!%v
    c                 z    t         |           | j                          d | _        d | _        d | _        i | _        y r   )r   __init___set_creation_countermodelname_db_hintsselfr   s    r   r   zBaseManager.__init__   s6    ""$
	r   c                 `    | 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$))<<r   c                     | S r    )r   r   r   s      r   __class_getitem__zBaseManager.__class_getitem__'   s    
r   c                 V   | 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 #..0A0AB  //K>>**D";/F64(  [*  &-&&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 ]A  \  }}t        | |      rt	        |dd       }|s||j                  d      r6 |||      ||<   C |S )Nc                 .     t        |       fd       }|S )Nc                 D     t        | j                               |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2D94J6JJr   r   )r   methodr;   s   `  r   create_methodz8BaseManager._get_queryset_methods.<locals>.create_methodT   s#    6]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&8
LD& sD! $FOTBM!64??3;O -dF ;K
 r   c                 ~    || j                   d|j                   }t        || fd|i| j                  |            S )NFromr+   )r.   typerG   )r   rE   
class_names      r   from_querysetzBaseManager.from_querysetk   sN    '*||^5L5LMJF!>++N;
 	
r   c                     | j                   xs || _         || _        t        ||t        |              |j                  j                  |        y r   )r   r   setattrManagerDescriptorr!   add_manager)r   r   r   s      r   contribute_to_classzBaseManager.contribute_to_classx   s=    II%	
T,T23		d#r   c                 `    t         j                  | _        t         xj                  dz  c_        y)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                     t        j                   |       }|xs | j                  |_        |xs | j                  |_        |S r   )copyr   r   )r   usinghintsr   s       r   
db_managerzBaseManager.db_manager   s4    iio#488)dkk

r   c                 r    | j                   xs* t        j                  | j                  fi | j                  S r   )r   r   db_for_readr   r   r#   s    r   dbzBaseManager.db   s)    xxH6--djjHDKKHHr   c                 f    | j                  | 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(    
 ##$**DHHDKK#XXr   c                 "    | j                         S r   )r:   r#   s    r   allzBaseManager.all   s       ""r   c                 d    t        || j                        xr | j                  |j                  k(  S r   )
isinstancer   r   )r   others     r   __eq__zBaseManager.__eq__   s/    udnn- B&&%*A*AA	
r   c                     t        |       S r   )idr#   s    r   __hash__zBaseManager.__hash__   s    $x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	   
   s     L =#J  0 

 

$* I IY#
r   r	   c                       e Zd Zy)ManagerN)r.   r-   rf   r&   r   r   rn   rn      s    r   rn   c                       e Zd Zd ZddZy)rO   c                     || _         y 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     ;cllJ  99 =@YY=R=RT  99  IIOOII%%  yy%%dll&7&788r   r   )r.   r-   rf   r   rz   r&   r   r   rO   rO      s    9r   rO   c                   (     e Zd Z fdZ fdZ xZS )EmptyManagerc                 0    t         |           || _        y r   )r   r   r   )r   r   r   s     r   r   zEmptyManager.__init__   s    
r   c                 <    t         |          j                         S r   )r   r:   noner   s    r   r:   zEmptyManager.get_queryset   s    w#%**,,r   )r.   r-   rf   r   r:   rk   rl   s   @r   r|   r|      s    - -r   r|   )rU   rA   	functoolsr   	importlibr   	django.dbr   django.db.models.queryr   r	   rL   rn   rO   r|   r&   r   r   <module>r      sQ       #  +c cL	k''1 	9 96-7 -r   