o
    ˜¨Êh  ã                   @   s2   d dl mZ eƒ ZG dd„ dƒZG dd„ dƒZdS )é    )Úchecksc                   @   s<   e Zd ZdZdd„ Zefdd„Zdd„ Zdd	„ Zd
d„ Z	dS )ÚFieldCacheMixinz?Provide an API for working with the model's fields value cache.c                 C   s   t ‚©N)ÚNotImplementedError©Úself© r   úP/var/www/html/env/lib/python3.10/site-packages/django/db/models/fields/mixins.pyÚget_cache_name	   s   zFieldCacheMixin.get_cache_namec                 C   s8   |   ¡ }z|jj| W S  ty   |tu r‚ | Y S w r   )r
   Ú_stateÚfields_cacheÚKeyErrorÚNOT_PROVIDED)r   ÚinstanceÚdefaultÚ
cache_namer   r   r	   Úget_cached_value   s   ýz FieldCacheMixin.get_cached_valuec                 C   s   |   ¡ |jjv S r   )r
   r   r   ©r   r   r   r   r	   Ú	is_cached   s   zFieldCacheMixin.is_cachedc                 C   s   ||j j|  ¡ < d S r   ©r   r   r
   )r   r   Úvaluer   r   r	   Úset_cached_value   s   z FieldCacheMixin.set_cached_valuec                 C   s   |j j|  ¡ = d S r   r   r   r   r   r	   Údelete_cached_value   s   z#FieldCacheMixin.delete_cached_valueN)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r
   r   r   r   r   r   r   r   r   r	   r      s    	r   c                       s(   e Zd ZdZdd„ Z‡ fdd„Z‡  ZS )ÚCheckFieldDefaultMixin)z<valid default>z<invalid default>c                 C   sD   |   ¡ r | jd ur t| jƒs tjd| jjf d| j | dd�gS g S )Nzk%s 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   ÚWarningÚ	__class__r   Ú_default_hintr   r   r   r	   Ú_check_default"   s"   ÿ
ÿþÿ÷ÿz%CheckFieldDefaultMixin._check_defaultc                    s$   t ƒ jdi |¤Ž}| |  ¡ ¡ |S )Nr   )ÚsuperÚcheckÚextendr&   )r   ÚkwargsÚerrors©r$   r   r	   r(   8   s   zCheckFieldDefaultMixin.check)r   r   r   r%   r&   r(   Ú__classcell__r   r   r,   r	   r      s    r   N)Údjango.corer   Úobjectr   r   r   r   r   r   r	   Ú<module>   s    