Ë
    qûàgº  ã                   ó@  — d Z ddlZddlZddlmZ ddlmZ ddlmZm	Z	 ddl
mZ ddlmZ ddlmZmZmZ dd	lmZ d
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zedefedefed ed«      fedefedefedefed ed«      fedefedefedefed ed«      fedefgZ G d„ de«      Zy)z.
sqldns.py

Prints Data Source Name on stdout
é    N)ÚList)Úsettings)ÚBaseCommandÚCommandError)Úcolor_style)ÚDEFAULT_DB_ALIAS)ÚSQLITE_ENGINESÚPOSTGRESQL_ENGINESÚMYSQL_ENGINES)ÚRemovedInNextVersionWarningc                 ó   — |S ©N© ©ÚdbhostÚdbportÚdbnameÚdbuserÚdbpasss        új/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/django_extensions/management/commands/sqldsn.pyÚ_sqlite_namer      s   € Ø€Mó    c           	      ó:   — d| › d|› d|› d|› d�	}|�	|d|› d�z  }|S )Nzhost="z", db="z	", user="z", passwd="ú"z, port="r   ©r   r   r   r   r   Údsnstrs         r   Ú_mysql_keyvaluer      sA   € Ø�f�X˜W V H¨I°f°X¸[ÈÈÐPQÐR€FØÐØ�H˜V˜H AÐ&Ñ&ˆØ€Mr   c           	      ó8   — d| › d|› d|› d|› d�	}|�|d|› �z  }|S )Nz-h "z" -D "z" -u "z" -p "r   z -P r   r   s         r   Ú_mysql_argsr      s=   € Ø�F�8˜6 & ¨°¨x°v¸f¸XÀQÐG€FØÐØ�D˜˜�/Ñ!ˆØ€Mr   c           	      ó:   — d| › d|› d|› d|› d�	}|�	|d|› d�z  }|S )Nzhost='z
' dbname='z' user='z' password='ú'z port='r   r   s         r   Ú_postgresql_keyvaluer"   &   sA   € Ø�f�X˜Z¨ x¨x¸°x¸|ÈFÈ8ÐSTÐU€FØÐØ�G˜F˜8 1Ð%Ñ%ˆØ€Mr   c                 ó6   — d| ›d|›d|›d|›�}|�|d|›�z  }|S )Nzhost=z, database=z, user=z, password=z, port=r   r   s         r   Ú_postgresql_kwargsr$   -   s=   € Ø�V�J˜k¨&¨°7¸6¸*ÀKÐPVÈzÐZ€FØÐØ�G˜F˜:Ð&Ñ&ˆØ€Mr   c                 ó<   — dj                  d„ | ||||fD «       «      S )Nú:c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   )Ústr)Ú.0Úss     r   ú	<genexpr>z%_postgresql_pgpass.<locals>.<genexpr>5   s   è ø€ ÒM˜q”C˜—FÑMùs   ‚)Újoinr   s        r   Ú_postgresql_pgpassr-   4   s"   € Ø�8‰8ÑM V¨V°V¸VÀVÐ$LÔMÓMÐMr   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó€   •— | xs d}|�|dk7  r|d|› �z  }|�|dk7  r|}|�|dk7  r|d|› �z  }|› d|› �}‰› d|› d|› �S )NÚ r&   ú@z://ú/r   )r   r   r   r   r   ÚhostÚuserÚengines          €r   Úinnerz_uri.<locals>.inner9   s|   ø€ ØŠ|˜ˆØÐ &¨B¢,Ø�a˜�x�LÑ ˆDØÐ &¨B¢,ØˆDØÐ! f°¢lØ˜!˜F˜8˜Ñ$�Ø�V˜1˜T˜FÐ#ˆDØ�˜˜T˜F ! F 8Ð,Ð,r   r   )r5   r6   s   ` r   Ú_urir7   8   s   ø€ ô	-ð €Lr   ÚfilenameÚuriÚsqliteÚkeyvalueÚargsÚmysqlÚkwargsÚ
postgresqlÚpgpassc                   óH   ‡ — e Zd ZU dZg Zee   ed<   dZˆ fd„Z	d„ Z
d„ Zˆ xZS )ÚCommandz1Prints DSN on stdout, as specified in settings.pyÚrequires_system_checksTc                 ó¶  •— t         ‰| �  |«       |j                  «       }|j                  ddddt        d¬«       |j                  dt        dt        z  ¬	«       t        t        t        D ��cg c]  \  }}}|€Œ
|‘Œ c}}«      «      }|j                  d
dddd |dgz   d¬«       |j                  dddddd¬«       |j                  dddddd¬«       y c c}}w )Nz-Rz--routerÚstoreÚrouterzPUse this router-database other then default (deprecated: use --database instead))ÚactionÚdestÚdefaultÚhelpz
--databasezGNominates a database to run command for. Defaults to the "%s" database.)rI   rJ   z-sz--styleÚstyleÚallzDSN format style.)rG   rH   rI   ÚchoicesrJ   z-az--allÚ
store_trueFz Show DSN for all database routesz-qz--quietÚquietzQuiet mode only show DSN)ÚsuperÚadd_argumentsÚadd_mutually_exclusive_groupÚadd_argumentr   ÚsortedÚsetÚ_FORMATTERS)ÚselfÚparserÚdbspecÚ_rK   ÚstylesÚ	__class__s         €r   rQ   zCommand.add_arguments[   s  ø€ Ü‰Ñ˜fÔ%Ø×4Ñ4Ó6ˆØ×ÑØ�* WØÔ#3Øcð 	ô 	
ð
 	×ÑØÔ"2ØZÔ]mÑmð 	ô 	
ô œ´k×W¡{ q¨%°ÀUÑEVšUÓWÓXÓYˆØ×ÑØ�) GØ $°¸%¸Ñ0@Ø$ð 	ô 	
ð
 	×ÑØ�' ,Ø Ø3ð 	ô 	
ð
 	×ÑØ�) LØ %Ø+ð 	õ 	
ùó Xs   Á.CÁ:Cc                 óh  — t        «       | _        |d   }|rt        j                  j	                  «       }n4|d   g}|d   t
        k7  r"t        j                  dt        d¬«       |d   g}t        |«      D ];  \  }}|dk7  rt        j                  j                  d«       | j                  ||«       Œ= y )	NrL   ÚdatabaserF   z2--router is deprecated. You should use --database.é   )Ú
stacklevelr   ú
)r   rK   r   Ú	DATABASESÚkeysr   ÚwarningsÚwarnr   Ú	enumerateÚsysÚstdoutÚwriteÚshow_dsn)rW   r<   ÚoptionsÚall_databasesÚ	databasesÚir^   s          r   ÚhandlezCommand.handlex   s¥   € Ü “]ˆŒ
Ø ™ˆáÜ ×*Ñ*×/Ñ/Ó1‰Ià  Ñ,Ð-ˆIØ�xÑ Ô$4Ò4Ü—‘ÐRÔToÐ|}Õ~Ø$ XÑ.Ð/�	ä$ YÓ/ò 	-‰KˆAˆxØ�AŠvÜ—
‘
× Ñ  Ô&Ø�M‰M˜( GÕ,ñ	-r   c                 ó2  ‡— t         j                  j                  |«      }|d   }|d   }|€t        d|z  «      ‚|j                  d«      Š|j                  d«      }|j                  d«      }|j                  d«      }|j                  d«      }	|j                  d	«      }
|
d
k(  rd }
t        D ���cg c]"  \  }}}‰|v r||k(  s|dk(  r|� ||	|
|||«      ‘Œ$ }}}}|sHdj                  ˆfd„t        D «       «      }| j                  j                  |rd|› d‰› d|› d�nd«      g}|s?t        j                  j                  | j                  j                  d|›d‰›d�«      «       |D ]$  }t        j                  j                  |› d�«       Œ& y c c}}}w )NrO   rK   zUnknown database %sÚENGINEÚUSERÚPASSWORDÚNAMEÚHOSTÚPORTr0   rL   z, c              3   ó6   •K  — | ]  \  }}}‰|v r|�|–— Œ y ­wr   r   )r)   ÚenginesrK   rZ   r5   s       €r   r+   z#Command.show_dsn.<locals>.<genexpr>¢   s,   øè ø€ ò "<Ù+˜' 5¨!Ø˜WÑ$¨Ð):ô ñ"<ùs   ƒzInvalid style z for z (available: ú)z$Unknown database, can't generate DSNzDSN for database z with engine z:
ra   )r   rb   Úgetr   rV   r,   rK   ÚERRORrg   rh   ri   Ú	SQL_TABLE)rW   r^   rk   ÚdbinforO   Ú	dsn_styler   r   r   r   r   rx   rK   Ú	formatterÚdsnÚ	availableÚoutputr5   s                    @r   rj   zCommand.show_dsn‰   s¸  ø€ Ü×#Ñ#×'Ñ'¨Ó1ˆØ˜Ñ ˆØ˜GÑ$ˆ	àˆ>ÜÐ4°xÑ?Ó@Ð@à—‘˜HÓ%ˆØ—‘˜FÓ#ˆØ—‘˜JÓ'ˆØ—‘˜FÓ#ˆØ—‘˜FÓ#ˆØ—‘˜FÓ#ˆØ�RŠ<ØˆFô .9÷
ð 
á)�˜ 	Ø˜Ñ Ø˜UÒ" i°5Ò&8¸UÐ=Nñ �f˜f f¨f°fÕ=ð
ˆò 
ñ ØŸ	™	ó "<Ü/:ô"<ó <ˆIð —:‘:×#Ñ#áð !  ¨5°°¸ÀiÀ[ÐPQÑRØ"Hóð ˆCñ
 Ü�J‰J×Ñ˜TŸZ™Z×1Ñ1Ð4EÀhÀ\ÐQ^Ð_eÐ^hÐhkÐ2lÓmÔnàò 	,ˆFÜ�J‰J×Ñ ˜x r˜]Õ+ñ	,ùô'
s   Â2'F)Ú__name__Ú
__module__Ú__qualname__rJ   rC   r   r(   Ú__annotations__Úcan_import_settingsrQ   ro   rj   Ú__classcell__)r\   s   @r   rB   rB   V   s,   ø… Ø>€DØ(*Ð˜D ™IÓ*ØÐô
ò:-ö"%,r   rB   )Ú__doc__rg   rd   Útypingr   Údjango.confr   Údjango.core.management.baser   r   Údjango.core.management.colorr   Ú	django.dbr   Údjango_extensions.settingsr	   r
   r   Ú#django_extensions.utils.deprecationr   r   r   r   r"   r$   r-   r7   rV   rB   r   r   r   ú<module>r‘      sî   ðñó Û Ý å  ß AÝ 4Ý &ß XÑ XÝ KòòòòòòNòð �T˜<Ð(Ø�Z Ð.Ø�U™D ›NÐ+Ø�D˜/Ð*Ø�J Ð0Ø�F˜KÐ(Ø�E™4 ›=Ð)Ø˜Ð3Ð4Ø˜Ð%9Ð:Ø˜Ð#5Ð6Ø˜¡ \Ó 2Ð3Ø˜Ð#5Ð6ð€ô X,ˆkõ X,r   