§
    Ÿ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                   ó<   — e Zd 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     ún/var/www/finuniver-perm.ru/html/student/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 )zU
        Return whether or not this instance references the specified index.
        Fr   ©r	   r
   Úindexs      r   Úreferences_indexzReference.references_index   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   r   	   s†   € € € € € Ø:Ð:ðð ð ðð ð ðð ð ðð ð ðð ð ð@ð @ð @ð
ð 
ð 
ð 
ð 
r   r   c                   ó0   — e Zd 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
   r4   s      r   Ú__init__zTable.__init__6   s   € ØˆŒ
Ø$ˆŒˆˆr   c                 ó   — | j         |k    S r3   ©r
   r   s     r   r   zTable.references_table:   s   € ØŒz˜UÒ"Ð"r   c                 óR   — |                       |¦  «        ot          | ¦  «        |k    S r3   )r   r'   r   s      r   r   zTable.references_index=   s&   € Ø×$Ò$ UÑ+Ô+ÐBµ°D±	´	¸UÒ0BÐBr   c                 ó.   — | j         |k    r	|| _         d S d S r3   r7   r   s      r   r   zTable.rename_table_references@   s"   € ØŒ:˜Ò"Ð"Ø"ˆDŒJˆJˆJð #Ð"r   c                 ó6   — |                       | j        ¦  «        S r3   )r4   r
   r(   s    r   r,   zTable.__str__D   s   € Ø�Š˜tœzÑ*Ô*Ð*r   N)	r&   r-   r.   r/   r5   r   r   r   r,   r   r   r   r1   r1   3   sh   € € € € € Ø&Ð&ð%ð %ð %ð#ð #ð #ðCð Cð Cð#ð #ð #ð+ð +ð +ð +ð +r   r1   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 r3   ©r
   Úcolumns)r	   r
   r?   s      r   r5   zTableColumns.__init__K   s   € ØˆŒ
ØˆŒˆˆr   c                 ó*   — | j         |k    o|| j        v S r3   r>   r   s      r   r   zTableColumns.references_columnO   s   € ØŒz˜UÒ"Ð= v°´Ð'=Ð=r   c                 ót   — | j         |k    r*t          | j        ¦  «        D ]\  }}||k    r
|| j        |<   Œd S d S r3   )r
   Ú	enumerater?   )r	   r
   r   r   r   r   s         r   r    z%TableColumns.rename_column_referencesR   sV   € ØŒ:˜ÒÐÝ!*¨4¬<Ñ!8Ô!8ð 5ð 5‘��vØ˜ZÒ'Ð'Ø*4�D”L Ñ'øð Ðð5ð 5r   N)r&   r-   r.   r/   r5   r   r    r   r   r   r<   r<   H   sG   € € € € € ØCÐCðð ð ð>ð >ð >ð5ð 5ð 5ð 5ð 5r   r<   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 r3   )r4   Úcol_suffixesÚsuperr5   )r	   r
   r?   r4   rF   r%   s        €r   r5   zColumns.__init__\   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{} {})r4   rF   ÚformatÚ
IndexError©r   ÚidxÚcolÚsuffixr	   s       €r   Úcol_strz Columns.__str__.<locals>.col_strb   sg   ø€ Ø—/’/ &Ñ)Ô)ˆCðØÔ*¨3Ô/�Øð 6Ø!Ÿ.š.¨¨fÑ5Ô5�CøøÝð ð ð Ø�ðøøøàˆJs   ˜%> ¾
AÁ
Aú, c              3   ó6   •K  — | ]\  }} ‰||¦  «        V — Œd S r3   r   ©Ú.0rN   r   rQ   s      €r   ú	<genexpr>z"Columns.__str__.<locals>.<genexpr>l   óD   øè è € ð 
ð 
Ù%0 S¨&ˆGˆG�F˜CÑ Ô ð
ð 
ð 
ð 
ð 
ð 
r   ©ÚjoinrB   r?   ©r	   rQ   s   `@r   r,   zColumns.__str__a   se   øø€ ð	ð 	ð 	ð 	ð 	ð �yŠyð 
ð 
ð 
ð 
Ý4=¸d¼lÑ4KÔ4Kð
ñ 
ô 
ñ 
ô 
ð 	
r   )r   ©r&   r-   r.   r/   r5   r,   Ú__classcell__©r%   s   @r   rD   rD   Y   sR   ø€ € € € € Ø2Ð2ð)ð )ð )ð )ð )ð )ð

ð 
ð 
ð 
ð 
ð 
ð 
r   rD   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 r3   )rP   Úcreate_index_namerG   r5   )r	   r
   r?   rP   ra   r%   s        €r   r5   zIndexName.__init__t   s2   ø€ ØˆŒØ!2ˆÔÝ‰Œ×Ò˜ Ñ(Ô(Ð(Ð(Ð(r   c                 óN   — |                       | j        | j        | j        ¦  «        S r3   )ra   r
   r?   rP   r(   s    r   r,   zIndexName.__str__y   s    € Ø×%Ò% d¤j°$´,ÀÄÑLÔLÐLr   r[   r]   s   @r   r_   r_   q   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 r3   )Ú	opclassesrG   r5   )r	   r
   r?   r4   rF   rf   r%   s         €r   r5   zIndexColumns.__init__~   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 rJ   )rK   r4   rf   rF   rL   rM   s       €r   rQ   z%IndexColumns.__str__.<locals>.col_strƒ   s~   ø€ ð —.’. §¢°Ñ!8Ô!8¸$¼.ÈÔ:MÑNÔNˆCðØÔ*¨3Ô/�Øð 6Ø!Ÿ.š.¨¨fÑ5Ô5�CøøÝð ð ð Ø�ðøøøàˆJs   ·%A Á
A*Á)A*rR   c              3   ó6   •K  — | ]\  }} ‰||¦  «        V — Œd S r3   r   rT   s      €r   rV   z'IndexColumns.__str__.<locals>.<genexpr>�   rW   r   rX   rZ   s   `@r   r,   zIndexColumns.__str__‚   se   øø€ ð
	ð 
	ð 
	ð 
	ð 
	ð �yŠyð 
ð 
ð 
ð 
Ý4=¸d¼lÑ4KÔ4Kð
ñ 
ô 
ñ 
ô 
ð 	
r   )r   r   )r&   r-   r.   r5   r,   r\   r]   s   @r   rd   rd   }   sR   ø€ € € € € ðCð Cð Cð Cð Cð Cð
ð 
ð 
ð 
ð 
ð 
ð 
r   rd   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 r3   )r<   Úto_referenceÚsuffix_templateÚcreate_fk_namerG   r5   )r	   Ú
from_tableÚfrom_columnsÚto_tableÚ
to_columnsrn   ro   r%   s          €r   r5   zForeignKeyName.__init__—   sS   ø€ õ )¨°:Ñ>Ô>ˆÔØ.ˆÔØ,ˆÔÝ‰Œ×ÒØØñ	
ô 	
ð 	
ð 	
ð 	
r   c                 óz   •— t          ¦   «                              |¦  «        p| j                             |¦  «        S r3   )rG   r   rm   )r	   r
   r%   s     €r   r   zForeignKeyName.references_table¨   s:   ø€ Ý‰wŒw×'Ò'¨Ñ.Ô.ð 
°$Ô2C×2TÒ2TØñ3
ô 3
ð 	
r   c                 ó~   •— t          ¦   «                              ||¦  «        p| j                             ||¦  «        S r3   )rG   r   rm   )r	   r
   r   r%   s      €r   r   z ForeignKeyName.references_column­   sA   ø€ Ý‰wŒw×(Ò(Ø�6ñ
ô 
ð @àÔ×0Ò0°¸Ñ?Ô?ð	@r   c                 ó‚   •— t          ¦   «                              ||¦  «         | j                             ||¦  «         d S r3   )rG   r   rm   ©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 r3   )rG   r    rm   )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   )rr   Ú	to_column)rn   rm   r
   r?   ro   )r	   rP   s     r   r,   zForeignKeyName.__str__º   sN   € ØÔ%ØÔ)Ô/ØÔ*Ô2°1Ô5ð)
ð )
ñ 
ˆð ×"Ò" 4¤:¨t¬|¸VÑDÔDÐDr   )r&   r-   r.   r/   r5   r   r   r   r    r,   r\   r]   s   @r   rk   rk   ”   sÇ   ø€ € € € € Ø1Ð1ð
ð 
ð 
ð 
ð 
ð"
ð 
ð 
ð 
ð 
ð
@ð @ð @ð @ð @ð
Hð Hð Hð Hð HðRð Rð Rð Rð RðEð Eð Eð Eð Eð Eð Er   rk   c                   ó<   — e Zd 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 r3   ©ÚtemplateÚparts)r	   r   r€   s      r   r5   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   )rU   Úpartr
   s     €r   rV   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   )rU   r„   r   r
   s     €€r   rV   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Õ   óO   øø€ Ýð 
ð 
ð 
ð 
ð 
àœ
×)Ò)Ñ+Ô+ð
ñ 
ô 
ñ 
ô 
ð 	
r   c                 ól   ‡‡— t          ˆˆfd„| j                             ¦   «         D ¦   «         ¦  «        S )Nc              3   ód   •K  — | ]*}t          |d ¦  «        o|                     ‰‰¦  «        V — Œ+dS )r   N)rƒ   r   )rU   r„   r   r
   s     €€r   rV   z-Statement.references_index.<locals>.<genexpr>Ü   sW   øè è € ð 
ð 
àõ �DÐ,Ñ-Ô-ÐU°$×2GÒ2GÈÈuÑ2UÔ2Uð
ð 
ð 
ð 
ð 
ð 
r   r…   r   s    ``r   r   zStatement.references_indexÛ   rŠ   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 r3   r~   r(   s    r   r,   zStatement.__str__ë   s   € ØŒ}˜tœzÑ)Ð)r   N)r&   r-   r.   r/   r5   r   r   r   r   r    r,   r   r   r   r|   r|   Â   s�   € € € € € ðð ðð ð ð
ð 
ð 
ð
ð 
ð 
ð
ð 
ð 
ðCð Cð Cð
Mð Mð Mð
*ð *ð *ð *ð *r   r|   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   )rU   rO   s     r   ú
<listcomp>z(Expressions.__init__.<locals>.<listcomp>ô   s-   € ð 
ð 
ð 
àð ŒJÔð
ð 
ð 
r   )ÚcompilerÚexpressionsÚquote_valueÚqueryÚ	_gen_colsrG   r5   )r	   r
   r—   r–   r˜   r?   r%   s         €r   r5   zExpressions.__init__ð   ss   ø€ Ø ˆŒØ&ˆÔØ&ˆÔð
ð 
à”}Ô*×4Ò4°dÔ6FÐ5GÑHÔHð
ñ 
ô 
ˆõ 	‰Œ×Ò˜ Ñ(Ô(Ð(Ð(Ð(r   c                 ó¨   •— | j         |k    rd S | j                             ||i¦  «        | _        t          ¦   «                              ||¦  «         d S r3   )r
   r—   Úrelabeled_clonerG   r   rw   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 r3   )
r
   r   r—   r?   r–   r™   rš   r”   r   Úappend)r	   r
   r   r   r—   rO   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 r3   )r–   Úcompiler—   Úmapr˜   Útuple)r	   ÚsqlÚparamss      r   r,   zExpressions.__str__  sA   € Ø”m×+Ò+¨DÔ,<Ñ=Ô=‰ˆˆVÝ�TÔ% vÑ.Ô.ˆØ•U˜6‘]”]Ñ"Ð"r   )r&   r-   r.   r5   r   r    r,   r\   r]   s   @r   r‘   r‘   ï   so   ø€ € € € € ð)ð )ð )ð )ð )ð>ð >ð >ð >ð >ð	'ð 	'ð 	'ð#ð #ð #ð #ð #ð #ð #r   r‘   N)r/   Úcopyr   r   r1   r<   rD   r_   rd   rk   r|   r‘   r   r   r   ú<module>r¦      s¸  ððð ð
 Ð Ð Ð Ð Ð ð'
ð '
ð '
ð '
ð '
ñ '
ô '
ð '
ðT+ð +ð +ð +ð +ˆ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ð\**ð **ð **ð **ð **�	ñ **ô **ð **ðZ#ð #ð #ð #ð #�,ñ #ô #ð #ð #ð #r   