§
    
 @gQ  ã                  óÈ   — 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  G d„ d¦  «        ZdS )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é   )Ú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dS )/Úcode_writer_cmdr   Úparserr   ÚargsÚboolÚsuppress_outputÚdiffs_detectedr   Úsource_rootÚpyproject_toml_pathÚtool_scriptÚstrc                óL  — t          |¦  «        j        j        | _        | j        t          d¦  «        z  | _        | j                             ¦   «         sJ ‚t          ¦   «         | _        | j                             ddd¬¦  «         | j                             dddd¬	¦  «         d S )
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)Úselfr   s     úP/var/www/piapp/venv/lib/python3.11/site-packages/sqlalchemy/util/tool_support.pyÚ__init__zcode_writer_cmd.__init__*   s½   € Ý Ñ,Ô,Ô3Ô:ˆÔØ#'Ô#3µdÐ;KÑ6LÔ6LÑ#LˆÔ ØÔ'×.Ò.Ñ0Ô0Ð0Ð0Ð0å$Ñ&Ô&ˆŒØŒ× Ò ØØØ<ð 	!ñ 	
ô 	
ð 	
ð
 	Œ× Ò ØØðBð  ð 	!ñ 	
ô 	
ð 	
ð 	
ð 	
ó    ÚtempfileÚreturnÚNonec                ób   — |                       t          |¦  «        dd| j        › �dœ¦  «         d S )NÚzimportsz--toml-config ©Ú
entrypointÚoptions©Ú_run_console_scriptr   r   ©r    r$   s     r!   Úrun_zimportszcode_writer_cmd.run_zimports>   sH   € Ø× Ò Ý�‰MŒMà(ØF¨DÔ,DÐFÐFðð ñ	
ô 	
ð 	
ð 	
ð 	
r#   c                ób   — |                       t          |¦  «        dd| j        › �dœ¦  «         d S )NÚblackz	--config r)   r,   r.   s     r!   Ú	run_blackzcode_writer_cmd.run_blackG   sH   € Ø× Ò Ý�‰MŒMà%ØA tÔ'?ÐAÐAðð ñ	
ô 	
ð 	
ð 	
ð 	
r#   Úpathr+   úDict[str, Any]c                óÞ  — t           j        dk    }|d         }t          j        d¦  «        D ]}|j        |k    r|} nŒt	          d|› �¦  «        ‚|                     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|	¤Ž dS )zeRun a Python console application from within the process.

        Used for black, zimports

        Úposixr*   Úconsole_scriptsz*Could not find entrypoint console_scripts.r+   Ú )r6   Ú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    r3   r+   Úis_posixÚentrypoint_nameÚentryÚimplÚcmdline_options_strÚcmdline_options_listÚkws
             r!   r-   z#code_writer_cmd._run_console_scriptP   sJ  € õ ”7˜gÒ%ˆà! ,Ô/ˆåÔ2Ð3DÑEÔEð 	ð 	ˆEØŒz˜_Ò,Ð,Ø�Ø�ð -õ ØN¸_ÐNÐNñô ð ð &Ÿkšk¨)°RÑ8Ô8ÐÝ$œ{Ø xð 
ñ  
ô  
àˆFñ Ðð  ˆØÔð 	=Ý*4Ô*<Ð<ˆBˆx‰L˜2˜h™<åŒå”Ø�Ø(,¬¨¨°T´[°[°[À$Ä)À)À)ÐLðð
 #ñ#ð		
ð 		
õ �DÔ$Ñ%Ô%ð		
ð ð		
ð 		
ð 		
ð 		
ð 		
r#   Útextc                ó|   — | j         s4t          j                             d                     |¦  «        ¦  «         d S d S )Nú )r   rG   r:   ÚwriteÚjoin)r    rR   s     r!   Úwrite_statuszcode_writer_cmd.write_statusw   s=   € ØÔ#ð 	-ÝŒJ×Ò˜SŸXšX d™^œ^Ñ,Ô,Ð,Ð,Ð,ð	-ð 	-r#   Údestination_pathc                ó*  — | j         j        r|                      ||¬¦  «         d S | j         j        rt	          |¦  «         d S |                      d|› d�¦  «         t          |¦  «                             |¦  «         |                      d¦  «         d S )N)ÚsourceúWriting ú...údone
)r   ÚcheckÚ	_run_diffr9   ÚprintrW   r   Ú
write_text)r    rR   rX   s      r!   Úwrite_output_file_from_textz+code_writer_cmd.write_output_file_from_text{   s¡   € ð Œ9Œ?ð 	(Ø�NŠNÐ+°DˆNÑ9Ô9Ð9Ð9Ð9ØŒYÔð 	(Ý�$‰KŒKˆKˆKˆKà×ÒÐ>Ð)9Ð>Ð>Ð>Ñ?Ô?Ð?ÝÐ!Ñ"Ô"×-Ò-¨dÑ3Ô3Ð3Ø×Ò˜hÑ'Ô'Ð'Ð'Ð'r#   c                óÒ  — | j         j        r-|                      ||¬¦  «         t          j        |¦  «         d S | j         j        r^t          |¦  «        5 }t          |                     ¦   «         ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        |¦  «         d S |  	                    d|› d�¦  «         t          j        ||¦  «         |  	                    d¦  «         d S )N)Úsource_filer[   r\   r]   )r   r^   r_   r=   Úunlinkr9   Úopenr`   ÚreadrW   ÚshutilÚmove)r    r$   rX   Útfs       r!   Úwrite_output_file_from_tempfilez/code_writer_cmd.write_output_file_from_tempfile‡   s"  € ð Œ9Œ?ð 
	(Ø�NŠNÐ+¸ˆNÑBÔBÐBÝŒI�hÑÔÐÐÐØŒYÔð 	(Ý�h‘”ð ! 2Ý�b—g’g‘i”iÑ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !åŒI�hÑÔÐÐÐà×ÒÐ>Ð)9Ð>Ð>Ð>Ñ?Ô?Ð?ÝŒK˜Ð"2Ñ3Ô3Ð3Ø×Ò˜hÑ'Ô'Ð'Ð'Ð's   Á"BÂBÂ
BN)rZ   rd   rZ   úOptional[str]rd   c          	     óÐ  — |r7t          |¦  «        5 }t          |¦  «        }d d d ¦  «         n# 1 swxY w Y   n#|�|                     d¬¦  «        }n
J d¦   «         ‚t          |¦  «        5 }t          j        t          |¦  «        ||ddd¬¦  «        }t          |¦  «        }|r)d| _        t          d	                     |¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
NT)ÚkeependsFz!source or source_file is requiredz<proposed changes>é   ú
)ÚfromfileÚtofileÚnÚlinetermr8   )rf   ÚlistÚ
splitlinesÚdifflibÚunified_diffr   r`   rV   )	r    rX   rZ   rd   rj   Úsource_linesÚdpÚdÚ	d_as_lists	            r!   r_   zcode_writer_cmd._run_diff–   s{  € ð ð 	>Ý�kÑ"Ô"ð ( bÝ# B™xœx�ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (øàÐØ!×,Ò,°dÐ,Ñ;Ô;ˆLˆLà=Ð=Ñ=Ô=Ð=åÐ"Ñ#Ô#ð 	* rÝÔ$Ý�R‘”ØØ)Ø+ØØðñ ô ˆAõ ˜Q™œˆIØð *Ø&*�Ô#Ý�b—g’g˜iÑ(Ô(Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s   ’.®2µ2Á,A"CÃCÃ"CúIterator[ArgumentParser]c              #  ó   K  — | j         V — d S )N)r   ©r    s    r!   Úadd_argumentszcode_writer_cmd.add_arguments³   s   è è € àŒkÐÐÐÐÐr#   úIterator[None]c              #  ó4  K  — | j                              ¦   «         | _        | j        j        rd| _        d| _        n| j        j        rd| _        nd| _        d V — | j        j        r| j        rt          j        d¦  «         d S t          j        d¦  «         d S )NFTr   r   )	r   Ú
parse_argsr   r^   r   r   r9   rG   Úexitr   s    r!   Úrun_programzcode_writer_cmd.run_program·   s›   è è € à”K×*Ò*Ñ,Ô,ˆŒ	ØŒ9Œ?ð 	)Ø"'ˆDÔØ#'ˆDÔ Ð ØŒYÔð 	)Ø#'ˆDÔ Ð à#(ˆDÔ ØˆˆˆàŒ9Œ?ð 	˜tÔ2ð 	ÝŒH�Q‰KŒKˆKˆKˆKåŒH�Q‰KŒKˆKˆKˆKr#   )r   r   )r$   r   r%   r&   )r3   r   r+   r4   r%   r&   )rR   r   r%   r&   )rR   r   rX   r   r%   r&   )r$   r   rX   r   r%   r&   )rX   r   rZ   rl   rd   rl   r%   r&   )r%   r}   )r%   r�   )Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r"   r/   r2   r-   rW   rb   rk   r_   Ú
contextlibÚcontextmanagerr€   r…   © r#   r!   r   r   "   sV  € € € € € € ØÐÐÑØ€O€O�OØÐÐÑØÐÐÑØÐÐÑØÐÐÑð
ð 
ð 
ð 
ð(
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð%
ð %
ð %
ð %
ðN-ð -ð -ð -ð
(ð 
(ð 
(ð 
(ð(ð (ð (ð (ð& !%Ø%)ð*ð *ð *ð *ð *ð *ð: Ôðð ð ñ Ôðð Ôðð ð ñ Ôðð ð r#   r   )Ú__doc__Ú
__future__r   Úargparser   r   rŠ   rw   r=   Úpathlibr   rB   rh   rD   rG   Útypingr   r   r	   r
   r8   r   r   rŒ   r#   r!   ú<module>r’      s4  ððð ð #Ð "Ð "Ð "Ð "Ð "à #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð ðdð dð dð dð dñ dô dð dð dð dr#   