
    Evg	                     z    d dl Z d dlmZ d dlmZ d dlmZ  e            Z G d d          Z	 G d d          Z
dS )	    N)checks)RemovedInDjango60Warning)cached_propertyc                   J    e Zd ZdZd Zed             ZefdZd Z	d Z
d ZdS )	FieldCacheMixinu   
    An API for working with the model's fields value cache.

    Subclasses must set self.cache_name to a unique entry for the cache -
    typically the field’s name.
    c                     t           N)NotImplementedErrorselfs    [/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/django/db/models/fields/mixins.pyget_cache_namezFieldCacheMixin.get_cache_name   s    !!    c                     |                                  }t          j        d| j        j         dt
          d           |S )Nz	Override z(.cache_name instead of get_cache_name().   )
stacklevel)r   warningswarn	__class____qualname__r   )r   
cache_names     r   r   zFieldCacheMixin.cache_name   sW     ((**
 3      $		
 	
 	
 	
 r   c                 j    	 |j         j        | j                 S # t          $ r |t          u r |cY S w xY wr	   )_statefields_cacher   KeyErrorNOT_PROVIDED)r   instancedefaults      r   get_cached_valuez FieldCacheMixin.get_cached_value#   sK    	?/@@ 	 	 	,&&NNN	s    22c                 (    | j         |j        j        v S r	   )r   r   r   r   r   s     r   	is_cachedzFieldCacheMixin.is_cached+   s    (/">>>r   c                 .    ||j         j        | j        <   d S r	   r   r   r   )r   r   values      r   set_cached_valuez FieldCacheMixin.set_cached_value.   s    8=$T_555r   c                 *    |j         j        | j        = d S r	   r$   r!   s     r   delete_cached_valuez#FieldCacheMixin.delete_cached_value1   s    O(999r   N)__name__
__module__r   __doc__r   r   r   r   r   r"   r&   r(    r   r   r   r   
   s         " " " 
 
 _
 2>    ? ? ?> > >: : : : :r   r   c                   (     e Zd ZdZd Z fdZ xZS )CheckFieldDefaultMixin)z<valid default>z<invalid default>c                     |                                  rI| j        Bt          | j                  s.t          j        | j        j        dd| j        z  | d          gS g S )Nzi default should be a callable instead of an instance so that it's not shared between all field instances.z7Use a callable instead, e.g., use `%s` instead of `%s`.zfields.E010)hintobjid)has_defaultr   callabler   Warningr   r)   _default_hintr   s    r   _check_defaultz%CheckFieldDefaultMixin._check_default8   s    	(T\** )  ~...1 "&"45 $
 
 
  Ir   c                      t                      j        di |}|                    |                                            |S )Nr,   )supercheckextendr7   )r   kwargserrorsr   s      r   r:   zCheckFieldDefaultMixin.checkN   sA    ((((d))++,,,r   )r)   r*   r   r6   r7   r:   __classcell__)r   s   @r   r.   r.   5   sL        <M  ,        r   r.   )r   django.corer   django.utils.deprecationr   django.utils.functionalr   objectr   r   r.   r,   r   r   <module>rC      s           = = = = = = 3 3 3 3 3 3vxx(: (: (: (: (: (: (: (:V         r   