Hacked By AnonymousFox

Current Path : /opt/cloudlinux/venv/lib64/python3.11/site-packages/alembic/autogenerate/__pycache__/
Upload File :
Current File : //opt/cloudlinux/venv/lib64/python3.11/site-packages/alembic/autogenerate/__pycache__/render.cpython-311.pyc

�

�܋fa���	�ddlmZddlmZddlmZddlZddlmZddlm	Z	ddlm
Z
ddlmZdd	lmZdd
lm
Z
ddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZer~ddlm Z ddlm!Z!ddlm"Z"ddl#m$Z$ddl#m%Z%ddl#m&Z&ddl#m'Z'ddl#m(Z(ddl#m)Z)dd l#m*Z*dd!l#m+Z+dd"l#m,Z,dd#l#m-Z-dd$l.m/Z/dd%l0m1Z1dd&l2m3Z3dd'l4m5Z5dd(l6m7Z7dd)l6m8Z8dd*l9m:Z:dd+l9m;Z;d,Z<d�d3�Z=d�d6�Z>d�d<�Z?ej@��xZAZBd�d?�ZCd�dC�ZDd�dD�ZEeB�Fej8��d�dF���ZGeB�FejH��d�dH���ZIeB�FejJ��d�dJ���ZKeB�FejL��d�dL���ZMeB�FejN��d�dN���ZOeB�FejP��d�dP���ZQeB�FejR��d�dR���ZSeB�FejT��d�dT���ZUeB�FejV��d�dV���ZWeB�FejX��dW���ZYeB�FejZ��dX���Z[eB�Fej\��d�dZ���Z]eB�Fej^��d�d\���Z_eB�Fej`��d�d^���ZaeB�Fejb��d�d`���ZcGda�db��Zdd�de�Ze		d�d�dm�Zfd�dp�Zgd�dt�Zhdu�Zid�dv�Zjd�dw�Zkd�d{�Zld�d~�Zmd�d��Zn	d�d�d��Zod�d��Zpd�d��Zqd�d��Zr	d�d�d��Zsd�d��Ztd�d��Zu	d�d�d��Zvej@��Zwd�d��Zxew�Fej,��d�d����Zyd�d��Zzd�d��Z{ew�Fej)��d�d����Z|ew�Fej-��d�d����Z}ew�Fej$��d�d����Z~eB�Fej��d�d����Z�eA����ZBdS)��)�annotations)�OrderedDict)�StringION)�Any)�cast)�Dict)�List)�Optional)�Tuple)�
TYPE_CHECKING)�Union)�
PythonPrinter)�schema)�sql)�types)�conv)�quoted_name�)�util)�ops)�sqla_compat)�Literal)�
ColumnElement)�
TextClause)�CheckConstraint)�Column)�
Constraint)�FetchedValue)�
ForeignKey)�ForeignKeyConstraint)�Index)�MetaData)�PrimaryKeyConstraint)�UniqueConstraint)�ARRAY)�
TypeEngine)�AutogenContext)�Config)�MigrationScript)�ModifyTableOps)�Computed)�Identity��autogen_contextr'�name�sqla_compat._ConstraintName�return�*Optional[Union[quoted_name, str, _f_name]]c��t|t��rtt|��|��St	j|��S�N)�
isinstancer�_f_name�_alembic_autogenerate_prefixr�constraint_name_or_none)r.r/s  �R/opt/cloudlinux/venv/lib64/python3.11/site-packages/alembic/autogenerate/render.py�_render_gen_namer:7s@���$����9��3�O�D�D�d�K�K�K��2�4�8�8�8��text�strc��tjdtj���d|�����}tjdtj���d|��}|S)N�^�    z +$�)�re�compile�M�sub�strip)r<s r9�_indentrGAsY��
�:�d�B�D�!�!�%�%�f�d�3�3�9�9�;�;�D�
�:�f�b�d�#�#�'�'��D�1�1�D��Kr;�migration_scriptr)�
template_args�Dict[str, Union[str, Config]]�Nonec�2�|j}t|j|j��D]O\}}t	t||����||j<t	t||����||j<�Pd�t|����|d<dS)N�
�imports)
rN�zip�upgrade_ops_list�downgrade_ops_listrG�_render_cmd_body�
upgrade_token�downgrade_token�join�sorted)r.rHrIrN�upgrade_ops�
downgrade_opss      r9� _render_python_into_templatevarsrYGs���
�%�G�&)��)�+;�+N�'�'�
�
�"��]�4;��[�/�:�:�4
�4
�
�k�/�0�8?��]�O�<�<�8
�8
�
�m�3�4�4� $�y�y�����9�9�M�)���r;�op_container�ops.OpContainerc�t�t��}t|��}|�d��d}|jD]=}t	||��}|pt|��}|D]}|�|����>|s|�d��|�d��|���S)Nz=# ### commands auto generated by Alembic - please adjust! ###F�passz# ### end Alembic commands ###)rr�	writeliner�	render_op�bool�getvalue)rZr.�buf�printer�	has_lines�op�lines�lines        r9rRrR]s���
�*�*�C��C� � �G����G�����I���$�$���/�2�.�.���,��e���	��	$�	$�D����d�#�#�#�#�	$��"����&�!�!�!����6�7�7�7��<�<�>�>�r;re�ops.MigrateOperation�	List[str]c�v�t�|��}tj|||����}|Sr4)�	renderers�dispatchr�to_list)r.re�rendererrfs    r9r_r_ys7���!�!�"�%�%�H��L���/�2�6�6�7�7�E��Lr;c�H�d�t||����S)NrM)rUr_�r.res  r9�render_op_textrq�s ���9�9�Y���3�3�4�4�4r;r*c���|j}|�dd��}|jr�g}|r�|���5|�d|j�d|j�d���|jD]'}t||��}|�|���(|�d��ddd��n#1swxYwYn/|jD]'}t||��}|�|���(|SgS)N�render_as_batchFzwith op.batch_alter_table(z	, schema=z) as batch_op:rA)	�opts�getr�
_within_batch�append�
table_namerr_�extend)r.rertrsrf�t_op�t_liness       r9�_render_modify_tabler|�sW����D��h�h�0�%�8�8�O�	�v�����
	&� �.�.�0�0�
!�
!������}�}�}�b�i�i�i�1�����F�*�*�D�'���>�>�G��L�L��)�)�)�)����R� � � �
!�
!�
!�
!�
!�
!�
!�
!�
!�
!�
!����
!�
!�
!�
!����
&�
&��#�O�T�:�:�����W�%�%�%�%����	s�A+B4�4B8�;B8�ops.CreateTableCommentOpc���d}|�t|��|j|j�
d|jznd|j�
d|jznd|j�
d|jzndd���S)Nz�{prefix}create_table_comment(
{indent}'{tname}',
{indent}{comment},
{indent}existing_comment={existing},
{indent}schema={schema}
)�%r�'%s'r@)�prefix�tname�comment�existingr�indent)�formatr7rxr��existing_commentr�r.re�templs   r9�_render_create_table_commentr��s���	�
��<�<�+�O�<�<��m�%'�Z�%;��r�z�!�!��
��*���+�+�+�
�%'�Y�%:�v��	�!�!����	�	�	r;�ops.DropTableCommentOpc��d}|�t|��|j|j�
d|jznd|j�
d|jzndd���S)Nzm{prefix}drop_table_comment(
{indent}'{tname}',
{indent}existing_comment={existing},
{indent}schema={schema}
)rr�r@)r�r�r�rr�)r�r7rxr�rr�s   r9�_render_drop_table_commentr��sn��	�
��<�<�+�O�<�<��m�
��*���+�+�+�
�%'�Y�%:�v��	�!�!������r;�ops.CreateTableOpc��������}d��fd�|jD��D��td���fd�|jD��D����z}t	|��t
krdd�|��zdz}nd�|��}dt�j��t���|d	�z}�j
r|d
t�j
��zz
}|j}|r|dt|��zz
}t�j��D],}|d|�
dd
���d�j|��z
}�-|jr,d�d�|jD����}|d|zz
}|dz
}|S)Nc��g|]}|�|��S�r���.0�cols  r9�
<listcomp>z_add_table.<locals>.<listcomp>�s0�����������r;c�0��g|]}t|�����Sr�)�_render_column)r�r�r.s  �r9r�z_add_table.<locals>.<listcomp>�s0���
�
�
�58�N�3��0�0�
�
�
r;c��g|]}|�|��Sr4r�)r��rconss  r9r�z_add_table.<locals>.<listcomp>�s,��		
�		
�		
��� �
�!� � r;c�<��g|]}t|��j����Sr�)�_render_constraint�_namespace_metadata)r��consr.res  ��r9r�z_add_table.<locals>.<listcomp>�s?�������#��/�2�+A�����r;z*[�,
�]z.%(prefix)screate_table(%(tablename)r,
%(args)s)�	tablenamer��argsz,
schema=%rz,
comment=%r� �_�=�, c3� K�|]	}d|zV��
dS)r�Nr�)r��ps  r9�	<genexpr>z_add_table.<locals>.<genexpr>�s&����A�A�A�V�a�Z�A�A�A�A�A�Ar;z,
prefixes=[%s]z
))�to_table�columnsrV�constraints�len�MAX_PYTHON_ARGSrU�_identrxr7rr��kw�replace�	_prefixes)	r.re�tabler��args_strr<r��k�prefixess	``       r9�
_add_tabler��s������K�K�M�M�E���
�
�
�
�<A�M�
�
�
����	�		
�		
������"�-�	���		
�		
�		
�	�	�
�D�&�4�y�y�?�"�"��%�*�*�T�*�*�*�S�0����:�:�d�#�#��<��B�M�*�*�.��?�?��@�@��D�

�y�3�����	�!2�!2�2�2���m�G��2���&��/�/�1�1��
�B�E�]�]�=�=����a�i�i��S�1�1�1�1�2�5��8�8�<�<�����.��9�9�A�A���A�A�A�A�A���"�X�-�-���E�M�D��Kr;�ops.DropTableOpc��dt|��t|j��d�z}|jr|dt|j��zz
}|dz
}|S)Nz%(prefix)sdrop_table(%(tname)r)r�r��, schema=%r�))r7r�rxr)r.rer<s   r9�_drop_tabler�sa��+�.��?�?���
�&�&�/�/��D�
�y�2��
��r�y� 1� 1�1�1���C�K�D��Kr;�ops.CreateIndexOpc
�$��|���}�j}|rd}nd}|j�J�|t���t	�|j��t
|jj��d�t|�����|j	pd|jj
rdt
|jj
��zndt|j��r;dd��fd�|j�
��D����zndd�z}|S)	NzL%(prefix)screate_index(%(name)r, [%(columns)s], unique=%(unique)r%(kwargs)s)za%(prefix)screate_index(%(name)r, %(table)r, [%(columns)s], unique=%(unique)r%(schema)s%(kwargs)s)r�Fr�rAc�@��g|]\}}|�dt|�������S�r���_render_potential_expr�r��key�valr.s   �r9r�z_add_index.<locals>.<listcomp>2�I������!��S��s�s�2�3��H�H�H�J���r;)r�r/r�r��uniquer�kwargs)�to_index�
_has_batchr�r7r:r/r�rU�_get_index_rendered_expressionsr�rr�r��items�r.re�index�	has_batch�tmplr<s`     r9�
_add_indexr�sI����K�K�M�M�E��*�I��	
�
+�	
��
5�	
�
�;�"�"�"��.��?�?� ��%�*�=�=����(�)�)��9�9�+�E�?�C�C�
�
��,�'�%��;���=�6�%�+�*<�#=�#=�=�=�
��u�|������i�i�����%*�L�$6�$6�$8�$8������
�
��-���D�0�Kr;�ops.DropIndexOpc���|���}�j}|rd}nd}|t���t�|j��t|j��|jrdt|j��zndt|j	��r;dd�
�fd�|j	���D����zndd�z}|S)Nz(%(prefix)sdrop_index(%(name)r%(kwargs)s)zM%(prefix)sdrop_index(%(name)r, table_name=%(table_name)r%(schema)s%(kwargs)s)r�rAr�c�@��g|]\}}|�dt|�������Sr�r�r�s   �r9r�z_drop_index.<locals>.<listcomp>Ur�r;)r�r/rxrr�)r�r�r7r:�
index_namer�rxrr�r�rUr�r�s`     r9�_drop_indexr�?s����K�K�M�M�E��*�I��
�9���
=�	
�
�.��?�?� ��"�-�@�@��R�]�+�+�:<�)�K�M�F�2�9�$5�$5�5�5���u�|������i�i�����%*�L�$6�$6�$8�$8������
�
��!���D�$�Kr;�ops.CreateUniqueConstraintOpc�J�t|���|d��gS)NT)�_uq_constraint�
to_constraintrps  r9�_add_unique_constraintr�bs%��
�2�+�+�-�-���E�E�F�Fr;�ops.CreateForeignKeyOpc��tt||j����g}|js4|�tt|j������|�tt|j����td�|j	D����td�|j
D����g��gd�}|js|�dd��|D]4}||jvr)|j|}|�|�|�d|�����5dt|��d�|��d	�zS)
Nc�,�g|]}t|����Sr��r�r�s  r9r�z&_add_fk_constraint.<locals>.<listcomp>us��7�7�7�#�&��+�+�7�7�7r;c�,�g|]}t|����Sr�r�r�s  r9r�z&_add_fk_constraint.<locals>.<listcomp>vs��8�8�8�#�&��+�+�8�8�8r;)�referent_schema�onupdate�ondelete�	initially�
deferrable�	use_alterr�
source_schemar�z&%(prefix)screate_foreign_key(%(args)s)r��r�r�)�reprr:�constraint_namer�rwr��source_tablery�referent_table�
local_cols�remote_cols�insertr�r7rU)r.rer�r�r��values      r9�_add_fk_constraintr�isd��

�!�/�2�3E�F�F�G�G�H�D��%�3����D����0�0�1�1�2�2�2��K�K����)�*�*�+�+��7�7���7�7�7�8�8��8�8���8�8�8�9�9�	
�������F��%�*��
�
�a��)�)�)�
�2�2�����:�:��E�!�H�E�� ����q�q�q�%�%�0�1�1�1��3�.��?�?��	�	�$���7�7��r;c��t���r4��NotImplementedError��
constraintr.s  r9�_add_pk_constraintr�����
�
�
�r;c��t���r4r�r�s  r9�_add_check_constraintr��r�r;�ops.DropConstraintOpc	���|jrd}nd}|t|��t||j��t	|j��|j|jrdt	|j��zndd�z}|S)Nz3%(prefix)sdrop_constraint(%(name)r, type_=%(type)r)zO%(prefix)sdrop_constraint(%(name)r, '%(table_name)s'%(schema)s, type_=%(type)r)r�rA)r�r/rx�typer)r�r7r:r�r�rx�constraint_typer)r.re�templater<s    r9�_drop_constraintr��s���
�!�
�K���
E�	�
�.��?�?� ��"�2D�E�E��R�]�+�+��"�9;��J�=�6�"�)�#4�#4�4�4�����D��Kr;�ops.AddColumnOpc��|j|j|j}}}|jrd}nd}|r|dz
}|dz
}|t	|��|t||��|d�z}|S)Nz %(prefix)sadd_column(%(column)s)z*%(prefix)sadd_column(%(tname)r, %(column)s�, schema=%(schema)rr�)r�r��columnr)rrxrr�r7r�)r.rerr�rr�r<s       r9�_add_columnr�s����I�r�}�b�i�6�E�F��!��5���?���	.��-�-�H��C����.��?�?�� ���9�9��	���D��Kr;�ops.DropColumnOpc���|j|j|j}}}|jrd}nd}|r|dz
}|dz
}|t	|��t|��t|��t|��d�z}|S)Nz %(prefix)sdrop_column(%(cname)r)z*%(prefix)sdrop_column(%(tname)r, %(cname)rrr�)r�r��cnamer)rrx�column_namer�r7r�)r.rerr�rr�r<s       r9�_drop_columnr	�s���"$��B�M�2�>�;�E�F��!��5���?���	.��-�-�H��C����.��?�?�������$�$���.�.�	���D��Kr;�ops.AlterColumnOpc���|j}|j}|j}|j}|j}|j}|j�dd��}|j}	|j	}
|j
}|j}|j}
d}|j
rd}nd}|t|��||d�z}|	�|d|�dt|	|����z
}|durt!||��}|d|�d	|��z
}|�|d|�d
t||����z
}|�|d|�d|��z
}|dur|d|�d|��z
}|�|d|�d
|��z
}|�
|
�|d|�d|
��z
}|�|d|�d|��z
}|dur|rt!||��}|d|�d|��z
}|
r|j
s|d|�d|
��z
}|dz
}|S)N�
autoincrementz           z %(prefix)salter_column(%(cname)rz+%(prefix)salter_column(%(tname)r, %(cname)r)r�r�rr�zexisting_type=Fzserver_default=ztype_=z	nullable=zcomment=zexisting_comment=zexisting_nullable=zautoincrement=zexisting_server_default=zschema=r�)rxr�modify_server_default�modify_type�modify_nullable�modify_commentr�ru�
existing_type�existing_nullabler��existing_server_defaultrr�r7�
_repr_type�_render_server_default)r.rer�r�server_default�type_�nullabler�rrrr�rrr�r�r<�rendereds                  r9�
_alter_columnr�sR��

�M�E��N�E��-�N��N�E��!�H���G��E�I�I�o�t�4�4�M��$�M��,���*�� �8��
�Y�F�
�F��!�A�5���@���.��?�?������D�
� ����F�F��}�o�6�6�6�
�	
���U�"�"�)�.�/�J�J����F�F�F�H�H�=�=������6�6�6�:�e�_�+M�+M�+M�N�N������f�f�f�h�h�7�7���e�����V�V�V�W�W�5�5���#���f�f�f�6F�6F�G�G����-�9���v�v�v�7H�7H�I�I��� ���6�6�6�=�=�A�A������#:��)�#�_�
�
��	
��V�V�V�X�X�F�F��
�4�o�0�4���F�F�F�F�F�3�3���C�K�D��Kr;c��eZdZd
d�Zdd�Zd	S)r6r�r=r/rr1rKc�"�||_||_dSr4)r�r/)�selfr�r/s   r9�__init__z_f_name.__init__s�������	�	�	r;c�@�|j�dt|j���d�S)Nzf(r�)r�r�r/)rs r9�__repr__z_f_name.__repr__s#�� �K�K�K���	�):�):�):�):�;�;r;N)r�r=r/rr1rK)r1r=)�__name__�
__module__�__qualname__rr r�r;r9r6r6s<����������<�<�<�<�<�<r;r6�!Optional[Union[quoted_name, str]]�
Optional[str]c��|�|St|t��rt|��St|t��r|SdS)z�produce a __repr__() object for a string identifier that may
    use quoted_name() in SQLAlchemy 0.9 and greater.

    The issue worked around here is that quoted_name() doesn't have
    very good repr() behavior by itself when unicode is involved.

    N)r5rr=)r/s r9r�r�"sM���|���	�D�+�	&�	&���4�y�y��	�D�#�	�	�����r;TFr�r�wrap_in_textr`�is_server_defaultc���t|tj��r;|rd}nd}|t|��|jj�||���d�zSt|��S)Nz%(prefix)stext(%(sql)r)z%(sql)r�r()r�r)r5r�
ClauseElement�_sqlalchemy_autogenerate_prefix�migration_context�impl�render_ddl_sql_exprr�)r�r.r'r(r�s     r9r�r�2s����%��*�+�+���	!�0�H�H� �H��5�o�F�F�"�4�9�M�M��):�N���
�
�
�	
��E�{�{�r;�idxr!c�*���fd�|jD��S)Nc���g|]W}t|tj��r+tt	t|dd������nt
|�����XS)r/N)r5�	sa_schemarr�r��getattrr�)r��expr.s  �r9r�z3_get_index_rendered_expressions.<locals>.<listcomp>Msk������
��c�9�+�,�,�	:��V�G�C���.�.�
/�
/�0�0�0�
#�C��
9�
9���r;)�expressions)r0r.s `r9r�r�Js2��������?�	���r;r�r$�alterc��g}|j}|jr)|�dt|j��f��|jr)|�dt|j��f��|s<|r:|jjr.|�dt|jj��f��|s1|jr*|�dt||j��f��|r�tt||j����g}|s*|tt|jj����gz
}|�td�|jD������|�d�|D����dt|��d�|��d	�zSd
�|jD��}|�d�|D����dt|��d�|��d	�zS)
Nr�r�rr/c�6�g|]}t|j����Sr�)r�r/r�s  r9r�z"_uq_constraint.<locals>.<listcomp>ms"��I�I�I�s�&���*�*�I�I�Ir;c�"�g|]\}}|�d|����
Sr�r��r�r��vs   r9r�z"_uq_constraint.<locals>.<listcomp>n�'��7�7�7�$�!�Q����1�1�%�7�7�7r;z,%(prefix)screate_unique_constraint(%(args)s)r�r�c�P�g|]#}tt|j������$Sr�)r�r�r/r�s  r9r�z"_uq_constraint.<locals>.<listcomp>ts*��E�E�E�3��V�C�H�%�%�&�&�E�E�Er;c�"�g|]\}}|�d|����
Sr�r�r;s   r9r�z"_uq_constraint.<locals>.<listcomp>ur=r;z$%(prefix)sUniqueConstraint(%(args)s))r�r�rwr=r�r�rr�r/r:r�r�ryr7rUr,)r�r.r7rtr�r�s      r9r�r�Us%��
#%�D��*�I���@����\�3�z�'<�#=�#=�>�?�?�?���>����[�#�j�&:�";�";�<�=�=�=��A��A�:�#3�#:�A����X�v�j�&6�&=�>�>�?�@�@�@��
�Z�_�
����
�%�o�z��G�G�H�	
�	
�	
�
�
��%�o�z��G�G�H�H�I���	:��T�&��!1�!6�7�7�8�8�9�9�D����D�I�I�j�6H�I�I�I�J�J�K�K�K����7�7�$�7�7�7�8�8�8�=�2�?�C�C��I�I�d�O�O�A
�A
�
�	
�
F�E�*�2D�E�E�E�����7�7�$�7�7�7�8�8�8�5�5�o�F�F��I�I�d�O�O�9
�9
�
�	
r;c�8�|jd}|�
d|jzS|S)N�user_module_prefixz%s.)rtr")r.�targetr�s   r9�_user_autogenerate_prefixrC|s(��
�
!�"6�
7�F�
�~��v�(�(�(��
r;c� �|jdpdS)N�sqlalchemy_module_prefixrA�rt�r.s r9r,r,�s���� :�;�A�r�Ar;c�2�|jrdS|jdpdS)Nz	batch_op.�alembic_module_prefixrA)r�rtrGs r9r7r7�s'���!�C��{��#�$;�<�B��Br;r�object_�Union[str, Literal[False]]c�\�d|jvr"|jd}|r||||��}|dur|SdS)N�render_itemFrF)rrJr.�renderrs     r9�_user_defined_renderrO�sO����,�,�,� �%�m�4���	 ��v�e�W�o�>�>�H��u�$�$����5r;r�Column[Any]c���td|���}|dur|Sg}g}|jrXt|j���}|rAt|j��r|�|��n|�d|f��|j�1|jtjkr|�d|jf��|j�|�d|jf��|j	r|�d|j	f��|j
}|r|�dd|zf��d	t���t|j
��t|j���|r"d
�d�|D����d
zndd
�d
�|D���fd�t
j|�����D��z��d�zS)NrFrrr�systemr�rz8%(prefix)sColumn(%(name)r, %(type)s, %(args)s%(kwargs)s)r�c�,�g|]}t|����Sr�)r=)r��args  r9r�z"_render_column.<locals>.<listcomp>�s��4�4�4��3�s�8�8�4�4�4r;rAc�"�g|]\}}|�d|����
Sr�r��r��kwnamer�s   r9r�z"_render_column.<locals>.<listcomp>��'��A�A�A�[�V�S�F�F�F�C�C�(�A�A�Ar;c�@��g|]\}}|�dt|�������Sr�r�r�s   �r9r�z"_render_column.<locals>.<listcomp>�sI������!��S��s�s�2�3��H�H�H�J���r;)r�r/r�r�r�)rOrr�*_should_render_server_default_positionallyrwrr�AUTOINCREMENT_DEFAULTrrRr�r,r�r/rr�rU�_column_kwargsr�)rr.rr�rtr�s `    r9r�r��s���$�H�f�o�F�F�H��u������D�"$�D�
��:�)��!�?�
�
���	:�9��%���
:����H�%�%�%�%����-�x�8�9�9�9�	��(�� �K�$E�E�E����_�f�&:�;�<�<�<�
��"����Z���1�2�2�2�
�}�/����X�v�}�-�.�.�.��n�G��1����Y��w��/�0�0�0�F�1�/�B�B��v�{�#�#��6�;��8�8�@D�L��	�	�4�4�t�4�4�4�5�5��<�<�"��I�I�A�A�D�A�A�A�����%0�$>�v�$F�$F�$L�$L�$N�$N�����
�
�
I�I��r;rc�R�tj|��ptj|��Sr4)r�_server_default_is_computed�_server_default_is_identity)rs r9rZrZ�s/���2����A�	�	0��	@�	@�Ar;�default�BOptional[Union[FetchedValue, str, TextClause, ColumnElement[Any]]]�repr_c�<�td||��}|dur|Stj|��rtt	d|��|��Stj|��rt
t	d|��|��St|tj	��r9t|j
t��r|j
}nt|j
|d���St|t��r%|r#ttjdd|����}t	t|��S)	NrFr+r,Tr*z^'|'$rA)rOrr^�_render_computedrr_�_render_identityr5r3�
DefaultClauserTr=r�r�rBrE)r`r.rbrs    r9rr�s��$�$4�g��O�O�H��u������.�w�7�7�
���Z�� 9� 9�?�K�K�K�	�	0��	9�	9����Z�� 9� 9�?�K�K�K�	�G�Y�4�	5�	5���g�k�3�'�'�	��k�G�G�)���_�����
��'�3���6�E�6��r�v�h��G�4�4�5�5����W���r;�computedr+c���t|j|d���}i}|j�
|j|d<dt|��|d�d�|���D����d�zS)NF�r'�	persistedz(%(prefix)sComputed(%(text)s, %(kwargs)s)r�c3� K�|]	}d|zV��
dS�z%s=%sNr��r��pairs  r9r�z#_render_computed.<locals>.<genexpr>�&����G�G��W�t�^�G�G�G�G�G�Gr;)r�r<r�)r��sqltextrjr,rUr�)rgr.r<r�s    r9rdrd�s���"���/�����D��F���%�&�0��{��5�1�/�B�B���9�9�G�G������G�G�G�G�G�9�9��r;�identityr,c��t|j���}|j�
|j|d<|�t	|����dt|��d�d�|���D����d�zS)N)�always�on_nullz%(prefix)sIdentity(%(kwargs)s)r�c3� K�|]	}d|zV��
dSrlr�rms  r9r�z#_render_identity.<locals>.<genexpr>ror;)r�r�)rrsrt�update�_get_identity_optionsr,rUr�)rqr.r�s   r9rere	s������
0�
0�
0�F���#�$�,��y��
�M�M�'��1�1�2�2�2�+�1�/�B�B��9�9�G�G������G�G�G�G�G�/�/��r;�identity_optionsrc�p�t��}tjD]}t||d��}|�|||<�|Sr4)rr�_identity_options_attrsr4)rxr��attrr�s    r9rwrwsD��
�]�]�F��3�!�!���(�$��5�5���� �F�4�L���Mr;r&�_skip_variantsc��td||��}|dur|St|jd��r!|jj�||��}nd}t|��j}|j}|�d��rStj
d|��}|�J�|�d��}|�|�d|z��|r|S|�d|��S|r|S|s$tj|��rt||��S|�d	��rUd
|jzt#��vr(t#��d
|jz}	|	||��St%|��}
|
�|��St'||��}
|
�|��S)Nr�Fr.�sqlalchemy.dialects�sqlalchemy\.dialects\.(\w+)�z"from sqlalchemy.dialects import %s�.zsqlalchemy.z_render_%s_type)rO�hasattrr-r.�render_typer�r"rN�
startswithrB�match�group�addr�_type_has_variants�_render_Variant_type�__visit_name__�globalsr,rC)rr.r|r�impl_rt�modrNr��dname�fnr�s           r9rr!s���
$�F�E�?�C�C�H��u�������0�&�9�9��!�3�8�D�D��?�
�
�����
�u�+�+�
 �C��%�G�
�~�~�+�,�,�(���7��=�=��� � � ����A�������K�K�<�u�D�E�E�E��	,��N�#�e�e�U�U�+�+�	�
(���
�(�� >�u� E� E�(�#�E�?�;�;�;�	���
�	&�	&�	(��u�3�3�w�y�y�@�@����,�u�/C�C�D�B��2�e�_�-�-�-�4�_�E�E�F�#�V�U�U�+�+�*�?�E�B�B������'�'r;r%c	�L�ttt||dd����S)N�	item_typez(.+?\())rr=�_render_type_w_subtype)rr.s  r9�_render_ARRAY_typer�Ms-������?�K��	
�	
���r;c���tj|��\}}t||d���}|�|dusJ�t|��D]&}||}|dt||d����d|�d�z
}�'|S)NT)r|Fz.with_variant(r�r�)r�_get_variant_mappingrrV)rr.�	base_type�variant_mapping�base�dialect�typs       r9r�r�Vs���"-�!A�%�!H�!H��I���i���F�F�F�D����E� 1� 1� 1�1��/�*�*�
�
���g�&�����s�O�D�A�A�A�A�A��G�G�
�	
����Kr;�attrname�regexpr��$Union[Optional[str], Literal[False]]c�,�t|��}t||d��}|�dSt|��}tjdd|��}t	t||��|��}tj||zd|z|��}	|r|�|	��St|��j}
|
�d��r5tjd|
��}|�J�|�	d��}|�d|	��S|
�d	��rt|��}|�|	��SdS)
NFz([\(\)])z\\\1z\1%sr~rr�r��
sqlalchemy)r�r4rBrErr�r"r�r�r�r,)
rr.r�r�r��
outer_repr�
inner_type�
inner_repr�sub_type�
outer_typer�r�r�s
             r9r�r�es.���e���J����$�/�/�J����u��j�!�!�J����W�j�9�9�J��'�%��2�2�O�D�D�H�����+�W�x�-?��L�L�J�
�-�����,�,�
�u�+�+�
 �C�
�~�~�+�,�,�	���7��=�=��� � � ����A�����%�%���,�,�	����	%�	%��0��A�A������,�,��tr;r�namespace_metadata�Optional[MetaData]c��	t�|��}||||��S#t$rtjd|z��d|zcYSwxYw)Nz(No renderer is established for object %rz[Unknown Python object %r])�_constraint_renderersrl�
ValueErrorr�warn)r�r.r�rns    r9r�r��sv��
I�(�1�1�*�=�=��
�x�
�O�5G�H�H�H��	�9�9�9��	�<�z�I�J�J�J�+�j�8�8�8�8�9���s�)�&A�Ar#c	�J�td||��}|dur|S|jsdSg}|jr7|�dt	t||j����f��dt
|��d�d�|jD��d�|D��z��d�zS)	N�primary_keyFr/z(%(prefix)sPrimaryKeyConstraint(%(args)s)r�c�6�g|]}t|j����Sr�)r�r/)r��cs  r9r�z'_render_primary_key.<locals>.<listcomp>�s ��6�6�6�a�T�!�&�\�\�6�6�6r;c�"�g|]\}}|�d|����
Sr�r�rVs   r9r�z'_render_primary_key.<locals>.<listcomp>�s'��?�?�?�;�6�3�&�&�&�#�#�&�?�?�?r;r�)rOr�r/rwr�r:r,rU�r�r.r�rrts     r9�_render_primary_keyr��s���$�M�:��O�O�H��u���������t�
�D���
����
�T�*�?�J�O�L�L�M�M�N�	
�	
�	
�6�1�/�B�B��	�	�6�6�:�#5�6�6�6�?�?�$�?�?�?�
@�
�
�9�9��r;�fkr�metadata_schemar"c��|���}|�d��}|dd�\}}|�t|��dkr|�d|��}nd�|dd���}|jsW|j�P|jj�D||jvr;|j|j�	|��}|�t|j��}|�d|��}|S)zxImplement a 'safe' version of ForeignKey._get_colspec() that
    won't fail if the remote table can't be resolved.

    r����Nrr���)�_get_colspec�splitr�rU�link_to_name�parentr��tablesr�rur�r/)	r�r�r��colspec�tokensr��colname�table_fullnamer�s	         r9�_fk_colspecr��s����o�o���G�
�]�]�3�
�
�F��B�C�C�[�N�E�7��"�s�6�{�{�a�'7�'7�$3�O�O�U�U�;������&��2��,�/�/��
�O�+��I�!��I�O�'��/�6�6�6�$�+�N�;�=�A�A�'�J�J�C��� ���*�*��'�����1�G��Nr;r rt�List[Tuple[str, str]]c���|jr)|�dt|j��f��|jr)|�dt|j��f��|jr)|�dt|j��f��|jr)|�dt|j��f��|jr+|�dt|j��f��dSdS)Nr�r�r�r�r�)r�rwr�r�r�r�r�)r�rts  r9�_populate_render_fk_optsr��s�����=����Z��j�&9�!:�!:�;�<�<�<���=����Z��j�&9�!:�!:�;�<�<�<���?����[�$�z�';�"<�"<�=�>�>�>���A����\�4�
�(=�#>�#>�?�@�@�@���?����[�$�z�';�"<�"<�=�>�>�>�>�>�?�?r;c	�����td||��}|dur|Sg}|jr7|�dtt	||j����f��t||���j�dt|��d�d�|j	D����d���fd�|j	D����d�d�|D����d	�zS)
N�foreign_keyFr/zC%(prefix)sForeignKeyConstraint([%(cols)s], [%(refcols)s], %(args)s)r�c3�jK�|].}dttd|j��j��zV��/dS)rrN)r�rr�r/)r��fs  r9r�z&_render_foreign_key.<locals>.<genexpr>sR��������v�d�8�Q�X�6�6�;�<�<�<������r;c3�T�K�|]"}tt|������V��#dSr4)r�r�)r�r��apply_metadata_schemar�s  ��r9r�z&_render_foreign_key.<locals>.<genexpr>sM�����!�!���[��$9�;M�N�N�O�O�!�!�!�!�!�!r;c�"�g|]\}}|�d|����
Sr�r�rVs   r9r�z'_render_foreign_key.<locals>.<listcomp>	rXr;)r��cols�refcolsr�)
rOr/rwr�r:r�rr,rU�elements)r�r.r�rrtr�s  `  @r9�_render_foreign_keyr��s?����$�M�:��O�O�H��u�����
�D���
����
�T�*�?�J�O�L�L�M�M�N�	
�	
�	
��Z��.�.�.�.�5��	#�6�o�F�F��I�I���#�,�������y�y�!�!�!�!�!�#�,�!�!�!����I�I�A�A�D�A�A�A���

�

�	
�r;c�R�td||��}|dur|St||d��S)Nr�F)rOr�)r�r.r�rs    r9�_render_unique_constraintr�s7��$�H�j�/�J�J�H��u������*�o�u�=�=�=r;rc	���td||��}|dur|S|jr;t|jd��r&t|jjt
j��rdSg}|jr7|�dtt||j����f��dt|��|r"dd�d�|D����zndt|j|d�	��d
�zS)N�checkFrBr/z.%(prefix)sCheckConstraint(%(sqltext)s%(opts)s)r�c3�*K�|]\}}|�d|��V��dS)r�Nr�r;s   r9r�z+_render_check_constraint.<locals>.<genexpr><s1����!D�!D�t�q�!�Q�Q�Q���"2�!D�!D�!D�!D�!D�!Dr;rAri)r�rtrp)rO�_create_ruler�r5rB�sqltypesr&r/rwr�r:r,rUr�rpr�s     r9�_render_check_constraintr�s(��$�G�Z��I�I�H��u�����	��
���#�X�
�
�
�

��#�*���
�
�
��t�
�D���
����
�T�*�?�J�O�L�L�M�M�N�	
�	
�	
�<�1�/�B�B�����	�	�!D�!D�t�!D�!D�!D�D�D�E�E�
�)����e�
�
�
�?�?��r;�ops.ExecuteSQLOpc�h�t|jt��std���d|jzS)NznAutogenerate rendering of SQL Expression language constructs not supported here; please use a plain SQL stringzop.execute(%r))r5rpr=r�rps  r9�_execute_sqlr�Es=���b�j�#�&�&�
�!�
@�
�
�	
��b�j�(�(r;)r.r'r/r0r1r2)r<r=r1r=)r.r'rHr)rIrJr1rK)rZr[r.r'r1r=)r.r'rerhr1ri)r.r'rerhr1r=)r.r'rer*r1ri)r.r'rer}r1r=)r.r'rer�r1r=)r.r'rer�r1r=)r.r'rer�r1r=)r.r'rer�r1r=)r.r'rer�r1r=)r.r'rer�r1ri)r.r'rer�r1r=)r.r'rer�r1r=)r.r'rerr1r=)r.r'rerr1r=)r.r'rer
r1r=)r/r$r1r%)TF)
r�rr.r'r'r`r(r`r1r=)r0r!r.r'r1ri)r�r$r.r'r7r`r1r=)r.r'r1r=)rr=rJrr.r'r1rK)rrPr.r'r1r=)rrr1r`)T)r`rar.r'rbr`r1r%)rgr+r.r'r1r=)rqr,r.r'r1r=)rxr,r1r)F)rr&r.r'r|r`r1r=)rr%r.r'r1r=)rr&r.r'r1r=r4)rr&r.r'r�r=r�r=r�r%r1r�)r�rr.r'r�r�r1r%)r�r#r.r'r�r�r1r%)r�rr�r%r�r"r1r=)r�r rtr�r1rK)r�r r.r'r�r"r1r%)r�r$r.r'r�r�r1r=)r�rr.r'r�r�r1r%)r.r'rer�r1r=)��
__future__r�collectionsr�iorrB�typingrrrr	r
rrr
�
mako.pygenrr�rr3rrr��sqlalchemy.sql.elementsrrrAr�
operationsrrrrr�sqlalchemy.sql.schemarrrrrr r!r"r#r$�sqlalchemy.sql.sqltypesr%�sqlalchemy.sql.type_apir&�alembic.autogenerate.apir'�alembic.configr(�alembic.operations.opsr)r*�alembic.util.sqla_compatr+r,r�r:rGrY�
Dispatcher�default_renderersrkrRr_rq�dispatch_forr|�CreateTableCommentOpr��DropTableCommentOpr��
CreateTableOpr��DropTableOpr��
CreateIndexOpr��DropIndexOpr��CreateUniqueConstraintOpr��CreateForeignKeyOpr��CreatePrimaryKeyOpr��CreateCheckConstraintOpr��DropConstraintOpr��AddColumnOpr�DropColumnOpr	�
AlterColumnOprr6r�r�r�r�rCr,r7rOr�rZrrdrerwrr�r�r�r�r�r�r�r�r�r�r��ExecuteSQLOpr��branchr�r;r9�<module>r�s�	��"�"�"�"�"�"�#�#�#�#�#�#�������	�	�	�	������������������������������������� � � � � � �������$�$�$�$�$�$�*�*�*�*�*�*�������(�(�(�(�(�(�(�(�(�(�(�(�/�/�/�/�/�/��������������������2�������5�5�5�5�5�5�2�2�2�2�2�2�5�5�5�5�5�5�,�,�,�,�,�,�0�0�0�0�0�0�2�2�2�2�2�2�0�0�0�0�0�0�:�:�:�:�:�:�+�+�+�+�+�+�.�.�.�.�.�.�:�:�:�:�:�:�6�6�6�6�6�6�-�-�-�-�-�-�2�2�2�2�2�2�7�7�7�7�7�7�%�%�%�%�%�%�6�6�6�6�6�6�5�5�5�5�5�5�1�1�1�1�1�1�1�1�1�1�1�1���9�9�9�9�����:�:�:�:�&!0��� 1� 1�1��I�����8����5�5�5�5�����*�+�+����,�+��8����0�1�1����2�1��0����.�/�/����0�/��,����)�*�*�.�.�.�+�*�.�b�����(�(����)�(������)�*�*�)�)�)�+�*�)�X�����(�(����)�(��D����4�5�5�G�G�G�6�5�G�����.�/�/�#�#�#�0�/�#�L����.�/�/� � �0�/� �����3�4�4� � �5�4� �����,�-�-����.�-��,�����(�(����)�(��&����(�)�)����*�)��*����)�*�*�:�:�:�+�*�:�z<�<�<�<�<�<�<�<�
�
�
�
�&�#�	�����0����$
�$
�$
�$
�N���B�B�B�B�C�C�C�C�	�	�	�	�7�7�7�7�tA�A�A�A�������:����"��������!�)(�)(�)(�)(�)(�X��������(!������D(���)�)��I�I�I�I��#�#�I�$B�C�C����D�C��4"�"�"�"�J
?�
?�
?�
?� �#�#�I�$B�C�C�#�#�#�D�C�#�L�#�#�I�$>�?�?�	>�	>�	>�@�?�	>��#�#�I�$=�>�>�%�%�%�?�>�%�P����(�)�)�)�)�)�*�)�)�
�$�$�&�&�	�	�	r;

Hacked By AnonymousFox1.0, Coded By AnonymousFox