ó
    pñ:iï%  ã                  ó  • S SK Jr  S SKJr  S SKrS SKJr  SSK	J
r
  SSKJr  SS.         SS jjr " S	 S
\\\R                  \   4   5      r " S S\
\\R                  \   4   \5      r " S S\5      rSSKJr  g)é    )ÚannotationsN)Úcleandocé   )ÚImmutableDictMixin)ÚCallbackDict©Údocc               óx  ^ ^^• Uc‘  ST  S3/nT[         L a  UR                  S5        O^Tc  UR                  S5        OUR                  STR                   S35        Tb  UR                  ST< S35        UR                  S	5        S
R                  U5      n[	        UU U4S jU U4S jU 4S j[        U5      S9$ )a�  Return a new property object for a cache header. Useful if you
want to add support for a cache extension in a subclass.

:param key: The attribute name present in the parsed cache-control header dict.
:param empty: The value to use if the key is present without a value.
:param type: The type to convert the string value to instead of a string. If
    conversion raises a ``ValueError``, the returned value is ``None``.
:param doc: The docstring for the property. If not given, it is generated
    based on the other params.

.. versionchanged:: 3.1
    Added the ``doc`` param.

.. versionchanged:: 2.0
    Renamed from ``cache_property``.
zThe ``z`` attribute.z"A ``bool``, either present or not.z
A ``str``,zA ``z``,z``z`` if present with no value,zor ``None`` if not present.Ú c                ó*   >• U R                  TTT5      $ ©N)Ú_get_cache_value)ÚxÚemptyÚkeyÚtypes    €€€Úh/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/werkzeug/datastructures/cache_control.pyÚ<lambda>Ú(cache_control_property.<locals>.<lambda>1   s   ø€ �!×$Ñ$ S¨%°Ô6ó    c                ó*   >• U R                  TUT5      $ r   )Ú_set_cache_value)r   Úvr   r   s     €€r   r   r   2   s   ø€ �Q×'Ñ'¨¨Q°Ô5r   c                ó&   >• U R                  T5      $ r   )Ú_del_cache_value)r   r   s    €r   r   r   3   s   ø€ �!×$Ñ$ SÔ)r   r   )ÚboolÚappendÚ__name__ÚjoinÚpropertyr   )r   r   r   r	   Úpartss   ```  r   Úcache_control_propertyr"      s¬   ú€ ð& �{Ø˜#˜˜mÐ,Ð-ˆà”4Š<Ø�L‰LÐ=Õ>à‰|Ø—‘˜\Õ*à—‘˜t D§M¡M ?°#Ð6Ô7àÑ Ø—‘˜r %¡Ð*FÐGÔHà�L‰LÐ6Ô7à�h‰h�u‹oˆäÞ6Ý5Ü)Ü�S‹Mñ	ð r   c                  ó$  ^ • \ rS rSr% Sr\" SS\5      rS\S'   \" SS\	5      r
S\S	'   \" S
S\5      rS\S'   \" SS\	5      rS\S'     S   SU 4S jjjr        SS jr        SS jrSS jrSS jrSS jrSS jr\" \5      rSrU =r$ )Ú_CacheControlé8   ad  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:: 3.1
    Dict values are always ``str | None``. Setting properties will
    convert the value to a string. Setting a non-bool property to
    ``False`` is equivalent to setting it to ``None``. Getting typed
    properties will return ``None`` if conversion raises
    ``ValueError``, rather than the string.

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

.. versionchanged:: 0.4
   Setting ``no_cache`` or ``private`` to ``True`` will set the
   implicit value ``"*"``.
zno-storeNr   Úno_storezmax-ageú
int | NoneÚmax_agezno-transformÚno_transformzstale-if-errorÚstale_if_errorc                ó6   >• [         TU ]  X5        US LU l        g r   )ÚsuperÚ__init__Úprovided)ÚselfÚvaluesÚ	on_updateÚ	__class__s      €r   r-   Ú_CacheControl.__init__Z   s   ø€ ô
 	‰Ñ˜Ô+Ø dÐ*ˆ�r   c                óz   • U[         L a  X;   $ X;  a  gX   =nc  U$ Ub   U" U5      nU$ U$ ! [         a     gf = f©ú+Used internally by the accessor properties.N)r   Ú
ValueError)r/   r   r   r   Úvalues        r   r   Ú_CacheControl._get_cache_valueb   s`   € ð ”4Š<Ø‘;Ðà‹?Øà‘YÐˆEÑ'ØˆLàÑðÙ˜U›�ð ˆˆuˆøô ó Ùðús   ¡- ­
:¹:c                óÎ   • U[         L a  U(       a  SX'   gU R                  US5        gUb  USL a  U R                  US5        gUSL a  SX'   gUb  U" U5      n[        U5      X'   g)r6   NFT)r   ÚpopÚstr)r/   r   r8   r   s       r   r   Ú_CacheControl._set_cache_valuew   sd   € ð ”4Š<ÞØ �’	à—‘˜˜dÕ#Ø‰]˜e ušnØ�H‰H�S˜$ÕØ�dŠ]ØˆDŠIàÑÙ˜U›�ä˜E›
ˆDŠIr   c                ó   • X;   a  X	 ggr5   © )r/   r   s     r   r   Ú_CacheControl._del_cache_valueŠ   s   € à‹;Ø‘	ð r   c                ó.   • [         R                  " U 5      $ )z6Convert the stored values into a cache control header.)ÚhttpÚdump_header©r/   s    r   Ú	to_headerÚ_CacheControl.to_header�   s   € ä×Ò Ó%Ð%r   c                ó"   • U R                  5       $ r   )rE   rD   s    r   Ú__str__Ú_CacheControl.__str__“   s   € Ø�~‰~ÓÐr   c                ó˜   • SR                  S [        U R                  5       5       5       5      nS[        U 5      R                   SU S3$ )Nr   c              3  ó6   #   • U  H  u  pU S U< 3v •  M     g7f)Ú=Nr?   )Ú.0Úkr   s      r   Ú	<genexpr>Ú)_CacheControl.__repr__.<locals>.<genexpr>—   s   é € ÐHÒ3G©4¨1˜Q˜C˜q ¡�,Ò3Gùs   ‚Ú<Ú>)r   ÚsortedÚitemsr   r   )r/   Úkv_strs     r   Ú__repr__Ú_CacheControl.__repr__–   sA   € Ø—‘ÑH´6¸$¿*¹*»,Ô3GÓHÓHˆØ”4˜“:×&Ñ&Ð' q¨¨°Ð2Ð2r   )r.   )r?   N)r0   zBcabc.Mapping[str, t.Any] | cabc.Iterable[tuple[str, t.Any]] | Noner1   z+cabc.Callable[[_CacheControl], None] | None)r   r<   r   út.Anyr   útype[t.Any] | NoneÚreturnrX   )r   r<   r8   rX   r   rY   rZ   ÚNone)r   r<   rZ   r[   )rZ   r<   )r   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r"   r   r&   Ú__annotations__Úintr(   r)   r*   r-   r   r   r   rE   rH   rV   ÚstaticmethodÚcache_propertyÚ__static_attributes__Ú__classcell__)r2   s   @r   r$   r$   8   sé   ø‡ ññ8 ,¨J¸¸dÓC€HˆdÓCÙ0°¸DÀ#ÓF€GˆZÓFÙ/°ÀÀdÓK€L�$ÓKÙ!7Ð8HÈ$ÐPSÓ!T€N�JÓTð VXØAEð+àRð+ð ?÷+ð +ðØðØ$ðØ,>ðà	ôð*#Øð#Ø$ð#Ø,>ð#à	ô#ô&ô
&ô ô3ñ "Ð"8Ó9†Nr   r$   c                  ó’   • \ rS rSr% Sr\" SS\5      rS\S'   \" SS\	5      r
S	\S
'   \" SS\	5      rS\S'   \" SS\5      rS\S'   Srg)ÚRequestCacheControlé�   a�  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:: 3.1
    Dict values are always ``str | None``. Setting properties will
    convert the value to a string. Setting a non-bool property to
    ``False`` is equivalent to setting it to ``None``. Getting typed
    properties will return ``None`` if conversion raises
    ``ValueError``, rather than the string.

.. versionchanged:: 3.1
   ``max_age`` is ``None`` if present without a value, rather
   than ``-1``.

.. versionchanged:: 3.1
    ``no_cache`` is a boolean, it is ``True`` instead of ``"*"``
    when present.

.. versionchanged:: 3.1
    ``max_stale`` is ``True`` if present without a value, rather
    than ``"*"``.

.. versionchanged:: 3.1
   ``no_transform`` is a boolean. Previously it was mistakenly
   always ``None``.

.. versionchanged:: 3.1
   ``min_fresh`` is ``None`` if present without a value, rather
   than ``"*"``.

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

.. versionadded:: 0.5
    Response-only properties are not present on this request class.
úno-cacheNr   Úno_cachez	max-staleTzint | t.Literal[True] | NoneÚ	max_stalez	min-freshr'   Ú	min_freshzonly-if-cachedÚonly_if_cachedr?   )r   r\   r]   r^   r_   r"   r   rj   r`   ra   rk   rl   rm   rd   r?   r   r   rg   rg   �   sa   ‡ ñ)ñV ,¨J¸¸dÓC€HˆdÓCÙ.DØØØó/€IÐ+ó ñ
 3°;ÀÀcÓJ€IˆzÓJÙ1Ð2BÀDÈ$ÓO€N�DÖOr   rg   c                  ó(  • \ rS rSr% Sr\" SSS5      rS\S'   \" SS\5      r	S	\S'   \" S
SS5      r
S\S
'   \" SS\5      rS	\S'   \" SS\5      rS	\S'   \" SS\5      rS\S'   \" SS\5      rS	\S'   \" SS\5      rS	\S'   \" SS\5      rS\S'   Srg)ÚResponseCacheControléÓ   až  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:: 3.1
    Dict values are always ``str | None``. Setting properties will
    convert the value to a string. Setting a non-bool property to
    ``False`` is equivalent to setting it to ``None``. Getting typed
    properties will return ``None`` if conversion raises
    ``ValueError``, rather than the string.

.. versionchanged:: 3.1
    ``no_cache`` is ``True`` if present without a value, rather than
    ``"*"``.

.. versionchanged:: 3.1
    ``private`` is ``True`` if present without a value, rather than
    ``"*"``.

.. versionchanged:: 3.1
   ``no_transform`` is a boolean. Previously it was mistakenly
   always ``None``.

.. versionchanged:: 3.1
    Added the ``must_understand``, ``stale_while_revalidate``, and
    ``stale_if_error`` properties.

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

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

.. versionadded:: 0.5
   Request-only properties are not present on this response class.
ri   TNzstr | t.Literal[True] | Nonerj   Úpublicr   Úprivatezmust-revalidateÚmust_revalidatezproxy-revalidateÚproxy_revalidatezs-maxager'   Ús_maxageÚ	immutablezmust-understandÚmust_understandzstale-while-revalidateÚstale_while_revalidater?   )r   r\   r]   r^   r_   r"   rj   r`   r   rq   rr   rs   rt   ra   ru   rv   rw   rx   rd   r?   r   r   ro   ro   Ó   sÐ   ‡ ñ)ñV .DØ�D˜$ó.€HÐ*ó ñ *¨(°D¸$Ó?€FˆDÓ?Ù,BØ�4˜ó-€GÐ)ó ñ 3Ð3DÀdÈDÓQ€O�TÓQÙ3Ð4FÈÈdÓSÐ�dÓSÙ1°*¸dÀCÓH€HˆjÓHÙ,¨[¸$ÀÓE€IˆtÓEÙ2Ð3DÀdÈDÓQ€O�TÓQÙ)?Ø  $¨ó*Ð˜Jö r   ro   é   )rB   )
r   r<   r   rX   r   rY   r	   z
str | NonerZ   rX   )Ú
__future__r   Úcollections.abcÚabcÚcabcÚtypingÚtÚinspectr   Úmixinsr   Ú
structuresr   r"   r<   ÚOptionalr$   rg   ro   Ú rB   r?   r   r   Ú<module>r…      s£   ðÝ "å Û Ý å &Ý $ð LPñ*Ø	ð*Øð*Ø"4ð*Ø>Hð*à
õ*ôZb:�L  a§j¡j°¡oÐ!5Ñ6ô b:ôJ3PÐ,¨S°!·*±*¸S±/Ð-AÑBÀMô 3Pôl:˜=ô :ö| r   