ó
    |ñ:i2  ã                  óÎ   • S SK Jr  S SKrSSKJr  SSKJr  SSKJr  \R                  " S\R                  S\R                  4   S	9r\" / S
Q5      r " S S5      r " S S\5      rg)é    )ÚannotationsNé   )Útyping)Úcurrent_app)ÚrequestÚF.)Úbound)ÚgetÚpostÚheadÚoptionsÚdeleteÚputÚtraceÚpatchc                  ó€   • \ rS rSr% SrSrS\S'   SrS\S'   / rS\S	'   S
r	S\S'   SS jr
\        SS j5       rSrg)ÚViewé   a²  Subclass this class and override :meth:`dispatch_request` to
create a generic class-based view. Call :meth:`as_view` to create a
view function that creates an instance of the class with the given
arguments and calls its ``dispatch_request`` method with any URL
variables.

See :doc:`views` for a detailed guide.

.. code-block:: python

    class Hello(View):
        init_every_request = False

        def dispatch_request(self, name):
            return f"Hello, {name}!"

    app.add_url_rule(
        "/hello/<name>", view_func=Hello.as_view("hello")
    )

Set :attr:`methods` on the class to change what methods the view
accepts.

Set :attr:`decorators` on the class to apply a list of decorators to
the generated view function. Decorators applied to the class itself
will not be applied to the generated view function!

Set :attr:`init_every_request` to ``False`` for efficiency, unless
you need to store request-global data on ``self``.
Nz$t.ClassVar[t.Collection[str] | None]Úmethodszt.ClassVar[bool | None]Úprovide_automatic_optionsz(t.ClassVar[list[t.Callable[..., t.Any]]]Ú
decoratorsTzt.ClassVar[bool]Úinit_every_requestc                ó   • [        5       e)zŸThe actual view function behavior. Subclasses must override
this and return a valid response. Any variables from the URL
rule are passed as keyword arguments.
)ÚNotImplementedError)Úselfs    ÚN/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/flask/views.pyÚdispatch_requestÚView.dispatch_requestN   s   € ô
 "Ó#Ð#ó    c                ó’  ^^^^• U R                   (       a  SUUU4S jjmOU " T0 TD6mSU4S jjmU R                  (       a3  UTl        U R                  Tl        U R                   H  nU" T5      mM     U Tl        UTl        U R
                  Tl        U R                  Tl        U R                  Tl        U R                  Tl        T$ )a  Convert the class into a view function that can be registered
for a route.

By default, the generated view will create a new instance of the
view class for every request and call its
:meth:`dispatch_request` method. If the view class sets
:attr:`init_every_request` to ``False``, the same instance will
be used for every request.

Except for ``name``, all other arguments passed to this method
are forwarded to the view class ``__init__`` method.

.. versionchanged:: 2.2
    Added the ``init_every_request`` class attribute.
c                 ót   >• TR                   " T0 TD6n[        R                  " UR                  5      " S0 U D6$ ©N© )Ú
view_classr   Úensure_syncr   )Úkwargsr   Ú
class_argsÚclass_kwargsÚviews     €€€r   r)   ÚView.as_view.<locals>.viewj   s=   ø€ Ø—’ØðØ#/ñ�ô #×.Ò.¨t×/DÑ/DÔEÑOÈÑOÐOr   c                 óP   >• [         R                  " TR                  5      " S0 U D6$ r"   )r   r%   r   )r&   r   s    €r   r)   r*   s   s"   ø€ Ü"×.Ò.¨t×/DÑ/DÔEÑOÈÑOÐOr   ©r&   út.AnyÚreturnúft.ResponseReturnValue)r   r   Ú__name__Ú
__module__r$   Ú__doc__r   r   )ÚclsÚnamer'   r(   Ú	decoratorr   r)   s     `` @@r   Úas_viewÚView.as_viewU   s§   û€ ð& ×!×!÷Pò Pñ ˜
Ð3 lÑ3ˆD÷Pð �>�>Ø ˆDŒMØ!Ÿn™nˆDŒOØ Ÿ^œ^�	Ù  “’ñ ,ð ˆŒØˆŒØ—{‘{ˆŒØŸ.™.ˆŒØ—{‘{ˆŒØ),×)FÑ)FˆÔ&Øˆr   r#   )r.   r/   )r4   Ústrr'   r-   r(   r-   r.   zft.RouteCallable)r0   r1   Ú__qualname__Ú__firstlineno__r2   r   Ú__annotations__r   r   r   r   Úclassmethodr6   Ú__static_attributes__r#   r   r   r   r      sw   ‡ ñðD 59€GÐ1Ó8ð
 :>ÐÐ6Ó=ð <>€JÐ8Ó=ð ,0ÐÐ(Ó/ô$ð ð1Øð1Ø%*ð1Ø<Að1à	ó1ó ó1r   r   c                  ó:   ^ • \ rS rSrSrSU 4S jjrSS jrSrU =r$ )Ú
MethodViewéŠ   a©  Dispatches request methods to the corresponding instance methods.
For example, if you implement a ``get`` method, it will be used to
handle ``GET`` requests.

This can be useful for defining a REST API.

:attr:`methods` is automatically set based on the methods defined on
the class.

See :doc:`views` for a detailed guide.

.. code-block:: python

    class CounterAPI(MethodView):
        def get(self):
            return str(session.get("counter", 0))

        def post(self):
            session["counter"] = session.get("counter", 0) + 1
            return redirect(url_for("counter"))

    app.add_url_rule(
        "/counter", view_func=CounterAPI.as_view("counter")
    )
c                óx  >• [         TU ]  " S0 UD6  SU R                  ;  a™  [        5       nU R                   H2  n[        USS 5      (       d  M  UR                  UR                  5        M4     [         H4  n[        X5      (       d  M  UR                  UR                  5       5        M6     U(       a  X l        g g g )Nr   r#   )ÚsuperÚ__init_subclass__Ú__dict__ÚsetÚ	__bases__ÚgetattrÚupdater   Úhttp_method_funcsÚhasattrÚaddÚupper)r3   r&   r   ÚbaseÚkeyÚ	__class__s        €r   rC   ÚMethodView.__init_subclass__¥   s�   ø€ Ü‰Ò!Ñ+ FÒ+à˜CŸL™LÓ(Ü“eˆGàŸœ�Ü˜4 ¨D×1Ó1Ø—N‘N 4§<¡<Ö0ñ &÷ )�Ü˜3×$Ó$Ø—K‘K §	¡	£Ö,ñ )ö Ø%•ð ð )r   c                ó  • [        U [        R                  R                  5       S 5      nUc!  [        R                  S:X  a  [        U SS 5      nUc   S[        R                  < 35       e[        R
                  " U5      " S0 UD6$ )NÚHEADr
   zUnimplemented method r#   )rG   r   ÚmethodÚlowerr   r%   )r   r&   Úmeths      r   r   ÚMethodView.dispatch_request¶   st   € Ü�tœWŸ^™^×1Ñ1Ó3°TÓ:ˆð ‰<œGŸN™N¨fÓ4Ü˜4 ¨Ó-ˆDàÑÐKÐ#8¼¿¹Ñ8JÐ!KÓKÐÜ×&Ò& tÔ,Ñ6¨vÑ6Ð6r   r#   )r&   r-   r.   ÚNoner,   )	r0   r1   r9   r:   r2   rC   r   r=   Ú__classcell__)rO   s   @r   r?   r?   Š   s   ø† ñ÷4&÷"	7ò 	7r   r?   )Ú
__future__r   r   ÚtÚ ÚftÚglobalsr   r   ÚTypeVarÚCallableÚAnyr   Ú	frozensetrI   r   r?   r#   r   r   Ú<module>rb      s\   ðÝ "ã å Ý  Ý à‡I‚Iˆc˜Ÿ™ C¨¯© JÑ/Ñ0€áÚIóÐ ÷
wñ wôt57�õ 57r   