Sindbad~EG File Manager
�
(ٜg2����ddlmZddlZddlmZddlmZddlmZejdejdejf� �Ze
gd
��ZGd�d�ZGd
�de�Zy)�)�annotationsN�)�typing)�current_app)�request�F.)�bound)�get�post�head�options�delete�put�trace�patchc�t�eZdZUdZdZded<dZded<gZded<d Zd
ed<dd�Z e
dd
��Zy)�ViewaSubclass 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]�methodszt.ClassVar[bool | None]�provide_automatic_optionsz(t.ClassVar[list[t.Callable[..., t.Any]]]�
decoratorsTzt.ClassVar[bool]�init_every_requestc��t��)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 �6/usr/local/lib/python3.12/site-packages/flask/views.py�dispatch_requestzView.dispatch_requestNs
��
"�#�#�c�r�����|jr d���fd��n|�i����d�fd��|jr1|�_|j�_|jD]
}|����|�_|�_|j
�_|j�_|j�_|j�_�S)afConvert 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�r���j�i���}tj|j�di|��S�N�)�
view_classr�ensure_syncr)�kwargsr�
class_args�class_kwargs�views ���rr'zView.as_view.<locals>.viewjsB���&�t�����#/���F�{�.�.�t�/D�/D�E�O��O�Orc�N��tj�j�di|��Sr )rr#r)r$rs �rr'zView.as_view.<locals>.viewss$���E�{�.�.�t�/D�/D�E�O��O�Or�r$�t.Any�return�ft.ResponseReturnValue)rr�__name__�
__module__r"�__doc__rr)�cls�namer%r&� decoratorrr's `` @@r�as_viewzView.as_viewUs����&�!�!�
P�
P��
�3�l�3�D�
P��>�>� �D�M�!�n�n�D�O� �^�^� � ����,������
��{�{����.�.����{�{���),�)F�)F��&��r)r+r,)r1�strr%r*r&r*r+zft.RouteCallable)r-r.�__qualname__r/r�__annotations__rrrr�classmethodr3r!rrrrsw���D59�G�
1�8�
:>��6�=�<>�J�8�=�,0��(�/�$��1��1�%*�1�<A�1� �1��1rrc�,��eZdZdZd�fd�Zdd�Z�xZS)�
MethodViewa�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�L��t�|�di|��d|jvr�t�}|jD]+}t|dd�s�|j
|j��-tD].}t||�s�|j|j���0|r||_yyy)Nrr!)�super�__init_subclass__�__dict__�set� __bases__�getattr�updater�http_method_funcs�hasattr�add�upper)r0r$r�base�key� __class__s �rr<zMethodView.__init_subclass__�s����
��!�+�F�+��C�L�L�(��e�G��
�
���4��D�1��N�N�4�<�<�0�&�)���3��$��K�K�� � ��,�)��%����)rc��t|tjj�d�}|� tjdk(r
t|dd�}|�Jdtj����t j
|�di|��S)N�HEADr
zUnimplemented method r!)r@r�method�lowerrr#)rr$�meths rrzMethodView.dispatch_request�sv���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+�Noner))r-r.r5r/r<r�
__classcell__)rHs@rr9r9�s����4&�" 7rr9)�
__future__rr�t��ft�globalsrr�TypeVar�Callable�Anyr� frozensetrBrr9r!rr�<module>rYs^��"��� ��
�A�I�I�c����C����J�/�0���I���
w�w�t57��57r
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists