� L�gm"��J�ddlmZddlZddlZddlmZddlmZmZddl m Z m Z ddl m Z mZmZmZmZejegeje fZejeegeje fZejd��ZGd�d e��ZGd �d ��ZGd �d e ��ZdS)�)� annotationsN)�collapse_excgroups)�ClientDisconnect�Request)�AsyncContentStream�Response)�ASGIApp�Message�Receive�Scope�Send�Tc�,��eZdZdZd �fd� Zd d �Z�xZS) �_CachedRequesta If the user calls Request.body() from their dispatch function we cache the entire request body in memory and pass that to downstream middlewares, but if they call Request.stream() then all we do is send an empty body so that downstream things don't hang forever. �scoper �receiver c���t���||��d|_d|_|���|_dS)NF)�super�__init__�_wrapped_rcv_disconnected�_wrapped_rcv_consumed�stream�_wrapped_rc_stream)�selfrr� __class__s ��i/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/starlette/middleware/base.pyrz_CachedRequest.__init__sC��� �������(�(�(�).��&�%*��"�"&�+�+�-�-������returnr c��K�|jrddiS|jrY|jr d|_ddiS|����d{V��}|ddkrt d|d�����d|_|St |dd���d|_d|jdd�S|jr d|_dd dd�S |���}|� ���d{V��}|j|_d||j d�S#t$rd|_ddicYSwxYw) N�type�http.disconnectTzUnexpected message received: �_bodyz http.requestF�r �body� more_bodyr) rr�_is_disconnectedr� RuntimeError�getattrr"�_stream_consumedr� __anext__r)r�msgr�chunks r�wrapped_receivez_CachedRequest.wrapped_receives����� � )� /��-�.� .� � %� ��$� 3�26��.�� 1�2�2�� � ���&�&�&�&�&�&�C��6�{�/�/�/�#�#P�3�v�;�#P�#P�Q�Q�Q�-1�D� *��J� �4��$� '� '� 3�)-�D� &�&�� �"��� � � "� 3�*.�D� &�&��"��� � 3�������$�.�.�0�0�0�0�0�0�0�0��-1�-B��*�*�!�%)�%:�!:����� $� 3� 3� 3�15��.�� 1�2�2�2�2� 3���s�&AC,�,D�D)rr rr �rr )�__name__� __module__� __qualname__�__doc__rr-� __classcell__)rs@rrrs[���������0�0�0�0�0�0� ;3�;3�;3�;3�;3�;3�;3�;3rrc�(�eZdZddd�Zdd�Zdd�ZdS)�BaseHTTPMiddlewareN�appr �dispatch�DispatchFunction | Noner�Nonec�4�||_|�|jn||_dS�N)r6r7� dispatch_func)rr6r7s rrzBaseHTTPMiddleware.__init__^s"�����.6�.>�T�]�]�H����rrr rr �sendr c ������� � � � K��ddkr���||���d{V��dSt�|��}|j� tj��� d�� ��� � � fd� }tj��}|\� ��5� 5t ��5tj��4�d{V��� ��||���d{V��}|�� |���d{V��� � ���� ��ddd���d{V��n#1�d{V��swxYwYddd��n #1swxYwYddd��n #1swxYwYddd��dS#1swxYwYdS) Nr �http�requestrrrc�������K�d�d� �fd� �d� fd� �d��� � �� fd� }��|�� � ����d{V��}|�dd��}|d d kr|�� ����d{V��}n&#tj$r����t d ���wxYw|d d ksJ�d�� fd� }t |d|��|���}|d|_|S)Nrr c��L��K�����rddiStj��4�d{V���d�fd� }��|�j��|����d{V��}ddd���d{V��n#1�d{V��swxYwY����rddiS|S) Nr r!�func�(typing.Callable[[], typing.Awaitable[T]]rrc��^�K�|���d{V��}�j���|Sr;)� cancel_scope�cancel)rC�result� task_groups �r�wrapz[BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect.<locals>.wrapts8�����'+�t�v�v��������"�/�6�6�8�8�8�%� r)rCrDrr)�is_set�anyio�create_task_group� start_soon�wait)rJ�messagerI� response_sentr-s @��r�receive_or_disconnectzMBaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnectnsd������ �'�'�)�)�7�"�$5�6�6� �2�4�4�:�:�:�:�:�:�:� �&�&�&�&�&�&� �)�)�$� �0B�C�C�C�$(�D��$9�$9�9�9�9�9�9�9�G�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:����:�:�:�:�!�'�'�)�)�7�"�$5�6�6��s�3A;�; B�BrPr9c��p�K� ��|���d{V��dS#tj$rYdSwxYwr;)r=rL�BrokenResourceError)rP� send_streams �r� send_no_errorzEBaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.send_no_error�s]������%�*�*�7�3�3�3�3�3�3�3�3�3�3�3���0�����F�F����s �"�5�5c���K��5 ��������d{V��n#t$r }|�Yd}~nd}~wwxYwddd��dS#1swxYwYdSr;)r6� Exception)�exc�app_excrRrrrVrUs ������r�coroz<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro�s������!�&�&�&�"�h�h�u�.C�]�S�S�S�S�S�S�S�S�S�S��$�&�&�&�"%�����������&����&�&�&�&�&�&�&�&�&�&�&�&����&�&�&�&�&�&s0�A �&�A � <�7�A �<�A � A�A�infor �http.response.debugzNo response returned.�http.response.start�"typing.AsyncGenerator[bytes, None]c��K��23d{V��}|ddksJ�|�dd��}|r|WV�|�dd��sn�K6����dS)Nr �http.response.bodyr$rr%F)�get)rPr$rZ� recv_streams ��r� body_streamzCBaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.body_stream�s������%0��������'�"�6�?�.B�B�B�B�B�"�;�;�v�s�3�3�D��#�"� � � � �"�;�;�{�E�:�:����� &1��&�!�M�'�&s�A�status)� status_code�contentr\�headersr.)rPr rr9)rr9)rr_)rNrrbrL� EndOfStreamr'�_StreamingResponse� raw_headers)r@r[rPr\rd�responserZrRrVrcrQrrrUrIr-s @@@�������r� call_nextz.BaseHTTPMiddleware.__call__.<locals>.call_nextks���������(,�G� � � � � � � �& � � � � � � &� &� &� &� &� &� &� &� &� &� &� � !� !�$� '� '� '� <� +� 3� 3� 5� 5�5�5�5�5�5�5���{�{�6�4�0�0���6�?�&;�;�;��@P�$/�$7�$7�$9�$9�9�9�9�9�9�9�G����$� <� <� <��&�!�M�"�#:�;�;�;� <���� �6�?�&;�;�;�;�;� "� "� "� "� "� "� "�*�g�h�6G�Q\�Q\�Q^�Q^�ei�j�j�j�H�#*�9�#5�H� ��Os �AB�#B3)r@rrr) r6rr-rL�Event�create_memory_object_streamrrMr<�set�close) rrrr=r@rm�streamsrlrcrQrUrIr-s `` @@@@@r�__call__zBaseHTTPMiddleware.__call__bs ����������� ��=�F� "� "��(�(�5�'�4�0�0� 0� 0� 0� 0� 0� 0� 0� �F� ���0�0��!�1��� � � � �B �B �B �B �B �B �B �B �B �B �B �B �H?D�>_�>a�>a��#*� � �[� � $� $�+� $� $�'9�';�';� $� $��.�0�0� $� $� $� $� $� $� $�J�!%�!3�!3�G�Y�!G�!G�G�G�G�G�G�G���h�u�o�t�<�<�<�<�<�<�<�<�<��!�!�#�#�#��!�!�#�#�#�  $� $� $� $� $� $� $� $� $� $� $� $� $� $� $� $� $� $� $� $� $� $� $���� $� $� $� $� $� $� $� $� $� $� $� $� $� $� $���� $� $� $� $� $� $� $� $� $� $� $� $� $� $� $���� $� $� $� $� $� $� $� $� $� $� $� $� $� $� $� $���� $� $� $� $� $� $s�E'�E�D8�1AD � D8� D% �%D8�(D% �)D8�, E�8D< �<E�?D< �E� E'�E �E'�E �E'�'E+�.E+r@rrm�RequestResponseEndpointrc��"K�t���r;)�NotImplementedError)rr@rms rr7zBaseHTTPMiddleware.dispatch�s����!�#�#�#rr;)r6r r7r8rr9�rr rr r=r rr9)r@rrmrtrr)r/r0r1rrsr7�rrr5r5]s_������M�M�M�M�M�T$�T$�T$�T$�l$�$�$�$�$�$rr5c�(�eZdZ ddd�Zdd�ZdS)rj��Nrgrrf�intrh�typing.Mapping[str, str] | None� media_type� str | Noner\�&typing.Mapping[str, typing.Any] | Nonerr9c�v�||_||_||_||_|�|��d|_dSr;)r\� body_iteratorrfr}� init_headers� background)rrgrfrhr}r\s rrz_StreamingResponse.__init__�sA���� �$���&���$��� ���'�"�"�"�����rrr rr r=r c��BK�|j�|d|jd����d{V��|d|j|jd����d{V��|j23d{V��}|d|dd����d{V���6|ddd d����d{V��|jr|����d{V��dSdS) Nr])r r\r^)r rerhraTr#rF)r\rfrkr�r�)rrrr=r,s rrsz_StreamingResponse.__call__�s[���� �9� ��$� 5�t�y�I�I�J�J� J� J� J� J� J� J� J��d�-��*��+� � � � � � � � � � � � �-� Y� Y� Y� Y� Y� Y� Y�%��$� 4�e�RV�W�W�X�X� X� X� X� X� X� X� X� X�.��d�0�#�E�R�R�S�S�S�S�S�S�S�S�S� �?� $��/�/�#�#� #� #� #� #� #� #� #� #� #� $� $s� A&)rzNNN) rgrrfr{rhr|r}r~r\rrr9rw)r/r0r1rrsrxrrrjrj�sO�������37�!%�7;� � � � � �$�$�$�$�$�$rrj)� __future__r�typingrL�starlette._utilsr�starlette.requestsrr�starlette.responsesrr�starlette.typesr r r r r �Callable� Awaitablert�DispatchFunction�TypeVarrrr5rjrxrr�<module>r�s{��"�"�"�"�"�"� � � � � � � � �/�/�/�/�/�/�8�8�8�8�8�8�8�8�<�<�<�<�<�<�<�<�B�B�B�B�B�B�B�B�B�B�B�B�B�B� �/�7�)�V�5E�h�5O�*O�P���?�G�-D�#E�v�GW�X`�Ga�#a�b���F�N�3����I3�I3�I3�I3�I3�W�I3�I3�I3�X\$�\$�\$�\$�\$�\$�\$�\$�~!$�!$�!$�!$�!$��!$�!$�!$�!$�!$r
Memory