� M�g .���ddlZddlmZddlmZddlmZmZmZmZm Z m Z m Z m Z ddl mZmZe de eef���Ze d e eef���Zd e d efd �Zd �Zd eefd�Zdeded efd�Z d)dededed dfd�Zded efd�Zdejdejdedededef d�Zdejdejdededed edefd!�Zd"ed#ed$edejd%ejd ef d&�Zdejdejdeded df d'�Zdededefd(�ZdS)*�N)� Parameter)� FunctionType)�Callable�Dict�Optional�Tuple�Type�TypeVar�Union�get_type_hints�)�get_args� issubtype�_WrappedMethod)�bound�_WrappedMethod2�t�returnc�|�t|t��rdSt|��D]}t|��rdS�dS)a_Recursively check if `t` or any types contained by `t` is a `TypeVar`. Examples where we return `True`: `T`, `Optional[T]`, `Tuple[Optional[T], ...]`, ... Examples where we return `False`: `int`, `Optional[str]`, ... :param t: Type to evaluate. :return: `True` if the input type contains an unbound `TypeVar`, `False` otherwise. TF)� isinstancer r�_contains_unbound_typevar)r�args �c/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/overrides/signature.pyrr sU���!�W�����t���{�{���� $�S� )� )� ��4�4� � �5�c��t|��rdS|�dSt|��rdS t||��S#t$rYdSwxYw)NT)rr� TypeError)�left�rights r� _issubtyper"sm�� ��&�&���t� �}��t� ��'�'���t����u�%�%�%�� �����t�t����s�8� A�Ac�R� t|��S#ttf$rYdSwxYw�N)r � NameErrorr��callables r�_get_type_hintsr%0s<����h�'�'�'�� �y� !�����t�t����s ��&�&� callable1� callable2c��|j�d��d}t|dd��}|�dS|�d��d}||kS)N�.r� __module__F)r*�split�getattr)r&r'�mod1�mod2s r�_is_same_moduler/7sX�� � � %� %�c� *� *�1� -�D� �9�l�D� 1� 1�D� �|��u� �:�:�c�?�?�1� �D� �4�<�rF�super_callable� sub_callable� is_staticc ���t|��}t|��} tj|��}n#t$rYdSwxYwt |��}tj|��}t |��}|j}t ||��}|�<|�:t|||��t||||||��t|||||||��t||||��dS)a�Ensure that the signature of `sub_callable` is compatible with the signature of `super_callable`. Guarantees that any call to `super_callable` will work on `sub_callable` by checking the following criteria: 1. The return type of `sub_callable` is a subtype of the return type of `super_callable`. 2. All parameters of `super_callable` are present in `sub_callable`, unless `sub_callable` declares `*args` or `**kwargs`. 3. All positional parameters of `super_callable` appear in the same order in `sub_callable`. 4. All parameters of `super_callable` are a subtype of the corresponding parameters of `sub_callable`. 5. All required parameters of `sub_callable` are present in `super_callable`, unless `super_callable` declares `*args` or `**kwargs`. :param super_callable: Function to check compatibility with. :param sub_callable: Function to check compatibility of. :param is_static: True if staticmethod and should check first argument. N) � _unbound_func�inspect� signature� ValueErrorr%� __qualname__r/� ensure_return_type_compatibility� ensure_all_kwargs_defined_in_sub�)ensure_all_positional_args_defined_in_sub�ensure_no_extra_args_in_sub) r0r1r2� super_sig�super_type_hints�sub_sig�sub_type_hints� method_name�same_main_modules r�ensure_signature_is_compatiblerCBs��*#�>�2�2�N� ��.�.�L���%�n�5�5� � �� �����������'�~�6�6���� �-�-�G�$�\�2�2�N��+�K�&�|�^�D�D���#��(B�(�)9�>�;�W�W�W�(� �w� 0�.�)�[� � � � 2� � � � � � � � � � � � �7�I�{�K�K�K�K�Ks�5� A�Ar$c�T�t|d��rt|d��r|jS|S)N�__self__�__func__)�hasattrrFr#s rr4r4ws3���x��$�$�!���:�)F�)F�!�� � � �Orr=r?r>r@�check_first_parameterrAc ���td�|j���D����}t|j�����D�]�\}\}} |dkr|s�| jt jkr�(| jt jkr�>t|d||| ��st|�d|�d����||jv�r0| jt j k�rt|j� �����|��} |j|} | j| jkrG| jt jkr| jt jkst|�d|�d| j�d����|| kr-| jt jkrt|�d|�d|�d����||vrF||vrBt#||||��s&td|�d |�d | j�d | j�d� ������dS) Nc3�@K�|]}|jtjkV��dSr!��kindr� VAR_KEYWORD��.0�ps r� <genexpr>z3ensure_all_kwargs_defined_in_sub.<locals>.<genexpr>�s=������,-���)�'�'������rrT�: `z` is not present.� ` is not `�`z` is not parameter at index `�: z must be a supertype of `� ` but is `)�any� parameters�values� enumerate�itemsrLr�VAR_POSITIONAL�POSITIONAL_ONLY�is_param_defined_in_subrrM�list�keys�index� KEYWORD_ONLY�POSITIONAL_OR_KEYWORDr� annotation) r=r?r>r@rHrA�sub_has_var_kwargs� super_index�name� super_param� sub_index� sub_params rr:r:}sg�����18�1C�1J�1J�1L�1L�������-6�i�6J�6P�6P�6R�6R�,S�,S���(� �(�d�K� �!� � �$9� � � � �y�7� 7� 7� � � �y�8� 8� 8� �&� �$�*�G�[� � � ��{�F�F�t�F�F�F�G�G� G� �W�'� '� '�K�,<� �@U�,U�,U��W�/�4�4�6�6�7�7�=�=�d�C�C�I��*�4�0�I���9�>�1�1�� �I�$:�:�:��N�i�&E�E�E��;� V� V�4� V� V�;�CS� V� V� V�W�W�W��y�(�(�[�-=��AW�-W�-W��"�X�X�t�X�X�+�X�X�X�����(�(�(��N�*�*�"�#3�D�#9�>�$�;O�P�P�+� �� ���t���k�F\���hq�h|��������;�r�is_same_main_modulec �v�d�|j���D��}d�|j���D��}td�|D����} td�|D����} | s2t|��t|��krt |�d����d} t |��D�]�\} } | dkr|s�| | zt|��krq| jtjkr�;| jtj kr| j tj kr�f| jtj kr�|t |�d| j �d����| jtjkrdS|| | z}|jtjkr| d z} |jtjkr| st |�d|j �d ������|j| jkrk|jtj kr| jtj ksA| jtj kr| s*t |�d| j �d |j�d | j�d ����|j |vs|rmt|�|j d��|�| j d����s+t d |�d| j �d|j�d| j�d � ������dS)Nc�P�g|]#}|jtjtjfv�!|��$S��rLrrbrM�rO�vs r� <listcomp>z=ensure_all_positional_args_defined_in_sub.<locals>.<listcomp>�s:����� � �6�)�0�)�2G�H� H� H� � H� H� Hrc�P�g|]#}|jtjtjfv�!|��$Srnrorps rrrz=ensure_all_positional_args_defined_in_sub.<locals>.<listcomp>�s:����� � �6�)�0�)�2G�H� H� H� � H� H� Hrc3�@K�|]}|jtjkV��dSr!�rLrr\rNs rrQz<ensure_all_positional_args_defined_in_sub.<locals>.<genexpr>�s=������/0���)�*�*������rc3�@K�|]}|jtjkV��dSr!rurNs rrQz<ensure_all_positional_args_defined_in_sub.<locals>.<genexpr>�s=������/0���)�*�*������rz: parameter list too shortrrRz8` positionally required in subclass but not in supertyper z` must be presentrSz ` and is `rTrUz$ overriding must be a supertype of `rV)rXrYrW�lenrrZrLrr\r]�default�emptyrcrgr�getrd)r=r?r>r@rHrkrA�sub_parameter_values�super_parameter_values�sub_has_var_args�super_has_var_args� super_shiftrarjrhs rr;r;�s������#�*�*�,�,����� ���%�,�,�.�.����� ���4H����������4J������� �D��$8� 9� 9�C�@V�<W�<W� W� W��;�B�B�B�C�C�C��K�%�&:�;�;�,�,���y� �A�:�:�3�:� � �;� �#�&<�"=�"=� =� =��~��!9�9�9����)�";�;�;��%���8�8���~��!@�@�@����k�k�9�>�k�k�k��� � �>�Y�5� 5� 5� �F�F�,�U�[�-@�A� � � �y�7� 7� 7� �1� �K� � �y�7� 7� 7�#� X��;� V� V�;�3C� V� V� V�W�W�W� � � � �� .� .�� �I�$=�=�=��N�i�&E�E�E��^�y�'@�@�@�EW�@���j�j�9�>�j�j�[�=M�j�j�Yb�Yg�j�j�j��� � � � 0� 0� 0�4G� 0�� � � ��!1�4� 8� 8� � � �y�~�t� 4� 4� � � 1� �Q�K�Q�Q�9�>�Q�Q�Wb�Wm�Q�Q�zC�zN�Q�Q�Q��� ��U,�,rrgr}rerhc���||jvpt|jtjko|p]|jtjko|pF|jtjko|p/|jtjko|o|p|jtjko|Sr!)rXrLrr\rMr]rcrb)rgr}rer?rhs rr^r^�s��� ��"�"� O� � � � 8� 8� M�=M� O� � � � 5� 5� L�:L� O� � � � 9� 9� N�>N� O� � � � ?� ?� #� � #�"� O� � � � 6� 6� M�;M� rc���|j���}td�|D����}td�|D����}t|j�����D�]\}\}} | jt jkr<t|��|kr)t|��|jt jkr�Z||jvr�| j t j kr�| jt j krw| jt j krb| jt jkr|sK| jt jkr|s4| jt jkr|s|dks|rt!|�d|�d������dS)Nc3�@K�|]}|jtjkV��dSr!rurNs rrQz.ensure_no_extra_args_in_sub.<locals>.<genexpr>s,����R�R����9�#;�;�R�R�R�R�R�Rrc3�@K�|]}|jtjkV��dSr!rKrNs rrQz.ensure_no_extra_args_in_sub.<locals>.<genexpr>s,����Q�Q�q�1�6�Y�%:�:�Q�Q�Q�Q�Q�QrrrRz` is not a valid parameter.)rXrYrWrZr[rLrr]rwr_rxryr\rMrbrcr) r=r?rHrA� super_params�super_var_args�super_var_kwargsrirgrjs rr<r< s�� �'�.�.�0�0�L��R�R�\�R�R�R�R�R�N��Q�Q�L�Q�Q�Q�Q�Q��(1�'�2D�2J�2J�2L�2L�(M�(M�R�R�$� �$�D�)� �N�i�7� 7� 7��L�!�!�I�-�-��\�"�"�9�-�2�i�6O�O�O� � � �,� ,� ,��!�Y�_�4�4���)�":�:�:���)�"7�7�7��^�y�'=�=�=�BR�=��^�y�'@�@�@�^�@���)�"A�A�A�n�A��Q���"7���{�P�P�t�P�P�P�Q�Q� Q��'R�Rrc��|�dd��}|�dd��}t||��s|�t|�d|�d|�d����dSdS)Nrz: return type `z ` is not a `z`.)rzrr)r>r@rA� super_return� sub_returns rr9r9)s���$�'�'��$�7�7�L��#�#�H�d�3�3�J� �j�,� /� /� �L�4L��� S� S�:� S� S�<� S� S� S� � � � � �4L�4Lr)F) r5r�typesr�typingrrrrr r r r � typing_utilsrrrr�boolrrr%r/rCr4� Signature�strr:r;r^r<r9rnrr�<module>r�s?������������������X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�-�-�-�-�-�-�-�-���)��|�X�7M�1N�O�O�O���'�+�5��x�9O�3P�Q�Q�Q�����$�����, � � ���$�������~��/��d������2L�2L�"�2L�!�2L��2L� � 2L�2L�2L�2L�j�N��~����� *�� �*� � �*��*�� *�  � *� � *�*�*�*�ZH�� �H� � �H��H�� H�  � H� � H��H�H�H�H�V� ������� � � �"� �  � ����*R�� �R� � �R� �R�� R�  � R�R�R�R�> �� �,0� �?B� � � � � � r
Memory