PK APOCALYPSE V1

APOCALYPSE V1

Current Path : /opt/hc_python/lib/python3.12/site-packages/alembic/ddl/__pycache__/
Upload File :
Current File : //opt/hc_python/lib/python3.12/site-packages/alembic/ddl/__pycache__/mysql.cpython-312.pyc

�

���g�C���ddlmZddlZddlmZddlmZddlmZddlmZddlm	Z	ddlm
Zd	d
lm
Z
d	dlmZd	dlmZd	d
lmZd	dlmZd	dlmZd	dlmZd	dlmZd	dlmZddlmZddlmZddlmZddlmZer$ddlmZddlmZddl m!Z!ddl"m#Z#ddl$m%Z%d	dlm&Z&Gd�de�Z'Gd �d!e'�Z(Gd"�d#e�Z)Gd$�d%e�Z*Gd&�d'e*�Z+eed(d)�eed(d)�eed(d)�eed(d)�d*�����Z,ee)d(d)�						d0d+��Z-ee+d(d)�						d1d,��Z.ee*d(d)�						d2d-��Z/														d3d.�Z0ee	jBd(d)�						d4d/��Z1y)5�)�annotationsN)�Any)�Optional)�
TYPE_CHECKING)�Union��schema)�types�)�alter_table)�AlterColumn)�
ColumnDefault)�
ColumnName)�ColumnNullable)�
ColumnType)�format_column_name)�format_server_default)�DefaultImpl�)�util)�sqla_compat)�_is_type_bound)�compiles)�Literal)�MySQLDDLCompiler)�DropConstraint)�
Constraint)�
TypeEngine)�_ServerDefaultc����eZdZdZdZejddhddhfzZddgZ												d																															d�fd	�
Z				d�fd
�Z							dd�Z
d�Zd
�Zd�Z
�xZS)�	MySQLImpl�mysqlF�BOOL�TINYINT�JSON�LONGTEXTzcharacter set ([\w\-_]+)zcollate ([\w\-_]+)c�*��tj||	�stj||	�rt�|�||f|||||
||	d�|��|�|j|�|n||�rD|j
t||||�|n||�|n|
�|
nd|�|n||dur|n|	|�|n||
dur|
n|��	�y|�|�|�|
durD|j
t||||�|n||�|n|
�|
nd|�|n||dur|n|	|�|n||
dur|
n|��	�y|dur|j
t||||���yy)N)�nullable�type_r	�
existing_type�existing_nullable�server_default�existing_server_defaultTF)r	�newnamer(r)�default�
autoincrement�commentr)
r�_server_default_is_identity�_server_default_is_computed�super�alter_column�$_is_mysql_allowed_functional_default�_exec�MySQLChangeColumn�MySQLModifyColumn�MySQLAlterDefault)�self�
table_name�column_namer(r,�namer)r	r*r-r+r0�existing_autoincrementr1�existing_comment�kw�	__class__s                ��@/opt/hc_python/lib/python3.12/site-packages/alembic/ddl/mysql.pyr5zMySQLImpl.alter_column2s����$�2�2��3�
�
�
4�
4��3�
�

�G� ���
�"���+�"3�-�(?�
��
���t�H�H��&�E�M�>� 
�
�J�J�!���!�$(�$4�D�+�$�/�!� 1�<�.�!%�$)�#4�%�-�*��6�'�4�)�4�&�3�$+�%�#7��=M�5�
�@
� �� ��(��e�#��J�J�!���!�$(�$4�D�+�$�/�!� 1�<�.�!%�$)�#4�%�-�*��6�'�4�)�4�&�3�$+�%�#7��=M�5�
�>�5�
(��J�J�!���^�F��
�)�c�p��t|tj�rt|�ryt�|�|�y�N)�
isinstancer	�CheckConstraintrr4�drop_constraint)r;�constrBs  �rCrIzMySQLImpl.drop_constraint�s,����e�V�3�3�4���9N��
����&rDc�R�|duxr"|jtjuxr|duSrF)�_type_affinity�sqltypes�DateTime)r;r)r,s   rCr6z.MySQLImpl._is_mysql_allowed_functional_default�s7��
���
+��$�$��(9�(9�9�
+��d�*�	
rDc�|�|jjtjur |jr|j
s|s|dk(ry|rF|jjtjur |�t
jdd|�nd}||k7S|rF|jjtjur t
jdd|�}|d|�d�k7S|r�|r�t
jd|j��}t
jd|j��}|rI|sy|jd�|jd�k7ry|jd	�}|jd	�}t
jd
d|j��t
jd
d|j��k7S||k7S)Nz'0'Fz^'|'$��'z(.*) (on update.*?)(?:\(\))?$Trrz(.*?)(?:\(\))?$z\1)�typerLrM�Integer�primary_keyr0�re�sub�String�match�lower�group)r;�inspector_column�metadata_column�rendered_metadata_default�rendered_inspector_default�metadata_default�onupdate_ins�onupdate_mets        rC�compare_server_defaultz MySQLImpl.compare_server_default�s���
� � �/�/�8�3C�3C�C� �,�,�$�2�2�-�*�e�3��&� �%�%�4�4��8H�8H�H�.�9����x��%?�@��
'�
.�1J�J�J�%��$�$�3�3�x���F�!�v�v�h��4M�N��-�1�5E�4F�a�1H�H�H�
'�,E��8�8�0�*�0�0�2��L��8�8�0�)�/�/�1��L�
�#��!�'�'��*�l�.@�.@��.C�C��-9�-?�-?��-B�*�,8�,>�,>�q�,A�)��6�6�"�E�+E�+K�+K�+M�����"�E�+D�+J�+J�+L���
�.�1J�J�JrDc�2�t�}t|�D]�}|jr�|jD]�}|j|jk(r.|j|�|j
|j��f|jD]I}|j|jk(s�|j|�|j
|j�n|j|vs������t|�D]"}|j|vs�|j|��$yrF)�set�list�unique�columnsr>�remove�add�foreign_keys)	r;�conn_unique_constraints�conn_indexes�metadata_unique_constraints�metadata_indexes�removed�idx�col�fks	         rC�correct_for_autogen_constraintsz)MySQLImpl.correct_for_autogen_constraints�s����%����%�C��z�z��
�{�{���8�8�s�x�x�'� �'�'��,��K�K����)���*�*�B��w�w�#�(�(�*�$�+�+�C�0����C�H�H�-��	+�
�8�8�w�&��#�&�.�(�)�C��x�x�7�"� �'�'��,�*rDc��|D�cic]}|j|�j|�� }}|D�cic]}|j|�j|�� }}t|�j	|�D]�}||}||}|j
�0|j
j
�dk(r|j
�d|_|j��V|jj
�dk(s�t|j���d|_��ycc}wcc}w)N�restrict�RESTRICT)� _create_reflected_constraint_sig�unnamed_no_options�_create_metadata_constraint_sigrd�intersection�ondeleterY�onupdate)	r;�conn_fks�metadata_fksrr�conn_fk_by_sig�metadata_fk_by_sig�sig�mdfk�cnfks	         rC�correct_for_autogen_foreignkeysz)MySQLImpl.correct_for_autogen_foreignkeys!s���
���
�1�1�"�5�H�H�"�L��	�
�#�
�"��
�0�0��4�G�G��K�"�	�
�
�~�&�3�3�4F�G�C�%�c�*�D�!�#�&�D�
�
�
�)��M�M�'�'�)�Z�7��M�M�)� *��
��
�
�)��M�M�'�'�)�Z�7��M�M�)� *��
�#H��
��
s
�#C8�#C=)NFNNNNNNNNFN) r<�strr=r�r(�Optional[bool]r,�%Union[_ServerDefault, Literal[False]]r>�
Optional[str]r)�Optional[TypeEngine]r	r�r*r�r-zOptional[_ServerDefault]r+r�r0r�r?r�r1�$Optional[Union[str, Literal[False]]]r@r�rAr�return�None)rJrr�r�)r)r�r,r�r��bool)�__name__�
__module__�__qualname__�__dialect__�transactional_ddlr�
type_synonyms�type_arg_extractr5rIr6rbrsr��
__classcell__�rBs@rCr!r!(sg����K����-�-�	���	���1��M�4�5J�K��$(�@E�"�&*� $�.2�<@�,0�(,�15�8=�*.�q��q��q�!�	q�
>�q��
q�$�q��q�,�q�":�q�*�q�&�q�!/�q�6�q�(�q� �!q�"
�#q�f'��'�
�'�	
�#�	
�>�	
�
�		
�AK�F#-�J+rDr!c��eZdZdZy)�MariaDBImpl�mariadbN)r�r�r�r��rDrCr�r�?s���KrDr�c�6��eZdZ	d									d�fd�
Z�xZS)r:c�L��tt|�||��||_||_y)Nr)r4r
�__init__r=r/)r;r>r=r/r	rBs     �rCr�zMySQLAlterDefault.__init__Ds(���	�k�4�)�$�v�)�>�&�����rDrF)
r>r�r=r�r/rr	r�r�r��r�r�r�r�r�r�s@rCr:r:CsB���!%�	��	��	� �		�
�	�
�
	�	rDr:c�V��eZdZ							d																			d�fd�
Z�xZS)r8c
����tt|�||��||_||_||_||_||_|	|_|�tjd��tj|�|_
y)NrzDAll MySQL CHANGE/MODIFY COLUMN operations require the existing type.)r4r
r�r=r(r.r/r0r1r�CommandErrorrM�to_instancer))r;r>r=r	r.r)r(r/r0r1rBs          �rCr�zMySQLChangeColumn.__init__Qsv���	�k�4�)�$�v�)�>�&��� ��
�������*�������=��#�#�-��
�
�)�)�%�0��
rD)NNNNFNF)r>r�r=r�r	r�r.r�r)r�r(r�r/�/Optional[Union[_ServerDefault, Literal[False]]]r0r�r1r�r�r�r�r�s@rCr8r8Ps����
!%�!%�&*�#'�CH�(,�8=�1��1��1��	1�
�1�$�
1�!�1�A�1�&�1�6�1�
�1�1rDr8c��eZdZy)r9N)r�r�r�r�rDrCr9r9ms��rDr9r"r�c��td��)Nz9Individual alter column constructs not supported by MySQL)�NotImplementedError��element�compilerrAs   rC� _mysql_doesnt_support_individualr�qs��
�C��rDc	���t||j|j��dt||j��d|j
�dt
||j
�z��Sd��S)Nz ALTER COLUMN � zSET DEFAULT %szDROP DEFAULT)rr<r	rr=r/rr�s   rC�_mysql_alter_defaultr�{so��
	�H�g�0�0�'�.�.�A��8�W�%8�%8�9����*�
�4�X�w���O�O�
 �	�� �
 �	�rDc��t||j|j��dt||j��dt||j|j|j|j|j����S)Nz MODIFY r��r(r,r)r0r1)rr<r	rr=�_mysql_colspecr(r/r)r0r1r�s   rC�_mysql_modify_columnr��sf��
	�H�g�0�0�'�.�.�A��8�W�%8�%8�9����%�%�"�?�?��-�-�!�/�/��O�O�
	
��rDc�,�t||j|j��dt||j��dt||j
��dt
||j|j|j|j|j����S)Nz CHANGE r�r�)rr<r	rr=r.r�r(r/r)r0r1r�s   rC�_mysql_change_columnr��st��
	�H�g�0�0�'�.�.�A��8�W�%8�%8�9��8�W�_�_�5����%�%�"�?�?��-�-�!�/�/��O�O�
	
�	�rDc��|jjj|��d|rdnd��}|r|dz
}|dur|�|dt||�zz
}|r4|d|jj|t
j��zz
}|S)Nr��NULLzNOT NULLz AUTO_INCREMENTFz DEFAULT %sz COMMENT %s)�dialect�
type_compiler�processr�sql_compiler�render_literal_valuerMrW)r�r(r,r)r0r1�specs       rCr�r��s���	���&�&�.�.�u�5���
�*��D���!�!���U�"�~�'A��
� 5�h�� O�O�O����
�� 5� 5� J� J��X�_�_�&�!
�
�	
���KrDc�<�|j}t|tjtjtj
f�r|rJ�|j
|�St|tj�r�|jjrDd|jj|j��d|jj|���Sd|jj|j��d|jj|���Std��)zVRedefine SQLAlchemy's drop constraint to
    raise errors for invalid constraint type.zALTER TABLE z DROP CONSTRAINT z DROP CHECK zFNo generic 'DROP CONSTRAINT' in MySQL - please specify constraint type)r�rGr	�ForeignKeyConstraint�PrimaryKeyConstraint�UniqueConstraint�visit_drop_constraintrHr��
is_mariadb�preparer�format_table�table�format_constraintr�)r�r�rA�
constraints    rC�_mysql_drop_constraintr��s������J����'�'��'�'��#�#�	
���
�v��-�-�g�6�6�	�J�� 6� 6�	7����&�&��!�!�.�.�z�/?�/?�@��!�!�3�3�J�?��
�'��!�!�.�.�z�/?�/?�@��!�!�3�3�J�?��
�
"�
-�
�	
rD)r�r:r�rr�r�)r�r9r�rr�r�)r�r8r�rr�r�)r�rr(r�r,r�r)rr0r�r1r�r�r�)r�rr�rr�r�)2�
__future__rrU�typingrrrr�
sqlalchemyr	r
rM�baserr
rrrrrr�implrrPrr�util.sqla_compatrrr�sqlalchemy.dialects.mysql.baser�sqlalchemy.sql.ddlr�sqlalchemy.sql.schemar�sqlalchemy.sql.type_apirrr!r�r:r8r9r�r�r�r�r�r�r�rDrC�<module>r�s��#�	��� ���(����� ��$�'����-�'���?�1�0�2�$�T+��T+�n�)��
��
�1��1�:	�)�	�
�.�'�9�-�	�*�g�y�)�	�-��)�,�	�*�g�y�)��*�-�*�.��
�
�W�i�0��
��*:����1��
�
�W�i�0��
��*:����1��"
�
�W�i�0��
��*:����1��$�����D���	�
"��2�
�	��0
�&�
�
��)�4�#
�
�#
�'7�#
��#
�5�#
rD

if you don't want to be vaporized in a nuclear explosion, i simply have to become nuclear myself… i am atomic