Ë
    ¹ûàg«!  ã                   óØ   — 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y)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
y	)
Ú	Referencez0Base class that defines the reference interface.c                  ó   — y)zU
        Return whether or not this instance references the specified table.
        F© ©ÚselfÚtables     ú_/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/django/db/backends/ddl_references.pyÚreferences_tablezReference.references_table   ó   € ð ó    c                  ó   — y)zV
        Return whether or not this instance references the specified column.
        Fr   ©r	   r
   Úcolumns      r   Úreferences_columnzReference.references_column   r   r   c                  ó   — y)zU
        Return whether or not this instance references the specified index.
        Fr   ©r	   r
   Úindexs      r   Úreferences_indexzReference.references_index   r   r   c                  ó   — y)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                  ó   — y)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                 óN   — d| j                   j                  ›dt        | «      ›d�S )Nú<ú ú>)Ú	__class__Ú__name__Ústr©r	   s    r   Ú__repr__zReference.__repr__*   s   � Ø ŸN™N×3Ó3´S¸µ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                   ó.   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTablezHold a reference to a table.c                 ó    — || _         || _        y ©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‰z˜UÑ"Ð"r   c                 óD   — | j                  |«      xr t        | «      |k(  S r3   )r   r'   r   s      r   r   zTable.references_index=   s!   € Ø×$Ñ$ UÓ+ÒB´°D³	¸UÑ0BÐBr   c                 ó2   — | j                   |k(  r|| _         y y r3   r7   r   s      r   r   zTable.rename_table_references@   s   € Ø�:‰:˜Ò"Ø"ˆD�Jð #r   c                 ó8   — | j                  | j                  «      S r3   )r4   r
   r(   s    r   r,   zTable.__str__D   s   € Ø�‰˜tŸz™zÓ*Ð*r   N)	r&   r-   r.   r/   r5   r   r   r   r,   r   r   r   r1   r1   3   s   „ Ù&ò%ò#òCò#ó+r   r1   c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)ÚTableColumnsz9Base class for references to multiple columns of a table.c                 ó    — || _         || _        y r3   ©r
   Úcolumns)r	   r
   r?   s      r   r5   zTableColumns.__init__K   s   € ØˆŒ
Øˆ�r   c                 ó@   — | j                   |k(  xr || j                  v S r3   r>   r   s      r   r   zTableColumns.references_columnO   s   € Ø�z‰z˜UÑ"Ò= v°·±Ð'=Ð=r   c                 óˆ   — | j                   |k(  r3t        | j                  «      D ]  \  }}||k(  sŒ|| j                  |<   Œ y y r3   )r
   Ú	enumerater?   )r	   r
   r   r   r   r   s         r   r    z%TableColumns.rename_column_referencesR   sE   € Ø�:‰:˜ÒÜ!*¨4¯<©<Ó!8ò 5‘��vØ˜ZÓ'Ø*4�D—L‘L Ò'ñ5ð r   N)r&   r-   r.   r/   r5   r   r    r   r   r   r<   r<   H   s   „ ÙCòò>ó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.c                 óB   •— || _         || _        t        ‰| �  ||«       y r3   )r4   Úcol_suffixesÚsuperr5   )r	   r
   r?   r4   rF   r%   s        €r   r5   zColumns.__init__\   s!   ø€ Ø$ˆŒØ(ˆÔÜ‰Ñ˜ Õ(r   c                 ój   ‡ ‡— ˆ fd„Šdj                  ˆfd„t        ‰ j                  «      D «       «      S )Nc                 ó’   •— ‰j                  | «      }	 ‰j                  |   }|rdj                  ||«      }|S # t        $ r Y |S w xY w©Nz{} {})r4   rF   ÚformatÚ
IndexError©r   ÚidxÚcolÚsuffixr	   s       €r   Úcol_strz Columns.__str__.<locals>.col_strb   sY   ø€ Ø—/‘/ &Ó)ˆCðØ×*Ñ*¨3Ñ/�ÙØ!Ÿ.™.¨¨fÓ5�Cð ˆJøô ò ØØˆJðús   ”#9 ¹	AÁAú, c              3   ó6   •K  — | ]  \  }} ‰||«      –— Œ y ­wr3   r   ©Ú.0rN   r   rQ   s      €r   ú	<genexpr>z"Columns.__str__.<locals>.<genexpr>l   ó!   øè ø€ ò 
Ù%0 S¨&‰G�F˜C× ñ
ùó   ƒ©ÚjoinrB   r?   ©r	   rQ   s   `@r   r,   zColumns.__str__a   s1   ù€ ô	ð �y‰yó 
Ü4=¸d¿l¹lÓ4Kô
ó 
ð 	
r   )r   ©r&   r-   r.   r/   r5   r,   Ú__classcell__©r%   s   @r   rD   rD   Y   s   ø„ Ù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                 óB   •— || _         || _        t        ‰| �  ||«       y r3   )rP   Úcreate_index_namerG   r5   )r	   r
   r?   rP   rb   r%   s        €r   r5   zIndexName.__init__t   s!   ø€ ØˆŒØ!2ˆÔÜ‰Ñ˜ Õ(r   c                 ód   — | j                  | j                  | j                  | j                  «      S r3   )rb   r
   r?   rP   r(   s    r   r,   zIndexName.__str__y   s#   € Ø×%Ñ% d§j¡j°$·,±,ÀÇÁÓLÐLr   r\   r^   s   @r   r`   r`   q   s   ø„ Ù,ô)ö
Mr   r`   c                   ó&   ‡ — e Zd Zdˆ fd„	Zd„ Zˆ xZS )ÚIndexColumnsc                 ó8   •— || _         t        ‰| �	  ||||«       y r3   )Ú	opclassesrG   r5   )r	   r
   r?   r4   rF   rg   r%   s         €r   r5   zIndexColumns.__init__~   s   ø€ Ø"ˆŒÜ‰Ñ˜ ¨°\ÕBr   c                 ój   ‡ ‡— ˆ fd„Šdj                  ˆfd„t        ‰ j                  «      D «       «      S )Nc                 óÌ   •— dj                  ‰j                  | «      ‰j                  |   «      }	 ‰j                  |   }|rdj                  ||«      }|S # t        $ r Y |S w xY wrJ   )rK   r4   rg   rF   rL   rM   s       €r   rQ   z%IndexColumns.__str__.<locals>.col_strƒ   so   ø€ ð —.‘. §¡°Ó!8¸$¿.¹.ÈÑ:MÓNˆCðØ×*Ñ*¨3Ñ/�ÙØ!Ÿ.™.¨¨fÓ5�Cð ˆJøô ò ØØˆJðús   ±#A Á	A#Á"A#rR   c              3   ó6   •K  — | ]  \  }} ‰||«      –— Œ y ­wr3   r   rT   s      €r   rV   z'IndexColumns.__str__.<locals>.<genexpr>�   rW   rX   rY   r[   s   `@r   r,   zIndexColumns.__str__‚   s1   ù€ ô
	ð �y‰yó 
Ü4=¸d¿l¹lÓ4Kô
ó 
ð 	
r   )r   r   )r&   r-   r.   r5   r,   r]   r^   s   @r   re   re   }   s   ø„ õCö
r   re   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                 ód   •— t        ||«      | _        || _        || _        t        ‰| �  ||«       y r3   )r<   Úto_referenceÚsuffix_templateÚcreate_fk_namerG   r5   )r	   Ú
from_tableÚfrom_columnsÚto_tableÚ
to_columnsro   rp   r%   s          €r   r5   zForeignKeyName.__init__—   s7   ø€ ô )¨°:Ó>ˆÔØ.ˆÔØ,ˆÔÜ‰ÑØØõ	
r   c                 ó\   •— t         ‰| �  |«      xs | j                  j                  |«      S r3   )rG   r   rn   )r	   r
   r%   s     €r   r   zForeignKeyName.references_table¨   s0   ø€ Ü‰wÑ'¨Ó.ò 
°$×2CÑ2C×2TÑ2TØó3
ð 	
r   c                 ó`   •— t         ‰| �  ||«      xs | j                  j                  ||«      S r3   )rG   r   rn   )r	   r
   r   r%   s      €r   r   z ForeignKeyName.references_column­   s7   ø€ Ü‰wÑ(Ø�6ó
ò @à×Ñ×0Ñ0°¸Ó?ð	@r   c                 ó^   •— t         ‰| �  ||«       | j                  j                  ||«       y r3   )rG   r   rn   ©r	   r   r   r%   s      €r   r   z&ForeignKeyName.rename_table_references²   s(   ø€ Ü‰Ñ'¨	°9Ô=Ø×Ñ×1Ñ1°)¸YÕGr   c                 ób   •— t         ‰| �  |||«       | j                  j                  |||«       y r3   )rG   r    rn   )r	   r
   r   r   r%   s       €r   r    z'ForeignKeyName.rename_column_references¶   s,   ø€ Ü‰Ñ(¨°
¸JÔGØ×Ñ×2Ñ2°5¸*ÀjÕQr   c                 óÊ   — | j                   | j                  j                  | j                  j                  d   dœz  }| j	                  | j                  | j                  |«      S )Nr   )rs   Ú	to_column)ro   rn   r
   r?   rp   )r	   rP   s     r   r,   zForeignKeyName.__str__º   sY   € Ø×%Ñ%Ø×)Ñ)×/Ñ/Ø×*Ñ*×2Ñ2°1Ñ5ñ)
ñ 
ˆð ×"Ñ" 4§:¡:¨t¯|©|¸VÓDÐDr   )r&   r-   r.   r/   r5   r   r   r   r    r,   r]   r^   s   @r   rl   rl   ”   s(   ø„ Ù1ô
ô"
ô
@ô
HôRöEr   rl   c                   ó:   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
Ú	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                 ó    — || _         || _        y r3   ©ÚtemplateÚparts)r	   r€   r�   s      r   r5   zStatement.__init__Ë   s   € Ø ˆŒØˆ�
r   c                 ó\   ‡— t        ˆfd„| j                  j                  «       D «       «      S )Nc              3   ó\   •K  — | ]#  }t        |d «      xr |j                  ‰«      –— Œ% y­w)r   N)Úhasattrr   )rU   Úpartr
   s     €r   rV   z-Statement.references_table.<locals>.<genexpr>Ð   s4   øè ø€ ò 
àô �DÐ,Ó-ÒN°$×2GÑ2GÈÓ2NÓNñ
ùs   ƒ),©Úanyr�   Úvaluesr   s    `r   r   zStatement.references_tableÏ   s*   ø€ Üó 
àŸ
™
×)Ñ)Ó+ô
ó 
ð 	
r   c                 ó`   ‡‡— t        ˆˆfd„| j                  j                  «       D «       «      S )Nc              3   ó^   •K  — | ]$  }t        |d «      xr |j                  ‰‰«      –— Œ& y­w)r   N)r„   r   )rU   r…   r   r
   s     €€r   rV   z.Statement.references_column.<locals>.<genexpr>Ö   s7   øè ø€ ò 
àô �DÐ-Ó.ÒX°4×3IÑ3IÈ%ÐQWÓ3XÓXñ
ùó   ƒ*-r†   r   s    ``r   r   zStatement.references_columnÕ   ó*   ù€ Üô 
àŸ
™
×)Ñ)Ó+ô
ó 
ð 	
r   c                 ó`   ‡‡— t        ˆˆfd„| j                  j                  «       D «       «      S )Nc              3   ó^   •K  — | ]$  }t        |d «      xr |j                  ‰‰«      –— Œ& y­w)r   N)r„   r   )rU   r…   r   r
   s     €€r   rV   z-Statement.references_index.<locals>.<genexpr>Ü   s6   øè ø€ ò 
àô �DÐ,Ó-ÒU°$×2GÑ2GÈÈuÓ2UÓUñ
ùr‹   r†   r   s    ``r   r   zStatement.references_indexÛ   rŒ   r   c                 ó€   — | j                   j                  «       D ]!  }t        |d«      sŒ|j                  ||«       Œ# y )Nr   )r�   rˆ   r„   r   )r	   r   r   r…   s       r   r   z!Statement.rename_table_referencesá   s;   € Ø—J‘J×%Ñ%Ó'ò 	CˆDÜ�tÐ6Õ7Ø×,Ñ,¨Y¸	ÕBñ	Cr   c                 ó‚   — | j                   j                  «       D ]"  }t        |d«      sŒ|j                  |||«       Œ$ y )Nr    )r�   rˆ   r„   r    )r	   r
   r   r   r…   s        r   r    z"Statement.rename_column_referencesæ   s=   € Ø—J‘J×%Ñ%Ó'ò 	MˆDÜ�tÐ7Õ8Ø×-Ñ-¨e°ZÀÕLñ	Mr   c                 ó4   — | j                   | j                  z  S r3   r   r(   s    r   r,   zStatement.__str__ë   s   € Ø�}‰}˜tŸz™zÑ)Ð)r   N)r&   r-   r.   r/   r5   r   r   r   r   r    r,   r   r   r   r}   r}   Â   s,   „ ñòò
ò
ò
òCò
Mó
*r   r}   c                   ó4   ‡ — e Zd Zˆ fd„Zˆ fd„Zd„ Zd„ Zˆ xZS )ÚExpressionsc                 óü   •— || _         || _        || _        | j                   j                  j	                  | j                  g«      D �cg c]  }|j
                  j                  ‘Œ }}t        ‰| �!  ||«       y c c}w r3   )	ÚcompilerÚexpressionsÚquote_valueÚqueryÚ	_gen_colsÚtargetr   rG   r5   )r	   r
   r–   r•   r—   rO   r?   r%   s          €r   r5   zExpressions.__init__ð   sw   ø€ Ø ˆŒØ&ˆÔØ&ˆÔð —}‘}×*Ñ*×4Ñ4°d×6FÑ6FÐ5GÓHö
àð �J‰J×Óð
ˆð 
ô 	‰Ñ˜ Õ(ùò	
s   Á	A9c                 óŠ   •— | j                   |k7  ry | j                  j                  ||i«      | _        t        ‰| �  ||«       y r3   )r
   r–   Úrelabeled_clonerG   r   rx   s      €r   r   z#Expressions.rename_table_referencesú   s?   ø€ Ø�:‰:˜Ò"ØØ×+Ñ+×;Ñ;¸YÈ	Ð<RÓSˆÔÜ‰Ñ'¨	°9Õ=r   c                 ór  — | j                   |k7  ry t        | j                  «      }g | _        | j                  j
                  j                  |g«      D ][  }|j                  j                  |k(  r||j                  _        | j                  j                  |j                  j                  «       Œ] || _        y 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’   € Ø�:‰:˜ÒØÜ˜t×/Ñ/Ó0ˆØˆŒØ—=‘=×&Ñ&×0Ñ0°+°Ó?ò 	3ˆCØ�z‰z× Ñ  JÒ.Ø$.�—
‘
Ô!Ø�L‰L×Ñ §
¡
× 1Ñ 1Õ2ð	3ð 'ˆÕr   c                 óš   — | j                   j                  | j                  «      \  }}t        | j                  |«      }|t        |«      z  S r3   )r•   Úcompiler–   Úmapr—   Útuple)r	   ÚsqlÚparamss      r   r,   zExpressions.__str__  sA   € Ø—m‘m×+Ñ+¨D×,<Ñ,<Ó=‰ˆˆVÜ�T×%Ñ% vÓ.ˆØ”U˜6“]Ñ"Ð"r   )r&   r-   r.   r5   r   r    r,   r]   r^   s   @r   r“   r“   ï   s   ø„ ô)ô>ò	'ö#r   r“   N)r/   Úcopyr   r   r1   r<   rD   r`   re   rl   r}   r“   r   r   r   ú<module>r¦      s€   ðñõ
 ÷'
ñ '
ôT+ˆIô +ô*5�5ô 5ô"
ˆlô 
ô0	M�ô 	Mô
�7ô 
ô.+E�\ô +Eô\**�	ô **ôZ#�,õ #r   