§
    ¤”jÂ  ã                   ó  — d Z ddlmZ  G d„ d¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d	„ d
e¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z	 G d„ de¦  «        Z
 G d„ de¦  «        ZdS )z~
Helpers to manipulate deferred DDL statements that might need to be adjusted or
discarded within when executing a migration.
é    )Údeepcopyc                   ó6   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	Ú	Referencez0Base class that defines the reference interface.c                 ó   — dS )zU
        Return whether or not this instance references the specified table.
        F© ©ÚselfÚtables     úp/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/django/db/backends/ddl_references.pyÚreferences_tablezReference.references_table   ó	   € ð ˆuó    c                 ó   — dS )zV
        Return whether or not this instance references the specified column.
        Fr   ©r	   r
   Úcolumns      r   Úreferences_columnzReference.references_column   r   r   c                 ó   — dS )zI
        Rename all references to the old_name to the new_table.
        Nr   ©r	   Ú	old_tableÚ	new_tables      r   Úrename_table_referencesz!Reference.rename_table_references   ó	   € ð 	ˆr   c                 ó   — dS )zL
        Rename all references to the old_column to the new_column.
        Nr   )r	   r
   Ú
old_columnÚ
new_columns       r   Úrename_column_referencesz"Reference.rename_column_references   r   r   c                 óB   — d| j         j        ›dt          | ¦  «        ›d�S )Nú<ú ú>)Ú	__class__Ú__name__Ústr©r	   s    r   Ú__repr__zReference.__repr__$   s$   € € Ø œNÔ3Ð3Ð3µS¸±Y´Y°Y°YÐ?Ð?r   c                 ó    — t          d¦  «        ‚)Nz>Subclasses must define how they should be converted to string.)ÚNotImplementedErrorr$   s    r   Ú__str__zReference.__str__'   s   € Ý!ØLñ
ô 
ð 	
r   N)
r"   Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r%   r(   r   r   r   r   r   	   sw   € € € € € Ø:Ð:ðð ð ðð ð ðð ð ðð ð ð@ð @ð @ð
ð 
ð 
ð 
ð 
r   r   c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )ÚTablezHold a reference to a table.c                 ó"   — || _         || _        d S ©N)r
   Ú
quote_name)r	   r
   r0   s      r   Ú__init__zTable.__init__0   s   € ØˆŒ
Ø$ˆŒˆˆr   c                 ó   — | j         |k    S r/   ©r
   r   s     r   r   zTable.references_table4   s   € ØŒz˜UÒ"Ð"r   c                 ó.   — | j         |k    r	|| _         d S d S r/   r3   r   s      r   r   zTable.rename_table_references7   s"   € ØŒ:˜Ò"Ð"Ø"ˆDŒJˆJˆJð #Ð"r   c                 ó6   — |                       | j        ¦  «        S r/   )r0   r
   r$   s    r   r(   zTable.__str__;   s   € Ø�Š˜tœzÑ*Ô*Ð*r   N)r"   r)   r*   r+   r1   r   r   r(   r   r   r   r-   r-   -   sV   € € € € € Ø&Ð&ð%ð %ð %ð#ð #ð #ð#ð #ð #ð+ð +ð +ð +ð +r   r-   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚTableColumnsz9Base class for references to multiple columns of a table.c                 ó"   — || _         || _        d S r/   ©r
   Úcolumns)r	   r
   r:   s      r   r1   zTableColumns.__init__B   s   € ØˆŒ
ØˆŒˆˆr   c                 ó*   — | j         |k    o|| j        v S r/   r9   r   s      r   r   zTableColumns.references_columnF   s   € ØŒz˜UÒ"Ð= v°´Ð'=Ð=r   c                 ót   — | j         |k    r*t          | j        ¦  «        D ]\  }}||k    r
|| j        |<   Œd S d S r/   )r
   Ú	enumerater:   )r	   r
   r   r   Úindexr   s         r   r   z%TableColumns.rename_column_referencesI   sV   € ØŒ:˜ÒÐÝ!*¨4¬<Ñ!8Ô!8ð 5ð 5‘��vØ˜ZÒ'Ð'Ø*4�D”L Ñ'øð Ðð5ð 5r   N)r"   r)   r*   r+   r1   r   r   r   r   r   r7   r7   ?   sG   € € € € € ØCÐCðð ð ð>ð >ð >ð5ð 5ð 5ð 5ð 5r   r7   c                   ó*   ‡ — e Zd ZdZdˆ fd„	Zd„ Zˆ xZS )ÚColumnsz(Hold a reference to one or many columns.r   c                 óh   •— || _         || _        t          ¦   «                              ||¦  «         d S r/   )r0   Úcol_suffixesÚsuperr1   )r	   r
   r:   r0   rB   r!   s        €r   r1   zColumns.__init__S   s2   ø€ Ø$ˆŒØ(ˆÔÝ‰Œ×Ò˜ Ñ(Ô(Ð(Ð(Ð(r   c                 óv   ‡ ‡— ˆ fd„Šd                      ˆfd„t          ‰ j        ¦  «        D ¦   «         ¦  «        S )Nc                 ó    •— ‰                      | ¦  «        }	 ‰j        |         }|rd                     ||¦  «        }n# t          $ r Y nw xY w|S ©Nz{} {})r0   rB   ÚformatÚ
IndexError©r   ÚidxÚcolÚsuffixr	   s       €r   Úcol_strz Columns.__str__.<locals>.col_strY   sg   ø€ Ø—/’/ &Ñ)Ô)ˆCðØÔ*¨3Ô/�Øð 6Ø!Ÿ.š.¨¨fÑ5Ô5�CøøÝð ð ð Ø�ðøøøàˆJs   ˜%> ¾
AÁ
Aú, c              3   ó6   •K  — | ]\  }} ‰||¦  «        V — Œd S r/   r   ©Ú.0rJ   r   rM   s      €r   ú	<genexpr>z"Columns.__str__.<locals>.<genexpr>c   óD   øè è € ð 
ð 
Ù%0 S¨&ˆGˆG�F˜CÑ Ô ð
ð 
ð 
ð 
ð 
ð 
r   ©Újoinr=   r:   ©r	   rM   s   `@r   r(   zColumns.__str__X   se   øø€ ð	ð 	ð 	ð 	ð 	ð �yŠyð 
ð 
ð 
ð 
Ý4=¸d¼lÑ4KÔ4Kð
ñ 
ô 
ñ 
ô 
ð 	
r   )r   ©r"   r)   r*   r+   r1   r(   Ú__classcell__©r!   s   @r   r@   r@   P   sR   ø€ € € € € Ø2Ð2ð)ð )ð )ð )ð )ð )ð

ð 
ð 
ð 
ð 
ð 
ð 
r   r@   c                   ó(   ‡ — e Zd ZdZˆ fd„Zd„ Zˆ xZS )Ú	IndexNamez"Hold a reference to an index name.c                 óh   •— || _         || _        t          ¦   «                              ||¦  «         d S r/   )rL   Úcreate_index_namerC   r1   )r	   r
   r:   rL   r]   r!   s        €r   r1   zIndexName.__init__k   s2   ø€ ØˆŒØ!2ˆÔÝ‰Œ×Ò˜ Ñ(Ô(Ð(Ð(Ð(r   c                 óN   — |                       | j        | j        | j        ¦  «        S r/   )r]   r
   r:   rL   r$   s    r   r(   zIndexName.__str__p   s    € Ø×%Ò% d¤j°$´,ÀÄÑLÔLÐLr   rW   rY   s   @r   r[   r[   h   sT   ø€ € € € € Ø,Ð,ð)ð )ð )ð )ð )ð
Mð Mð Mð Mð Mð Mð Mr   r[   c                   ó&   ‡ — e Zd Zdˆ fd„	Zd„ Zˆ xZS )ÚIndexColumnsr   c                 ó^   •— || _         t          ¦   «                              ||||¦  «         d S r/   )Ú	opclassesrC   r1   )r	   r
   r:   r0   rB   rb   r!   s         €r   r1   zIndexColumns.__init__u   s.   ø€ Ø"ˆŒÝ‰Œ×Ò˜ ¨°\ÑBÔBÐBÐBÐBr   c                 óv   ‡ ‡— ˆ fd„Šd                      ˆfd„t          ‰ j        ¦  «        D ¦   «         ¦  «        S )Nc                 óÞ   •— d                      ‰                     | ¦  «        ‰j        |         ¦  «        }	 ‰j        |         }|rd                      ||¦  «        }n# t          $ r Y nw xY w|S rF   )rG   r0   rb   rB   rH   rI   s       €r   rM   z%IndexColumns.__str__.<locals>.col_strz   s~   ø€ ð —.’. §¢°Ñ!8Ô!8¸$¼.ÈÔ:MÑNÔNˆCðØÔ*¨3Ô/�Øð 6Ø!Ÿ.š.¨¨fÑ5Ô5�CøøÝð ð ð Ø�ðøøøàˆJs   ·%A Á
A*Á)A*rN   c              3   ó6   •K  — | ]\  }} ‰||¦  «        V — Œd S r/   r   rP   s      €r   rR   z'IndexColumns.__str__.<locals>.<genexpr>†   rS   r   rT   rV   s   `@r   r(   zIndexColumns.__str__y   se   øø€ ð
	ð 
	ð 
	ð 
	ð 
	ð �yŠyð 
ð 
ð 
ð 
Ý4=¸d¼lÑ4KÔ4Kð
ñ 
ô 
ñ 
ô 
ð 	
r   )r   r   )r"   r)   r*   r1   r(   rX   rY   s   @r   r`   r`   t   sR   ø€ € € € € ðCð Cð Cð Cð Cð Cð
ð 
ð 
ð 
ð 
ð 
ð 
r   r`   c                   óP   ‡ — e Zd ZdZˆ fd„Zˆ fd„Zˆ fd„Zˆ fd„Zˆ fd„Zd„ Z	ˆ xZ
S )ÚForeignKeyNamez'Hold a reference to a foreign key name.c                 ó’   •— t          ||¦  «        | _        || _        || _        t	          ¦   «                              ||¦  «         d S r/   )r7   Úto_referenceÚsuffix_templateÚcreate_fk_namerC   r1   )r	   Ú
from_tableÚfrom_columnsÚto_tableÚ
to_columnsrj   rk   r!   s          €r   r1   zForeignKeyName.__init__Ž   sS   ø€ õ )¨°:Ñ>Ô>ˆÔØ.ˆÔØ,ˆÔÝ‰Œ×ÒØØñ	
ô 	
ð 	
ð 	
ð 	
r   c                 óz   •— t          ¦   «                              |¦  «        p| j                             |¦  «        S r/   )rC   r   ri   )r	   r
   r!   s     €r   r   zForeignKeyName.references_tableŸ   s:   ø€ Ý‰wŒw×'Ò'¨Ñ.Ô.ð 
°$Ô2C×2TÒ2TØñ3
ô 3
ð 	
r   c                 ó~   •— t          ¦   «                              ||¦  «        p| j                             ||¦  «        S r/   )rC   r   ri   )r	   r
   r   r!   s      €r   r   z ForeignKeyName.references_column¤   sA   ø€ Ý‰wŒw×(Ò(Ø�6ñ
ô 
ð @àÔ×0Ò0°¸Ñ?Ô?ð	@r   c                 ó‚   •— t          ¦   «                              ||¦  «         | j                             ||¦  «         d S r/   )rC   r   ri   ©r	   r   r   r!   s      €r   r   z&ForeignKeyName.rename_table_references©   s<   ø€ Ý‰Œ×'Ò'¨	°9Ñ=Ô=Ð=ØÔ×1Ò1°)¸YÑGÔGÐGÐGÐGr   c                 ó†   •— t          ¦   «                              |||¦  «         | j                             |||¦  «         d S r/   )rC   r   ri   )r	   r
   r   r   r!   s       €r   r   z'ForeignKeyName.rename_column_references­   s@   ø€ Ý‰Œ×(Ò(¨°
¸JÑGÔGÐGØÔ×2Ò2°5¸*ÀjÑQÔQÐQÐQÐQr   c                 ó’   — | j         | j        j        | j        j        d         dœz  }|                      | j        | j        |¦  «        S )Nr   )rn   Ú	to_column)rj   ri   r
   r:   rk   )r	   rL   s     r   r(   zForeignKeyName.__str__±   sN   € ØÔ%ØÔ)Ô/ØÔ*Ô2°1Ô5ð)
ð )
ñ 
ˆð ×"Ò" 4¤:¨t¬|¸VÑDÔDÐDr   )r"   r)   r*   r+   r1   r   r   r   r   r(   rX   rY   s   @r   rg   rg   ‹   sÇ   ø€ € € € € Ø1Ð1ð
ð 
ð 
ð 
ð 
ð"
ð 
ð 
ð 
ð 
ð
@ð @ð @ð @ð @ð
Hð Hð Hð Hð HðRð Rð Rð Rð RðEð Eð Eð Eð Eð Eð Er   rg   c                   ó6   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	Ú	Statementzò
    Statement template and formatting parameters container.

    Allows keeping a reference to a statement without interpolating identifiers
    that might have to be adjusted if they're referencing a table or column
    that is removed
    c                 ó"   — || _         || _        d S r/   ©ÚtemplateÚparts)r	   r{   r|   s      r   r1   zStatement.__init__Â   s   € Ø ˆŒØˆŒ
ˆ
ˆ
r   c                 óh   ‡— t          ˆfd„| j                             ¦   «         D ¦   «         ¦  «        S )Nc              3   ób   •K  — | ])}t          |d ¦  «        o|                     ‰¦  «        V — Œ*dS )r   N)Úhasattrr   )rQ   Úpartr
   s     €r   rR   z-Statement.references_table.<locals>.<genexpr>Ç   sU   øè è € ð 
ð 
àõ �DÐ,Ñ-Ô-ÐN°$×2GÒ2GÈÑ2NÔ2Nð
ð 
ð 
ð 
ð 
ð 
r   ©Úanyr|   Úvaluesr   s    `r   r   zStatement.references_tableÆ   sI   ø€ Ýð 
ð 
ð 
ð 
àœ
×)Ò)Ñ+Ô+ð
ñ 
ô 
ñ 
ô 
ð 	
r   c                 ól   ‡‡— t          ˆˆfd„| j                             ¦   «         D ¦   «         ¦  «        S )Nc              3   ód   •K  — | ]*}t          |d ¦  «        o|                     ‰‰¦  «        V — Œ+dS )r   N)r   r   )rQ   r€   r   r
   s     €€r   rR   z.Statement.references_column.<locals>.<genexpr>Í   sX   øè è € ð 
ð 
àõ �DÐ-Ñ.Ô.ÐX°4×3IÒ3IÈ%ÐQWÑ3XÔ3Xð
ð 
ð 
ð 
ð 
ð 
r   r�   r   s    ``r   r   zStatement.references_columnÌ   sO   øø€ Ýð 
ð 
ð 
ð 
ð 
àœ
×)Ò)Ñ+Ô+ð
ñ 
ô 
ñ 
ô 
ð 	
r   c                 óŠ   — | j                              ¦   «         D ](}t          |d¦  «        r|                     ||¦  «         Œ)d S )Nr   )r|   rƒ   r   r   )r	   r   r   r€   s       r   r   z!Statement.rename_table_referencesÒ   sX   € Ø”J×%Ò%Ñ'Ô'ð 	Cð 	CˆDÝ�tÐ6Ñ7Ô7ð CØ×,Ò,¨Y¸	ÑBÔBÐBøð	Cð 	Cr   c                 óŒ   — | j                              ¦   «         D ])}t          |d¦  «        r|                     |||¦  «         Œ*d S )Nr   )r|   rƒ   r   r   )r	   r
   r   r   r€   s        r   r   z"Statement.rename_column_references×   sZ   € Ø”J×%Ò%Ñ'Ô'ð 	Mð 	MˆDÝ�tÐ7Ñ8Ô8ð MØ×-Ò-¨e°ZÀÑLÔLÐLøð	Mð 	Mr   c                 ó    — | j         | j        z  S r/   rz   r$   s    r   r(   zStatement.__str__Ü   s   € ØŒ}˜tœzÑ)Ð)r   N)
r"   r)   r*   r+   r1   r   r   r   r   r(   r   r   r   rx   rx   ¹   s~   € € € € € ðð ðð ð ð
ð 
ð 
ð
ð 
ð 
ðCð Cð Cð
Mð Mð Mð
*ð *ð *ð *ð *r   rx   c                   ó4   ‡ — e Zd Zˆ fd„Zˆ fd„Zd„ Zd„ Zˆ xZS )ÚExpressionsc                 óÔ   •— || _         || _        || _        d„ | j         j                             | j        g¦  «        D ¦   «         }t          ¦   «                              ||¦  «         d S )Nc                 ó&   — g | ]}|j         j        ‘ŒS r   )Útargetr   )rQ   rK   s     r   ú
<listcomp>z(Expressions.__init__.<locals>.<listcomp>å   s-   € ð 
ð 
ð 
àð ŒJÔð
ð 
ð 
r   )ÚcompilerÚexpressionsÚquote_valueÚqueryÚ	_gen_colsrC   r1   )r	   r
   r�   r�   r‘   r:   r!   s         €r   r1   zExpressions.__init__á   ss   ø€ Ø ˆŒØ&ˆÔØ&ˆÔð
ð 
à”}Ô*×4Ò4°dÔ6FÐ5GÑHÔHð
ñ 
ô 
ˆõ 	‰Œ×Ò˜ Ñ(Ô(Ð(Ð(Ð(r   c                 ó¨   •— | j         |k    rd S | j                             ||i¦  «        | _        t          ¦   «                              ||¦  «         d S r/   )r
   r�   Úrelabeled_clonerC   r   rs   s      €r   r   z#Expressions.rename_table_referencesë   sS   ø€ ØŒ:˜Ò"Ð"ØˆFØÔ+×;Ò;¸YÈ	Ð<RÑSÔSˆÔÝ‰Œ×'Ò'¨	°9Ñ=Ô=Ð=Ð=Ð=r   c                 ó*  — | j         |k    rd S t          | j        ¦  «        }g | _        | j        j                             |g¦  «        D ]B}|j        j        |k    r||j        _        | j         	                    |j        j        ¦  «         ŒC|| _        d S r/   )
r
   r   r�   r:   r�   r’   r“   r�   r   Úappend)r	   r
   r   r   r�   rK   s         r   r   z$Expressions.rename_column_referencesñ   s•   € ØŒ:˜ÒÐØˆFÝ˜tÔ/Ñ0Ô0ˆØˆŒØ”=Ô&×0Ò0°+°Ñ?Ô?ð 	3ð 	3ˆCØŒzÔ  JÒ.Ð.Ø$.�”
Ô!ØŒL×Ò ¤
Ô 1Ñ2Ô2Ð2Ð2Ø&ˆÔÐÐr   c                 ó”   — | j                              | j        ¦  «        \  }}t          | j        |¦  «        }|t          |¦  «        z  S r/   )r�   Úcompiler�   Úmapr‘   Útuple)r	   ÚsqlÚparamss      r   r(   zExpressions.__str__ü   sA   € Ø”m×+Ò+¨DÔ,<Ñ=Ô=‰ˆˆVÝ�TÔ% vÑ.Ô.ˆØ•U˜6‘]”]Ñ"Ð"r   )r"   r)   r*   r1   r   r   r(   rX   rY   s   @r   rŠ   rŠ   à   so   ø€ € € € € ð)ð )ð )ð )ð )ð>ð >ð >ð >ð >ð	'ð 	'ð 	'ð#ð #ð #ð #ð #ð #ð #r   rŠ   N)r+   Úcopyr   r   r-   r7   r@   r[   r`   rg   rx   rŠ   r   r   r   ú<module>rŸ      s¸  ððð ð
 Ð Ð Ð Ð Ð ð!
ð !
ð !
ð !
ð !
ñ !
ô !
ð !
ðH+ð +ð +ð +ð +ˆIñ +ô +ð +ð$5ð 5ð 5ð 5ð 5�5ñ 5ô 5ð 5ð"
ð 
ð 
ð 
ð 
ˆlñ 
ô 
ð 
ð0	Mð 	Mð 	Mð 	Mð 	M�ñ 	Mô 	Mð 	Mð
ð 
ð 
ð 
ð 
�7ñ 
ô 
ð 
ð.+Eð +Eð +Eð +Eð +E�\ñ +Eô +Eð +Eð\$*ð $*ð $*ð $*ð $*�	ñ $*ô $*ð $*ðN#ð #ð #ð #ð #�,ñ #ô #ð #ð #ð #r   