Ë
    £2Úi›  ã                  ó€   — d dl mZ ddlmZ ddlmZ d„ Z G d„ dee«      Z G d„ d	ee«      Z G d
„ de«      Z	ddl
mZ y)é    )Úannotationsé   )ÚImmutableDictMixin)ÚUpdateDictMixinc                óB   ‡ ‡‡— t        ˆˆ ˆfd„ˆ ˆfd„ˆ fd„d‰ ›�«      S )zÆReturn 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                ó*   •— | j                  ‰‰‰«      S ©N)Ú_get_cache_value)ÚxÚemptyÚkeyÚtypes    €€€ú\/var/www/html/acx/venv/lib/python3.12/site-packages/werkzeug/datastructures/cache_control.pyú<lambda>z(cache_control_property.<locals>.<lambda>   s   ø€ �!×$Ñ$ S¨%°Ó6€ ó    c                ó*   •— | j                  ‰|‰«      S r	   )Ú_set_cache_value)r   Úvr   r   s     €€r   r   z(cache_control_property.<locals>.<lambda>   s   ø€ �Q×'Ñ'¨¨Q°Ó5€ r   c                ó&   •— | j                  ‰«      S r	   )Ú_del_cache_value)r   r   s    €r   r   z(cache_control_property.<locals>.<lambda>   s   ø€ �!×$Ñ$ SÓ)€ r   zaccessor for )Úproperty)r   r   r   s   ```r   Úcache_control_propertyr      s%   ú€ ô Ý6Ü5Û)Ø
˜�wÐó	ð r   c                  óœ   — e Zd ZdZ eddd«      Z edde«      Z edde«      Z	 eddd«      Z
dd	„Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Z ee«      Zy)Ú_CacheControlaÒ  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-ageéÿÿÿÿzno-transformc                óX   — t         j                  | |xs d«       || _        |d u| _        y )N© )ÚdictÚ__init__Ú	on_updateÚprovided)ÚselfÚvaluesr!   s      r   r    z_CacheControl.__init__?   s'   € Ü�‰�d˜FšL bÔ)Ø"ˆŒØ dÐ*ˆ�r   c                ót   — |t         u r|| v S || v r| |   }|€|S |�	  ||«      }|S |S y# t        $ r Y |S w xY w©ú+Used internally by the accessor properties.N)ÚboolÚ
ValueError)r#   r   r   r   Úvalues        r   r
   z_CacheControl._get_cache_valueD   sh   € à”4‰<Ø˜$�;ÐØ�$‰;Ø˜‘IˆEØˆ}Ø�ØÐ!ðÙ  ›K�Eð ˆL�5ˆLØøô "ò ØØˆLðús   �* ª	7¶7c                ó®   — |t         u r|rd| |<   y| j                  |d«       y|€| j                  |d«       y|du rd| |<   y|� ||«      | |<   y|| |<   y)r'   NT)r(   Úpop)r#   r   r*   r   s       r   r   z_CacheControl._set_cache_valueT   sb   € à”4‰<ÙØ ��S’	à—‘˜˜dÕ#àˆ}Ø—‘˜˜dÕ#Ø˜$‘Ø ��S’	àÐ#Ù $ U£�D˜’Ià %�D˜’Ir   c                ó   — || v r| |= yyr&   r   )r#   r   s     r   r   z_CacheControl._del_cache_valuef   s   € à�$‰;Ø�S‘	ð r   c                ó,   — t        j                  | «      S )z6Convert the stored values into a cache control header.)ÚhttpÚdump_header©r#   s    r   Ú	to_headerz_CacheControl.to_headerk   s   € ä×Ñ Ó%Ð%r   c                ó"   — | j                  «       S r	   )r2   r1   s    r   Ú__str__z_CacheControl.__str__o   s   € Ø�~‰~ÓÐr   c                ó˜   — dj                  d„ t        | j                  «       «      D «       «      }dt        | «      j                  › d|› d�S )Nú c              3  ó0   K  — | ]  \  }}|› d |›�–— Œ y­w)ú=Nr   )Ú.0Úkr   s      r   ú	<genexpr>z)_CacheControl.__repr__.<locals>.<genexpr>s   s   è ø€ ÒH©4¨1¨a˜Q˜C˜q  œ,ÑHùs   ‚ú<ú>)ÚjoinÚsortedÚitemsr   Ú__name__)r#   Úkv_strs     r   Ú__repr__z_CacheControl.__repr__r   sA   € Ø—‘ÑH´6¸$¿*¹*»,Ó3GÔHÓHˆØ”4˜“:×&Ñ&Ð' q¨¨°Ð2Ð2r   )r   N)rA   Ú
__module__Ú__qualname__Ú__doc__r   Úno_cacher(   Úno_storeÚintÚmax_ageÚno_transformr    r
   r   r   r2   r4   rC   ÚstaticmethodÚcache_propertyr   r   r   r   r      sr   „ ñ!ñF & j°#°tÓ<€HÙ% j°$¸Ó=€HÙ$ Y°°CÓ8€GÙ)¨.¸$ÀÓE€Ló+ò
ò &ò$ò
&ò ò3ñ "Ð"8Ó9�Nr   r   c                  óL   — e Zd ZdZ edde«      Z edde«      Z edde«      Z	y)ÚRequestCacheControla…  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-cachedN)
rA   rD   rE   rF   r   rI   Ú	max_staleÚ	min_freshr(   Úonly_if_cachedr   r   r   rO   rO   y   s4   „ ññ" ' {°C¸Ó=€IÙ& {°C¸Ó=€IÙ+Ð,<¸dÀDÓI�Nr   rO   c                  óˆ   — e Zd ZdZ edde«      Z eddd«      Z edde«      Z edde«      Z	 edde
«      Z ed	de«      Zy)
Ú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Ú	immutable)rA   rD   rE   rF   r   r(   rU   rV   Úmust_revalidateÚproxy_revalidaterI   Ús_maxagerW   r   r   r   rT   rT   �   s`   „ ññ* $ H¨d°DÓ9€FÙ$ Y°°TÓ:€GÙ,Ð->ÀÀdÓK€OÙ-Ð.@À$ÈÓMÐÙ% j°$¸Ó<€HÙ& {°D¸$Ó?�Ir   rT   é   )r/   N)Ú
__future__r   Úmixinsr   r   r   r   r   rO   rT   Ú r/   r   r   r   ú<module>r_      sH   ðÝ "å &Ý #òô`:�O Tô `:ôFJÐ,¨mô Jô.@˜=ô @ö> r   