� k\�g�� ��dZddlmZddlZddlmZddlmZddlm Z ddl m Z dd l m Z dd l m Z dd l mZdd l mZdd l mZddl mZddl mZddlmZddlmZGd�d��Zedede dedediZd�Zd�Zejed��d���Zeje d��ejed��d�����ZdS) z5Establish constraint and index naming conventions. �)� annotationsN�)�events)� _NONE_NAME)�conv)�CheckConstraint)�Column)� Constraint)�ForeignKeyConstraint)�Index)�PrimaryKeyConstraint)�Table)�UniqueConstraint�)�event)�excc�J�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z d �Z d �Z d S) �ConventionDictc�|�||_t|t��|_||_||_|j|_dS�N)�const� isinstancer �_is_fk�table� convention�name� _const_name)�selfrrrs �e/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/sqlalchemy/sql/naming.py�__init__zConventionDict.__init__"s9���� � ��(<�=�=�� ��� �$��� �:�����c��|jjSr)rr�rs r�_key_table_namezConventionDict._key_table_name)s ���z��r!c��|jr9 |jj|}t|j|��S#t $rYdSwxYwt |jj��} ||}t||��S#t $rYdSwxYw)N�)rr�elements�getattr�parent� IndexError�list�columns)r�idx�attrname�fk�cols�cols r� _column_XzConventionDict._column_X,s��� �;� .� 4��Z�(��-���r�y�(�3�3�3��� � � ��r�r� ���� �� �*�+�+�D� .��3�i���s�H�-�-�-��� � � ��r�r� ���s�0� >�>�A3�3 B�Bc��|jdtfvrtjd���t |jt ��s d|j_|jS)NzcNaming convention including %(constraint_name)s token requires that constraint is explicitly named.)rrr�InvalidRequestErrorrrrrr#s r�_key_constraint_namez#ConventionDict._key_constraint_name=sX�� � ��j�1� 1� 1��)�2��� � �$�*�D�1�1� #�"�D�J�O���r!c�.�|�|d��S)N�key�r2�rr-s r�_key_column_X_keyz ConventionDict._key_column_X_keyHs���~�~�c�5�)�)�)r!c�.�|�|d��S)Nrr8r9s r�_key_column_X_namez!ConventionDict._key_column_X_nameNs���~�~�c�6�*�*�*r!c�.�|�|d��S)N� _ddl_labelr8r9s r�_key_column_X_labelz"ConventionDict._key_column_X_labelQs���~�~�c�<�0�0�0r!c��|jjd}|j�d��}t |��dkr|\}}}n|\}}|S)Nr�.�)rr'�target_fullname�split�len)rr/�refs� refschema�reftable�refcols r�_key_referred_table_namez'ConventionDict._key_referred_table_nameTsS�� �Z� �� #���!�'�'��,�,�� �t�9�9��>�>�*.� '�I�x���#� �H�f��r!c�>�|jj|}|jjSr)rr'�columnr)rr-r/s r�_key_referred_column_X_namez*ConventionDict._key_referred_column_X_name]s�� �Z� �� %���y�~�r!c��||jvr!|j||j|j��St|d|z��rt |d|z����St jd|��}|�rU|�d��}|�d��}|r�|jr |jj }nt|jj ��}g}t|��D]k\}}d|� d|zd��z} |�t ||��|�����O#t$rt!|���wxYw|�d��rdnd } | �|��Sd|� |d��z}t'|��}t||��rt ||��|��St!|���) Nz_key_%sz.*_?column_(\d+)(_?N)?_.+rr�_key_�0�X�_r&)rrr�hasattrr(�re�match�grouprr'r+r,� enumerate�replace�append�AttributeError�KeyError� startswith�join�int) rr7� col_templater-� multiples�elems�tokens�elem�attr�seps r� __getitem__zConventionDict.__getitem__ds��� �$�/� !� !�'�4�?�3�'�� �D�J�?�?� ?� �T�9�s�?� +� +� 8�1�7�4��S��1�1�3�3� 3��8�$@�#�F�F�L�� 8�"�(�(��+�+��(�.�.�q�1�1� ��8��{�9� $� � 3��� $�T�Z�%7� 8� 8���F�%.�u�%5�%5�0�0� ��T�&����S�9�_�c�)J�)J�J��0�"�M�M�*=�'�$��*=�*=�c�*B�*B�C�C�C�C��-�0�0�0�"*�3�-�-�/�0����!*�!5�!5�c�!:�!:�B�#�#��C��8�8�F�+�+�+�"�S�[�[��c�%:�%:�:�D��c�(�(�C��t�T�*�*�8�2�w�t�T�2�2�3�7�7�7��s�m�m�s �=,D*�*EN) �__name__� __module__� __qualname__r r$r2r5r:r<r?rJrMrf�r!rrr!s�������&�&�&����.�.�.�"  �  �  �*�*�*� +�+�+�1�1�1�����������r!r�ix�pk�ck�uqr/c��|jD]=}|tvr$t||vr|t|cS||vr ||cS�>dSr)�__mro__� _prefix_dict)�dict_r7�super_s r�_get_conventionrt�sh���+���� �\� !� !�l�6�&:�e�&C�&C���f�-�.� .� .� .� �u�_�_���=� � � ���tr!c�f�|j}t|jt|����}t |jt ��r|jS|�Yt |jt ��s?|j�d|vs|jtur&t |t|||j��z��S|turdSdS)N�constraint_name) �metadatart�naming_convention�typerrrrr)rrrwrs r�_constraint_name_for_tablerz�s����~�H� ��!;�T�%�[�[�I�I�J��%�*�d�#�#���z�����5�:�t�,�,� � �J� � �J�.�.��z�Z�'�'�� ��U�E�8�+E�F�F� G� � � � �z� !� !��t� "� !r!�'_sa_event_column_added_to_pk_constraintc�j�|jr)|j}d|_t||��}|r ||_dSdSdSr)�_implicit_generatedrrrz)� pk_constraintr1r�newnames r�_column_added_to_pk_constraintr��sZ���(� )� �#��!� ��,�]�E�B�B�� � )�!(�M� � � � )� )� )� )r!�after_parent_attachc� ��t|t��rtj|d�fd���dSt|t��rEt�jt ��s�jturdSt�|��}|r |�_dSdSdS)Nr�c�$��t�|��Sr)�_constraint_name)r1rrs �r�<lambda>z"_constraint_name.<locals>.<lambda>�s���/��u�=�=�r!) rr r�listenrrrrrz)rrrs` rr�r��s�����%�� � �!� � � � !� =� =� =� =� � � � � � �E�5� !� !�!� �e�j�$� '� '� �5�:��+C�+C� �F�,�U�E�:�:�� � !� �E�J�J�J� !�!�  !� !r!)�__doc__� __future__rrTr&r�baserr'r�schemarr r r r r rrrrrrqrtrz� listens_forr�r�rjr!r�<module>r�s ���� #�"�"�"�"�"� � � � �������������"�"�"�"�"�"�#�#�#�#�#�#�������������(�(�(�(�(�(�������(�(�(�(�(�(�������$�$�$�$�$�$�������������a�a�a�a�a�a�a�a�J �4��$��T��d��$� � �������.����C��� )� )��� )����:�4�5�5����5�/�0�0�!�!�1�0�6�5�!�!�!r!
Memory