+
    yj                        ^ RI Ht ^RIHt ^RIHt R t ! R R]]4      t ! R R]]4      t ! R	 R
]4      t	^RI
Ht R# )    )annotations)ImmutableDictMixin)UpdateDictMixinc                J   a aa \        VV V3R lV V3R lV 3R lRS : 24      # )zReturn a new property object for a cache header. Useful if you
want to add support for a cache extension in a subclass.

.. versionchanged:: 2.0
    Renamed from ``cache_property``.
c                *   < V P                  SSS4      # N)_get_cache_value)xemptykeytypes   &Y/var/www/html/2rare/lib/python3.14/site-packages/werkzeug/datastructures/cache_control.py<lambda>(cache_control_property.<locals>.<lambda>   s    !$$S%6    c                *   < V P                  SVS4      # r   )_set_cache_value)r
   vr   r   s   &&r   r   r      s    Q''Q5r   c                &   < V P                  S4      # r   )_del_cache_value)r
   r   s   &r   r   r      s    !$$S)r   zaccessor for )property)r   r   r   s   fffr   cache_control_propertyr      s%     65)
w	 r   c                      ] tR t^tRt]! RRR4      t]! RR]4      t]! RR]	4      t
]! RRR4      tRR ltR	 tR
 tR tR tR tR t]! ]4      tRtR# )_CacheControlaj  Subclass of a dict that stores values for a Cache-Control header.  It
has accessors for all the cache-control directives specified in RFC 2616.
The class does not differentiate between request and response directives.

Because the cache-control directives in the HTTP header use dashes the
python descriptors use underscores for that.

To get a header of the :class:`CacheControl` object again you can convert
the object into a string or call the :meth:`to_header` method.  If you plan
to subclass it and add your own items have a look at the sourcecode for
that class.

.. versionchanged:: 2.1.0
    Setting int properties such as ``max_age`` will convert the
    value to an int.

.. versionchanged:: 0.4

   Setting `no_cache` or `private` to boolean `True` will set the implicit
   none-value which is ``*``:

   >>> cc = ResponseCacheControl()
   >>> cc.no_cache = True
   >>> cc
   <ResponseCacheControl 'no-cache'>
   >>> cc.no_cache
   '*'
   >>> cc.no_cache = None
   >>> cc
   <ResponseCacheControl ''>

   In versions before 0.5 the behavior documented here affected the now
   no longer existing `CacheControl` class.
zno-cache*Nzno-storezmax-agezno-transformc                	b    \         P                  Y;'       g    R4       W n        VR JV n        R # )N )dict__init__	on_updateprovided)selfvaluesr    s   &&&r   r   _CacheControl.__init__?   s%    dLLb)"d*r   c                    V\         J d   W9   # W9   d    W,          pVf   V# Ve    V! V4      pV# V# R#   \         d     T# i ; i+Used internally by the accessor properties.N)bool
ValueError)r"   r   r   r   values   &&&& r   r	   _CacheControl._get_cache_valueD   sb    4<;;IE}! KE L5L " Ls   6 AAc                    V\         J d#   V'       d   RW&   R# V P                  VR4       R# Vf   V P                  VR4       R# VRJ d   RW&   R# Ve   V! V4      W&   R# W V&   R# )r'   NT)r(   pop)r"   r   r*   r   s   &&&&r   r   _CacheControl._set_cache_valueT   sZ    4< 	d#}d#$ 	# $UDI %Ir   c                    W9   d   W R# R# r&   r   )r"   r   s   &&r   r   _CacheControl._del_cache_valuef   s    ;	 r   c                .    \         P                  ! V 4      # )z6Convert the stored values into a cache control header.)httpdump_headerr"   s   &r   	to_header_CacheControl.to_headerk   s    %%r   c                	"    V P                  4       # r   )r5   r4   s   &r   __str___CacheControl.__str__o   s    ~~r   c                	    R P                  R \        V P                  4       4       4       4      pR\        V 4      P                   R V R2# ) c              3  6   "   T F  w  rV R V: 2x  K  	  R# 5i)=Nr   ).0kr   s   &  r   	<genexpr>)_CacheControl.__repr__.<locals>.<genexpr>s   s     H3G41QCq,3Gs   <>)joinsorteditemsr   __name__)r"   kv_strs   & r   __repr___CacheControl.__repr__r   sA    H6$**,3GHH4:&&'q22r   )r    r!   )r   N)rG   
__module____qualname____firstlineno____doc__r   no_cacher(   no_storeintmax_ageno_transformr   r	   r   r   r5   r8   rI   staticmethodcache_property__static_attributes__r   r   r   r   r      sr    !F &j#t<H%j$=H$YC8G).$EL+
 &$
& 3 ""89Nr   r   c                  V    ] tR t^ytRt]! RR]4      t]! RR]4      t]! RR]	4      t
RtR# )RequestCacheControlaU  A cache control for requests.  This is immutable and gives access
to all the request-relevant cache control headers.

To get a header of the :class:`RequestCacheControl` object again you can
convert the object into a string or call the :meth:`to_header` method.  If
you plan to subclass it and add your own items have a look at the sourcecode
for that class.

.. versionchanged:: 2.1.0
    Setting int properties such as ``max_age`` will convert the
    value to an int.

.. versionadded:: 0.5
   In previous versions a `CacheControl` class existed that was used
   both for request and response.
z	max-staler   z	min-freshzonly-if-cachedNr   )rG   rL   rM   rN   rO   r   rR   	max_stale	min_freshr(   only_if_cachedrW   r   r   r   rY   rY   y   s4    " '{C=I&{C=I+,<dDINr   rY   c                      ] tR t^tRt]! RR]4      t]! RRR4      t]! RR]4      t	]! RR]4      t
]! RR]4      t]! R	R]4      tR
tR# )ResponseCacheControla  A cache control for responses.  Unlike :class:`RequestCacheControl`
this is mutable and gives access to response-relevant cache control
headers.

To get a header of the :class:`ResponseCacheControl` object again you can
convert the object into a string or call the :meth:`to_header` method.  If
you plan to subclass it and add your own items have a look at the sourcecode
for that class.

.. versionchanged:: 2.1.1
    ``s_maxage`` converts the value to an int.

.. versionchanged:: 2.1.0
    Setting int properties such as ``max_age`` will convert the
    value to an int.

.. versionadded:: 0.5
   In previous versions a `CacheControl` class existed that was used
   both for request and response.
publicNprivater   zmust-revalidatezproxy-revalidatezs-maxage	immutabler   )rG   rL   rM   rN   rO   r   r(   r_   r`   must_revalidateproxy_revalidaterR   s_maxagera   rW   r   r   r   r^   r^      s`    * $HdD9F$YT:G,->dKO-.@$M%j$<H&{D$?Ir   r^   )r2   N)
__future__r   mixinsr   r   r   r   r   rY   r^    r2   r   r   r   <module>rh      sH    " & #`:OT `:FJ,m J.@= @> r   