ó
    øÞ jø  ã                  óÌ   • S r SSKJr  SSKJr  SSKJr  SSKrSSKrSSKrSSK	J
r
  SSKrSSKrSSKrSSKrSSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr   " S S5      rg)z�support routines for the helpers in tools/.

These aren't imported by the enclosing util package as the are not
needed for normal library use.

é    )Úannotations)ÚArgumentParser)Ú	NamespaceN)ÚPath)ÚAny)ÚDict)ÚIterator)ÚOptional)ÚUnioné   )Úcompatc                  ó"  • \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   S	\S'   SS jrSS jrSS jrSS jrSS jr	      SS jr
      SS jrSSS.       SS jjr\R                  S S j5       r\R                  S!S j5       rSrg)"Úcode_writer_cmdé$   r   Úparserr   ÚargsÚboolÚsuppress_outputÚdiffs_detectedr   Úsource_rootÚpyproject_toml_pathc                óT  • [        U5      R                  R                  U l        U R                  [        S5      -  U l        U R                  R	                  5       (       d   e[        5       U l        U R                  R                  SSSS9  U R                  R                  SSSSS	9  g )
Nzpyproject.tomlz--stdoutÚ
store_truez)Write to stdout instead of saving to file)ÚactionÚhelpú-cz--checkz‘Don't write the files back, just return the status. Return code 0 means nothing would change. Return code 1 means some files would be reformatted)r   r   )r   Úparentr   r   Úexistsr   r   Úadd_argument)ÚselfÚtool_scripts     ÚV/var/www/html/gaurav/venv/lib/python3.13/site-packages/sqlalchemy/util/tool_support.pyÚ__init__Úcode_writer_cmd.__init__,   s£   € Ü Ó,×3Ñ3×:Ñ:ˆÔØ#'×#3Ñ#3´dÐ;KÓ6LÑ#LˆÔ Ø×'Ñ'×.Ñ.×0Ñ0Ð0Ð0ä$Ó&ˆŒØ�‰× Ñ ØØØ<ð 	!ñ 	
ð
 	�‰× Ñ ØØðBð  ð 	!ò 	
ó    c                óZ   • U R                  [        U5      SSU R                   3S.5        g )NÚzimportsz--toml-config ©Ú
entrypointÚoptions©Ú_run_console_scriptÚstrr   ©r    Útempfiles     r"   Úrun_zimportsÚcode_writer_cmd.run_zimports@   s0   € Ø× Ñ Ü�‹Mà(Ø+¨D×,DÑ,DÐ+EÐFñõ	
r%   c                óZ   • U R                  [        U5      SSU R                   3S.5        g )NÚblackz	--config r(   r+   r.   s     r"   Ú	run_blackÚcode_writer_cmd.run_blackI   s0   € Ø× Ñ Ü�‹Mà%Ø& t×'?Ñ'?Ð&@ÐAñõ	
r%   c                ó2  • [         R                  S:H  nUS   n[        R                  " S5       H  nUR                  U:X  d  M  Un  O   [	        SU 35      eUR                  SS5      n[        R                  " XsS9U/-   n0 n	U R                  (       a  [        R                  =U	S'   U	S	'   [        R                  " [        R                  S
SUR                  < SUR                  < SUR                  < S3/U-   4S[!        U R"                  5      0U	D6  g)zURun a Python console application from within the process.

Used for black, zimports

Úposixr)   Úconsole_scriptsz*Could not find entrypoint console_scripts.r*   Ú )r7   ÚstdoutÚstderrr   zimport z; Ú.z()ÚcwdN)ÚosÚnamer   Úimportlib_metadata_getÚ	ExceptionÚgetÚshlexÚsplitr   Ú
subprocessÚDEVNULLÚrunÚsysÚ
executableÚmoduleÚattrr-   r   )
r    Úpathr*   Úis_posixÚentrypoint_nameÚentryÚimplÚcmdline_options_strÚcmdline_options_listÚkws
             r"   r,   Ú#code_writer_cmd._run_console_scriptR   s  € ô —7‘7˜gÑ%ˆà! ,Ñ/ˆä×2Ò2Ð3DÖEˆEØ�z‰z˜_Õ,Ø�Ùñ Fô
 Ø<¸_Ð<MÐNóð ð &Ÿk™k¨)°RÓ8ÐÜ$Ÿ{š{Øñ 
àˆFñ Ðð  ˆØ××Ü*4×*<Ñ*<Ð<ˆBˆx‰L˜2˜h™<ä�Šä—‘ÙØ(,¯¬°T·[´[À$Ç)Ä)ÐLðð
 #ñ#ñ		
ô �D×$Ñ$Ó%ð		
ð ó		
r%   c                ó„   • U R                   (       d/  [        R                  R                  SR	                  U5      5        g g )NÚ )r   rH   r;   ÚwriteÚjoin)r    Útexts     r"   Úwrite_statusÚcode_writer_cmd.write_statusy   s*   € Ø×#×#Ü�J‰J×Ñ˜SŸX™X d›^Õ,ð $r%   c                ó(  • U R                   R                  (       a  U R                  X!S9  g U R                   R                  (       a  [	        U5        g U R                  SU S35        [        U5      R                  USSS9  U R                  S5        g )N)ÚsourceúWriting ú...úutf-8Ú
)ÚencodingÚnewlineúdone
)r   ÚcheckÚ	_run_diffr:   ÚprintrZ   r   Ú
write_text)r    rY   Údestination_paths      r"   Úwrite_output_file_from_textÚ+code_writer_cmd.write_output_file_from_text}   s{   € ð �9‰9�?�?Ø�N‰NÐ+ˆNÒ9Ø�Y‰Y××Ü�$�Kà×Ñ Ð)9Ð(:¸#Ð>Ô?ÜÐ!Ó"×-Ñ-Ø˜w°ð .ñ ð ×Ñ˜hÕ'r%   c                óÞ  • U R                   R                  (       a&  U R                  X!S9  [        R                  " U5        g U R                   R
                  (       aD  [        U5       n[        UR                  5       5        S S S 5        [        R                  " U5        g U R                  SU S35        [        R                  " X5        U R                  S5        g ! , (       d  f       Nb= f)N)Úsource_filer^   r_   rd   )r   re   rf   r>   Úunlinkr:   Úopenrg   ÚreadrZ   ÚshutilÚmove)r    r/   ri   Útfs       r"   Úwrite_output_file_from_tempfileÚ/code_writer_cmd.write_output_file_from_tempfile‹   sš   € ð �9‰9�?�?Ø�N‰NÐ+ˆNÑBÜ�IŠI�hÕØ�Y‰Y××Ü�h” 2Ü�b—g‘g“iÔ ÷  ä�IŠI�hÕà×Ñ Ð)9Ð(:¸#Ð>Ô?Ü�KŠK˜Ô3Ø×Ñ˜hÕ'÷  •ús   Á(CÃ
C,N)r]   rm   c          
     óÆ  • U(       a  [        USS9 n[        U5      nS S S 5        OUb  UR                  SS9nO S5       e[        USS9 n[        R                  " [        U5      W[        U5      R                  5       SSSS	9n[        U5      nU(       a!  SU l        [        S
R                  U5      5        S S S 5        g ! , (       d  f       NŽ= f! , (       d  f       g = f)Nr`   )rb   T)Úkeependsz!source or source_file is requiredz<proposed changes>é   ra   )ÚfromfileÚtofileÚnÚlinetermr9   )
ro   ÚlistÚ
splitlinesÚdifflibÚunified_diffr   Úas_posixr   rg   rX   )	r    ri   r]   rm   rs   Úsource_linesÚdpÚdÚ	d_as_lists	            r"   rf   Úcode_writer_cmd._run_diffš   sË   € ö Ü�k¨GÒ4¸Ü# B›x�÷ 5Ð4àÑØ!×,Ñ,°dÐ,Ð;‰Là=Ð=Ó=�5äÐ"¨WÒ5¸Ü×$Ò$Ü�R“ØÜÐ.Ó/×8Ñ8Ó:Ø+ØØñˆAô ˜Q›ˆIÞØ&*�Ô#Ü�b—g‘g˜iÓ(Ô)÷ 6Ð5÷ 5Õ4ú÷ 6Õ5ús   ’CÁA-CÃ
CÃ
C c              #  ó(   #   • U R                   v •  g 7f)N)r   ©r    s    r"   Úadd_argumentsÚcode_writer_cmd.add_arguments·   s   é € à�k‰kÓùs   ‚c              #  ó¬  #   • U R                   R                  5       U l        U R                  R                  (       a  SU l        SU l        O*U R                  R                  (       a  SU l        OSU l        S v •  U R                  R                  (       a(  U R                  (       a  [        R                  " S5        g [        R                  " S5        g 7f)NFTr   r   )	r   Ú
parse_argsr   re   r   r   r:   rH   Úexitrˆ   s    r"   Úrun_programÚcode_writer_cmd.run_program»   s}   é € à—K‘K×*Ñ*Ó,ˆŒ	Ø�9‰9�?�?Ø"'ˆDÔØ#'ˆDÕ Ø�Y‰Y××Ø#'ˆDÕ à#(ˆDÔ Ûà�9‰9�?�?˜t×2×2Ü�HŠH�Q�Kä�HŠH�Q�Kùs   ‚CC)r   r   r   r   r   r   )r!   r-   )r/   r-   ÚreturnÚNone)rL   r-   r*   zDict[str, Any]r�   r‘   )rY   r-   r�   r‘   )rY   r-   ri   úUnion[str, Path]r�   r‘   )r/   r-   ri   r-   r�   r‘   )ri   r’   r]   úOptional[str]rm   r“   r�   r‘   )r�   zIterator[ArgumentParser])r�   zIterator[None])Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__r#   r0   r4   r,   rZ   rj   rt   rf   Ú
contextlibÚcontextmanagerr‰   rŽ   Ú__static_attributes__© r%   r"   r   r   $   sà   ‡ ØÓØ
ƒOØÓØÓØÓØÓô
ô(
ô
ô%
ôN-ð(Øð(Ø+;ð(à	ô(ð(Øð(Ø/2ð(à	ô(ð& !%Ø%)ñ*à*ð*ð ð	*ð
 #ð*ð 
õ*ð: ×Ñóó ðð ×Ñóó ór%   r   )Ú__doc__Ú
__future__r   Úargparser   r   r™   r   r>   Úpathlibr   rC   rq   rE   rH   Útypingr   r   r	   r
   r   r9   r   r   rœ   r%   r"   Ú<module>r¢      sK   ðñõ #å #Ý Û Û Û 	Ý Û Û Û Û 
Ý Ý Ý Ý Ý å ÷fò fr%   