Ë
    qûàg[  ã                   óž   — d dl Z d dlmZ d dlmZ d dlmZ d dlmZm	Z	 d dl
mZmZ d dlmZ d dlmZ d d	lmZ d d
lmZ dZdZ G d„ de«      Zy)é    N)Ú
itemgetter)ÚPath)Úcall_command)ÚBaseCommandÚCommandError)ÚDEFAULT_DB_ALIASÚconnections)ÚMigrationLoader)ÚMigrationRecorder)Útimezone)Úsignalcommandzmanagestate.jsonÚdefaultc                   ó¸   — e Zd ZU dZdxZZdZeed<   eed<   e	ed<   e
ed<   d„ Zed„ «       Zd	e	fd
„Zd	e	fd„Zdefd„Zdefd„Zde	de	defd„Zdefd„Zdefd„Zy)ÚCommandz,Manage database state in the convenient way.NÚmigrate_argsÚmigrate_optionsÚfilenameÚ	verbosityc                 óè  — |j                  ddd¬«       |j                  ddt        dt        › d�¬	«       |j                  d
dt        dt        › d�¬«       |j                  ddt        dt        › d�¬«       |j                  ddddd¬«       |j                  ddd¬«       |j                  ddd¬«       |j                  ddd¬«       |j                  d dd!¬«       |j                  d"dd#d$¬«       y )%NÚaction)ÚdumpÚloadztAn action to do. Dump action saves applied migrations to a file. Load action applies migrations specified in a file.)ÚchoicesÚhelpÚstateú?z@A name of a state. Usually a name of a git branch. Defaults to "ú")Únargsr   r   z-dz
--databasez6Nominates a database to synchronize. Defaults to the "z" database.)r   r   z-fz
--filenamez!A file to write to. Defaults to "z	--noinputz
--no-inputÚstore_falseÚinteractivez^The argument for "migrate" command. Tells Django to NOT prompt the user for input of any kind.)r   Údestr   z--fakeÚ
store_truezYThe argument for "migrate" command. Mark migrations as run without actually running them.)r   r   z--fake-initiala   The argument for "migrate" command. Detect if tables already exist and fake-apply initial migrations if so. Make sure that the current database schema matches your initial migration before using this flag. Django will only check for an existing table name.z--planzaThe argument for "migrate" command. Shows a list of the migration actions that will be performed.z--run-syncdbzOThe argument for "migrate" command. Creates tables for apps without migrations.z--checkÚcheck_unappliedz_The argument for "migrate" command. Exits with a non-zero status if unapplied migrations exist.)Úadd_argumentÚDEFAULT_STATEr   ÚDEFAULT_FILENAME)ÚselfÚparsers     úo/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/django_extensions/management/commands/managestate.pyÚadd_argumentszCommand.add_arguments   si  € Ø×ÑØÐ.ðGð 	ô 	
ð 	×ÑØ˜3¬ØSÔTaÐSbÐbcÐdð 	ô 	
ð 	×ÑØ�,Ô(8ØIÔJZÐI[Ð[fÐgð 	ô 	
ð 	×ÑØ�,Ô(8Ø4Ô5EÐ4FÀaÐHð 	ô 	
ð 	×ÑØ˜¨mÀ-ðNð 	ô 	
ð
 	×ÑØ˜\ðIð 	ô 	
ð
 	×ÑØ \ðLð 	ô 	
ð 	×ÑØ˜\ðQð 	ô 	
ð
 	×ÑØ <ð?ð 	ô 	
ð
 	×ÑØ˜lÐ1BðOð 	õ 	
ó    c                 ó�   — || _         || _        |d   | _        t        |   | _        || _        || _         t        | |«      |«       y )Nr   )r   r   r   r	   ÚconnÚdatabaser   Úgetattr)r'   r   r.   r   r   ÚargsÚoptionss          r)   ÚhandlezCommand.handleR   sI   € à ˆÔØ&ˆÔØ  Ñ-ˆŒÜ Ñ)ˆŒ	Ø ˆŒØ ˆŒØŒ��fÓ˜eÕ$r+   r   c           	      ó  — | j                  «       }|j                  | j                  «       «       | j                  ||i«       | j                  j                  | j
                  j                  d|› d| j                  › d�«      «       y)z"Save applied migrations to a file.zMigrations for state "z"" have been successfully saved to ú.N)Úget_migrated_appsÚupdateÚget_applied_migrationsÚwriteÚstdoutÚstyleÚSUCCESSr   )r'   r   Úmigrated_appss      r)   r   zCommand.dump\   ss   € à×.Ñ.Ó0ˆØ×Ñ˜T×8Ñ8Ó:Ô;Ø�
‰
�E˜=Ð)Ô*Ø�‰×Ñ˜$Ÿ*™*×,Ñ,Ø$ U GÐ+MÈdÏmÉmÈ_Ð\]Ð^ó
õ 	r+   c                 ól  — | j                  «       j                  |«      }|€t        d|› �«      ‚i | j                  ¥| j                  | j
                  dkD  r| j
                  dz
  nddœ¥}|j                  «       D ]  \  }}| j                  ||«      rŒ| j
                  dkD  r8| j                  j                  | j                  j                  d|› d�«      «       ||g| j                  ¢­}t        dg|¢­i |¤Ž Œ� | j                  j                  | j                  j                  d	|› d
�«      «       y)zApply migrations from a file.NzNo such state saved: é   r   )r.   r   zApplying migrations for "r   ÚmigrateúMigrations for "z!" have been successfully applied.)ÚreadÚgetr   r   r.   r   ÚitemsÚ
is_appliedr9   r8   r:   ÚWARNINGr   r   r;   )r'   r   Ú
migrationsÚkwargsÚappÚ	migrationr0   s          r)   r   zCommand.loade   s+  € à—Y‘Y“[—_‘_ UÓ+ˆ
ØÐÜÐ!6°u°gÐ>Ó?Ð?ð
Ø×"Ñ"ð
àŸ™Ø/3¯~©~ÀÒ/A˜Ÿ™¨!Ò+Àqò
ˆð )×.Ñ.Ó0ò 	5‰NˆC�Ø�‰˜s IÔ.Øà�~‰~ Ò!Ø—‘×!Ñ! $§*¡*×"4Ñ"4Ð7PÐQTÐPUÐUVÐ5WÓ"XÔYØ˜Ð7 T×%6Ñ%6Ñ7ˆDÜ˜Ð4 TÒ4¨VÓ4ð	5ð 	�‰×Ñ˜$Ÿ*™*×,Ñ,Ø˜u˜gÐ%FÐGó
õ 	r+   Úreturnc                 óú   — t        | j                  «      j                  }t        j	                  |d«      }| j
                  dkD  r6| j                  j                  ddj                  t        |«      «      z   «       |S )z!Installed apps having migrations.Úzeror>   zApps having migrations: z, )
r
   r-   r<   ÚdictÚfromkeysr   r9   r8   ÚjoinÚsorted)r'   Úappsr<   s      r)   r5   zCommand.get_migrated_apps~   s^   € ä˜tŸy™yÓ)×7Ñ7ˆÜŸ™ d¨FÓ3ˆØ�>‰>˜AÒØ�K‰K×ÑÐ8¸4¿9¹9ÄVÈMÓEZÓ;[Ñ[Ô\ØÐr+   c                 óø   — | j                   r| j                   S t        | j                  «      j                  «       }t	        |j                  «       t        d«      ¬«      }t        |«      | _         | j                   S )z,Installed apps with last applied migrations.r>   )Úkey)Ú_applied_migrationsr   r-   Úapplied_migrationsrP   Úkeysr   rM   )r'   rF   Úlast_applieds      r)   r7   zCommand.get_applied_migrations†   s^   € à×#Ò#Ø×+Ñ+Ð+ä& t§y¡yÓ1×DÑDÓFˆ
Ü˜jŸo™oÓ/´ZÀ³]ÔCˆä#'¨Ó#5ˆÔ Ø×'Ñ'Ð'r+   rH   rI   c                 óÜ   — | j                  «       j                  |«      }||k(  rH| j                  dkD  r8| j                  j	                  | j
                  j                  d|› d�«      «       yy)z7Check whether a migration for an app is applied or not.r>   r@   z" are already applied.TF)r7   rB   r   r9   r8   r:   rE   )r'   rH   rI   Úapplieds       r)   rD   zCommand.is_applied‘   sg   € à×-Ñ-Ó/×3Ñ3°CÓ8ˆØ�iÒØ�~‰~ Ò!Ø—‘×!Ñ! $§*¡*×"4Ñ"4Ø& s eÐ+AÐBó#ô ð Ør+   c                 ó  — t        | j                  «      }|j                  «       r|j                  «       st	        d| j                  › �«      ‚t        | j                  «      5 }t        j                  |«      cddd«       S # 1 sw Y   yxY w)zGet saved state from the file.zNo such file: N)r   r   ÚexistsÚis_filer   ÚopenÚjsonr   )r'   ÚpathÚfiles      r)   rA   zCommand.readœ   se   € ä�D—M‘MÓ"ˆØ�{‰{Œ} D§L¡L¤NÜ °·±¨Ð?Ó@Ð@ä�$—-‘-Ó ð 	# DÜ—9‘9˜T“?÷	#÷ 	#ò 	#ús   Á#BÂBÚdatac                 ó,  — 	 | j                  «       }|j                  |t        t	        j
                  «       «      ¬«       t        | j                  d«      5 }t        j                  ||dd¬«       ddd«       y# t        $ r i }Y Œtw xY w# 1 sw Y   yxY w)z.Write new data to the file using existent one.)Ú
updated_atÚwé   T)ÚindentÚ	sort_keysN)
rA   r   r6   Ústrr   Únowr]   r   r^   r   )r'   ra   Úsavedr`   s       r)   r8   zCommand.write¥   s�   € ð	Ø—I‘I“KˆEð 	�‰�T¤c¬(¯,©,«.Ó&9ˆÔ:Ü�$—-‘- Ó%ð 	=¨Ü�I‰I�e˜T¨!°tÕ<÷	=ð 	=øô	 ò 	ØŠEð	ú÷	=ð 	=ús   ‚A9 ÁB
Á9BÂBÂ
B)Ú__name__Ú
__module__Ú__qualname__r   r-   r.   rT   rM   Ú__annotations__rh   Úintr*   r   r2   r   r   r5   r7   ÚboolrD   rA   r8   © r+   r)   r   r      s©   … Ø9€DØÐ€Dˆ8ØÐØÓØÓØƒMØƒNò4
ðl ñ%ó ð%ð˜#ó ð˜#ó ð2 4ó ð	(¨ó 	(ð	˜cð 	¨cð 	°dó 	ð#�dó #ð	=˜$ô 	=r+   r   )r^   Úoperatorr   Úpathlibr   Údjango.core.managementr   Údjango.core.management.baser   r   Ú	django.dbr   r	   Údjango.db.migrations.loaderr
   Údjango.db.migrations.recorderr   Údjango.utilsr   Ú"django_extensions.management.utilsr   r&   r%   r   rq   r+   r)   ú<module>r{      s<   ðã Ý Ý å /ß Aß 3Ý 7Ý ;Ý !å <à%Ð Ø€ô[=ˆkõ [=r+   