Ë
    V.jÀ  ã                  óÌ   — d Z ddlmZ ddlmZ ddlmZ ddlZddlZddlZddl	m
Z
 ddlZddlZddlZddlZddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ  G d„ d«      Zy)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                  ó  — e Zd ZU ded<   ded<   ded<   ded<   ded	<   ded
<   dd„Zdd„Zdd„Zdd„Zdd„Z	 	 	 	 	 	 dd„Z		 	 	 	 	 	 dd„Z
dddœ	 	 	 	 	 	 	 dd„Zej                  dd„«       Zej                  dd„«       Zy) Úcode_writer_cmdr   Úparserr   ÚargsÚboolÚsuppress_outputÚdiffs_detectedr   Úsource_rootÚpyproject_toml_pathc                óV  — t        |«      j                  j                  | _        | j                  t        d«      z  | _        | j                  j	                  «       sJ ‚t        «       | _        | j                  j                  ddd¬«       | j                  j                  dddd¬	«       y )
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     ú^C:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\sqlalchemy/util/tool_support.pyÚ__init__zcode_writer_cmd.__init__+   s    € Ü Ó,×3Ñ3×:Ñ:ˆÔØ#'×#3Ñ#3´dÐ;KÓ6LÑ#LˆÔ Ø×'Ñ'×.Ñ.Ô0Ð0Ð0ä$Ó&ˆŒØ�‰× Ñ ØØØ<ð 	!ô 	
ð
 	�‰× Ñ ØØðBð  ð 	!õ 	
ó    c                óZ   — | j                  t        |«      dd| j                  › �dœ«       y )NÚzimportsz--toml-config ©Ú
entrypointÚoptions©Ú_run_console_scriptÚstrr   ©r   Útempfiles     r!   Úrun_zimportszcode_writer_cmd.run_zimports?   s0   € Ø× Ñ Ü�‹Mà(Ø+¨D×,DÑ,DÐ+EÐFñõ	
r#   c                óZ   — | j                  t        |«      dd| j                  › �dœ«       y )NÚblackz	--config r&   r)   r,   s     r!   Ú	run_blackzcode_writer_cmd.run_blackH   s0   € Ø× Ñ Ü�‹Mà%Ø& t×'?Ñ'?Ð&@ÐAñõ	
r#   c                ó  — t         j                  dk(  }|d   }t        j                  d«      D ]  }|j                  |k(  sŒ|} n t	        d|› �«      ‚|j                  dd«      }t        j                  ||¬«      |gz   }i }	| j                  rt        j                  x|	d<   |	d	<   t        j                  t        j                  d
d|j                  ›d|j                  ›d|j                  ›d�g|z   fdt!        | j"                  «      i|	¤Ž y)zeRun a Python console application from within the process.

        Used for black, zimports

        Úposixr'   Úconsole_scriptsz*Could not find entrypoint console_scripts.r(   Ú )r3   Ú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*   z#code_writer_cmd._run_console_scriptQ   s  € ô —7‘7˜gÑ%ˆà! ,Ñ/ˆä×2Ñ2Ð3DÖEˆEØ�z‰z˜_Ó,Ø�Ùð Fô
 Ø<¸_Ð<MÐNóð ð &Ÿk™k¨)°RÓ8ÐÜ$Ÿ{™{Ø xô 
àˆFñ Ðð  ˆØ×ÒÜ*4×*<Ñ*<Ð<ˆBˆx‰L˜2˜h™<ä�‰ä—‘ÙØ(,¯«°T·[³[À$Ç)Ã)ÐLðð
 #ñ#ñ		
ô �D×$Ñ$Ó%ð		
ð ó		
r#   c                óz   — | j                   s/t        j                  j                  dj	                  |«      «       y y )NÚ )r   rD   r7   ÚwriteÚjoin)r   Útexts     r!   Úwrite_statuszcode_writer_cmd.write_statusx   s*   € Ø×#Ò#Ü�J‰J×Ñ˜SŸX™X d›^Õ,ð $r#   c                ó"  — | j                   j                  r| j                  ||¬«       y | j                   j                  rt	        |«       y | j                  d|› d�«       t        |«      j                  |dd¬«       | j                  d«       y )N)ÚsourceúWriting ú...úutf-8Ú
)ÚencodingÚnewlineúdone
)r   ÚcheckÚ	_run_diffr6   ÚprintrU   r   Ú
write_text)r   rT   Údestination_paths      r!   Úwrite_output_file_from_textz+code_writer_cmd.write_output_file_from_text|   s}   € ð �9‰9�?Š?Ø�N‰NÐ+°DˆNÕ9Ø�Y‰Y×ÒÜ�$�Kà×Ñ Ð)9Ð(:¸#Ð>Ô?ÜÐ!Ó"×-Ñ-Ø˜w°ð .ô ð ×Ñ˜hÕ'r#   c                óÄ  — | j                   j                  r)| j                  ||¬«       t        j                  |«       y | j                   j
                  rCt        |«      5 }t        |j                  «       «       d d d «       t        j                  |«       y | j                  d|› d�«       t        j                  ||«       | j                  d«       y # 1 sw Y   Œ\xY w)N)Úsource_filerX   rY   r^   )r   r_   r`   r:   Úunlinkr6   Úopenra   ÚreadrU   ÚshutilÚmove)r   r-   rc   Útfs       r!   Úwrite_output_file_from_tempfilez/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˜Ð"2Ô3Ø×Ñ˜hÕ'÷  �ús   Á!CÃCN)rW   rf   c          	     ó²  — |r"t        |d¬«      5 }t        |«      }d d d «       n|�|j                  d¬«      }nJ d«       ‚t        |d¬«      5 }t        j                  t        |«      t        |«      j                  «       ddd¬	«      }t        |«      }|r!d| _        t        d
j                  |«      «       d d d «       y # 1 sw Y   Œ‰xY w# 1 sw Y   y xY w)NrZ   )r\   T)Úkeependsz!source or source_file is requiredz<proposed changes>é   r[   )ÚfromfileÚtofileÚnÚlinetermr5   )
rh   ÚlistÚ
splitlinesÚdifflibÚunified_diffr   Úas_posixr   ra   rS   )	r   rc   rW   rf   rl   Úsource_linesÚdpÚdÚ	d_as_lists	            r!   r`   z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              #  ó(   K  — | j                   –— y ­w)N)r   ©r   s    r!   Úadd_argumentszcode_writer_cmd.add_arguments¶   s   è ø€ à�k‰kÓùs   ‚c              #  ó€  K  — | j                   j                  «       | _        | j                  j                  rd| _        d| _        n%| j                  j                  rd| _        nd| _        d –— | j                  j                  r"| j                  rt        j                  d«       y t        j                  d«       y ­w)NFTr   r   )	r   Ú
parse_argsr   r_   r   r   r6   rD   Úexitr   s    r!   Úrun_programz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   ‚B<B>)r    r+   )r-   r+   ÚreturnÚNone)rH   r+   r(   zDict[str, Any]r…   r†   )rT   r+   r…   r†   )rT   r+   rc   úUnion[str, Path]r…   r†   )r-   r+   rc   r+   r…   r†   )rc   r‡   rW   úOptional[str]rf   rˆ   r…   r†   )r…   zIterator[ArgumentParser])r…   zIterator[None])Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r"   r.   r1   r*   rU   rd   rm   r`   Ú
contextlibÚcontextmanagerr€   r„   © r#   r!   r   r   #   sà   … ØÓØ
ƒOØÓØÓØÓØÓó
ó(
ó
ó%
óN-ð(Øð(Ø+;ð(à	ó(ð(Øð(Ø/2ð(à	ó(ð& !%Ø%)ñ*à*ð*ð ð	*ð
 #ð*ð 
ó*ð: ×Ñòó ðð ×Ñòó ñr#   r   )Ú__doc__Ú
__future__r   Úargparser   r   r�   rw   r:   Úpathlibr   r?   rj   rA   rD   Útypingr   r   r	   r
   r   r5   r   r   r�   r#   r!   Ú<module>r•      sK   ðñõ #å #Ý Û Û Û 	Ý Û Û Û Û 
Ý Ý Ý Ý Ý å ÷fò fr#   