� L�g ����UddlZddlZddlmZddlmZmZmZmZm Z m Z m Z m Z m Z ddlmZddlZddlmZmZmZmZmZmZmZmZddlmZmZddlmZmZddl m!Z!dd l"m#Z#erd d l$m%Z%e��Z&ee ee efe'd <d e e(e)dfde*fd�Z+de)de e)fd�Z,deeedddfde)dede ee)efde ede e*efde ede e!de e)de#ddefd�Z-dd�ded e ee ee efdefd!�Z.de)de)d"e)de)fd#�Z/d$d%de)fd&�Z0d'eeefd(eeefddfd)�Z1d*e eefd+e eefde eeffd,�Z2dS)-�N)� is_dataclass) � TYPE_CHECKING�Any�Dict�MutableMapping�Optional�Set�Type�Union�cast)�WeakKeyDictionary)� PYDANTIC_V2� BaseConfig� ModelField�PydanticSchemaGenerationError� Undefined� UndefinedType� Validator�lenient_issubclass)�DefaultPlaceholder� DefaultType)� BaseModel� create_model)� FieldInfo)�Literal�)�APIRoute�_CLONED_TYPES_CACHE� status_code�returnc�J�|�dS|dvrdSt|��}|dkp|dv S)NT>�1XX�2XX�3XX�4XX�5XX�default��>�0����)�int)r�current_status_codes �]/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/fastapi/utils.py�is_body_allowed_for_status_coder/*sM�����t������t��k�*�*��#�c�)�S�-@�O�-S� T�T��pathc�F�ttjd|����S)Nz{(.*?)})�set�re�findall)r1s r.�get_path_param_namesr6;s�� �r�z�)�T�*�*� +� +�+r0� validation�name�type_�class_validatorsr'�required� model_config� field_info�alias�mode)r7� serializationc �n�|pi}tr|pt|||���}n|p t��}||d�} tr| �d|i��n| �||||||d��� tdi| ��S#tt f$r%t j�d|�d���d�wxYw)N)� annotationr'r>)r8r=r?)r9r:r'r;r<r>z2Invalid args for response field! Hint: check that aY is a valid Pydantic field type. If you are using a return type annotation that is not a valid Pydantic field (e.g. Union[Response, dict, None]) you can disable generating the response model from the type annotation with the path operation decorator parameter response_model=None. Read more: https://fastapi.tiangolo.com/tutorial/response-model/�) rr�updater� RuntimeErrorr�fastapi� exceptions� FastAPIError) r8r9r:r'r;r<r=r>r?�kwargss r.�create_model_fieldrJ?s ��(�-�2���/�� �9��g�U�$ �$ �$ � � � �.�9�;�;� ��*� 5� 5�F��  �� � �v�t�n�%�%�%�%�� � ��$4�"�$� ,��  � � � � � ��#�#�F�#�#�#�� �7� 8� � � �� �-�-� D�� D� D� D� � �� � ���s �2 A>�>6B4�� cloned_types�fieldrLc����tr|S��t�|j}t|��rt |d��r|j}|}t |t��r�ttt|��}�� |��}|�Ut|j |���}|�|<|j ���D] }t|����|j |j<�!t#|j|���}|j|_|j|_|j|_|j|_|j|_|j|_|j|_|j|_|j|_|jr�fd�|jD��|_|jrt|j����|_|j|_|j|_|j|_|j |_ |j!|_!|�"��|S)N�__pydantic_model__)�__base__rK)r8r9c�2��g|]}t|������S)rK)�create_cloned_field)�.0� sub_fieldrLs �r.� <listcomp>z'create_cloned_field.<locals>.<listcomp>�s6��� � � �� � � � E� E� E� � � r0)#rrr9r�hasattrrOrrr r �getr�__name__� __fields__�valuesrRr8rJ� has_aliasr>r:r'r;r<r=� allow_none�validate_always� sub_fields� key_field� validators�pre_validators�post_validators� parse_json�shape�populate_validators)rMrL� original_type�use_type�f� new_fields ` r.rRrRms��� ��� ���*� ��K�M��M�"�"�9�w�}�>R�'S�'S�9�%�8� ��H��-��3�3� ��T�)�_�m�<�<� ��#�#�M�2�2�� � �#�M�$:�]�S�S�S�H�*2�L�� '�"�-�4�4�6�6� � ��.A��L�/�/�/��#�A�F�+�+�#�� �(�C�C�C�I��/�I���k�I�O�!&�!7�I��� �I����I��"�/�I�� �+�I�� �+�I�� %� 5�I�� �� � � � � �"�-� � � � �� �� �1� �O�%� � � � ��!�+�I��$�3�I�� %� 5�I�� �+�I���k�I�O� �!�!�#�#�#� �r0�methodc��tjdtd���|�|��}tjdd|��}|�d|�����}|S)Nzrfastapi.utils.generate_operation_id_for_path() was deprecated, it is not used internally, and will be removed soon�)� stacklevel�\W�_)�warnings�warn�DeprecationWarningr4�sub�lower)r8r1rj� operation_ids r.�generate_operation_id_for_pathrv�sk�� �M� >��� ���� �?�D�?�?�L��6�%��l�3�3�L�"�5�5�V�\�\�^�^�5�5�L� �r0�routerc���|j�|j��}tjdd|��}|jsJ�|�dt |j��d�����}|S)Nrnror)r8� path_formatr4rs�methods�listrt)rwrus r.�generate_unique_idr|�sk���j�5�%�"3�5�5�L��6�%��l�3�3�L� �=���=�"�E�E�T�%�-�%8�%8��%;�%A�%A�%C�%C�E�E�L� �r0� main_dict� update_dictc�x�|���D]�\}}||vrGt||t��r,t|t��rt|||���P||vrKt||t��r0t||t��r||||z||<��|||<��dS)N)�items� isinstance�dict�deep_dict_updater{)r}r~�key�values r.r�r��s���!�'�'�)�)�#�#� ��U� �9� � ��9�S�>�4�0�0� ��5�$�'�'� � �Y�s�^�U� 3� 3� 3� 3� �9� � ��9�S�>�4�0�0� ��;�s�+�T�2�2� �'�s�^�k�#�.>�>�I�c�N�N�"�I�c�N�N�#�#r0� first_item� extra_itemsc�N�|f|z}|D]}t|t��s|cS�|S)z� Pass items or `DefaultPlaceholder`s by descending priority. The first one to _not_ be a `DefaultPlaceholder` will be returned. Otherwise, the first item (a `DefaultPlaceholder`) will be returned. )r�r)r�r�r��items r.�get_value_or_defaultr��sF���M�K� '�E������$� 2�3�3� ��K�K�K� � �r0)3r4rp� dataclassesr�typingrrrrrr r r r �weakrefr rF�fastapi._compatrrrrrrrr�fastapi.datastructuresrr�pydanticrr�pydantic.fieldsr�typing_extensionsr�routingrr�__annotations__r,�str�boolr/r6rJrRrvr|r�r�rCr0r.�<module>r�s�� � � � � �����$�$�$�$�$�$� � � � � � � � � � � � � � � � � � � � � � �&�%�%�%�%�%����� � � � � � � � � � � � � � � � � � � � �C�B�B�B�B�B�B�B�,�,�,�,�,�,�,�,�%�%�%�%�%�%�%�%�%�%�%�%��"�!�!�!�!�!�!������^�D��O�T�)�_�$D�E���� U��s�C��~�1F�U�4�U�U�U�U�",�s�,�s�3�x�,�,�,�,�8<�&�+4�%/�&*��3?�+�+� �+� �+��t�C��N�3�4�+��c�]� +� �D�-�'�(� +� �z�"� +���#�+� �C�=�+� �/� 0�+��+�+�+�+�bPT�4�4�4� �4��>�$�y�/�4� �?�*J�K�L�4�� 4�4�4�4�n � � �� �%(� �� � � � ��j��S�����#��S�#�X��#�T�#�s�(�^�#�PT�#�#�#�#�$��(�+�5�6���*�K�7�8�� � �{� *�+������r0
Memory