
    h	                     f    S SK r S SKJr  S SKJr  S SKJr  \" 5       r " S S5      r	 " S S5      r
g)	    N)checks)RemovedInDjango60Warning)cached_propertyc                   L    \ rS rSrSrS r\S 5       r\4S jr	S r
S rS rS	rg
)FieldCacheMixin
   u   
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                     [         eN)NotImplementedErrorselfs    P/var/www/html/env/lib/python3.13/site-packages/django/db/models/fields/mixins.pyget_cache_nameFieldCacheMixin.get_cache_name   s    !!    c                     U R                  5       n[        R                  " SU R                  R                   S3[
        SS9  U$ )Nz	Override z(.cache_name instead of get_cache_name().   )
stacklevel)r   warningswarn	__class____qualname__r   )r   
cache_names     r   r   FieldCacheMixin.cache_name   sH     ((*
334 5   $		
 r   c                      UR                   R                  U R                     $ ! [         a    U[        L a  e Us $ f = fr
   )_statefields_cacher   KeyErrorNOT_PROVIDED)r   instancedefaults      r   get_cached_value FieldCacheMixin.get_cached_value#   s?    	??//@@ 	,&N	s   "% >>c                 H    U R                   UR                  R                  ;   $ r
   )r   r   r   r   r    s     r   	is_cachedFieldCacheMixin.is_cached+   s    (//">">>>r   c                 H    X!R                   R                  U R                  '   g r
   r   r   r   )r   r    values      r   set_cached_value FieldCacheMixin.set_cached_value.   s    8=$$T__5r   c                 F    UR                   R                  U R                  	 g r
   r)   r%   s     r   delete_cached_value#FieldCacheMixin.delete_cached_value1   s    OO((9r    N)__name__
__module__r   __firstlineno____doc__r   r   r   r   r"   r&   r+   r.   __static_attributes__r0   r   r   r   r   
   s9    " 
 
 2> ?>:r   r   c                   2   ^  \ rS rSrSrS rU 4S jrSrU =r$ )CheckFieldDefaultMixin5   )z<valid default>z<invalid default>c                     U R                  5       (       ad  U R                  bW  [        U R                  5      (       d=  [        R                  " U R
                  R                  < S3SU R                  -  U SS9/$ / $ )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   r1   _default_hintr   s    r   _check_default%CheckFieldDefaultMixin._check_default8   sx    (T\\**  ~~..1 "&"4"45 $
  Ir   c                 f   > [         TU ]  " S0 UD6nUR                  U R                  5       5        U$ )Nr0   )supercheckextendrA   )r   kwargserrorsr   s      r   rE   CheckFieldDefaultMixin.checkN   s.    ((d))+,r   r0   )	r1   r2   r   r3   r@   rA   rE   r5   __classcell__)r   s   @r   r7   r7   5   s    <M, r   r7   )r   django.corer   django.utils.deprecationr   django.utils.functionalr   objectr   r   r7   r0   r   r   <module>rO      s-      = 3x(: (:V r   