§
    eŠtjø  ã                  óÔ   — 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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)Ú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dS )0Ú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     úZ/var/www/html/CA-Chatbot/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_blackI   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,   Ú )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!   r4   r,   Úis_posixÚentrypoint_nameÚentryÚimplÚcmdline_options_strÚcmdline_options_listÚkws
             r"   r.   z#code_writer_cmd._run_console_scriptR   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   rH   r;   ÚwriteÚjoin)r!   rS   s     r"   Úwrite_statuszcode_writer_cmd.write_statusy   s=   € ØÔ#ð 	-ÝŒJ×Ò˜SŸXšX d™^œ^Ñ,Ô,Ð,Ð,Ð,ð	-ð 	-r$   Údestination_pathúUnion[str, Path]c                ó0  — | j         j        r|                      ||¬¦  «         d S | j         j        rt	          |¦  «         d S |                      d|› d�¦  «         t          |¦  «                             |dd¬¦  «         |                      d¦  «         d S )N)ÚsourceúWriting ú...úutf-8ú
)ÚencodingÚnewlineúdone
)r   ÚcheckÚ	_run_diffr:   ÚprintrX   r   Ú
write_text)r!   rS   rY   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Ð>Ð>Ð>Ñ?Ô?Ð?ÝÐ!Ñ"Ô"×-Ò-Ø˜w°ð .ñ ô ð ð ×Ò˜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^   rc   )r   rd   re   r>   Úunlinkr:   Úopenrf   ÚreadrX   ÚshutilÚmove)r!   r%   rY   Ú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)r\   rj   r\   úOptional[str]rj   c          	     ó  — |r9t          |d¬¦  «        5 }t          |¦  «        }d d d ¦  «         n# 1 swxY w Y   n#|�|                     d¬¦  «        }n
J d¦   «         ‚t          |d¬¦  «        5 }t          j        t          |¦  «        |t          |¦  «                             ¦   «         ddd	¬
¦  «        }t          |¦  «        }|r)d| _        t          d 	                    |¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr_   )ra   T)ÚkeependsFz!source or source_file is requiredz<proposed changes>é   r`   )ÚfromfileÚtofileÚnÚlinetermr9   )
rl   ÚlistÚ
splitlinesÚdifflibÚunified_diffr   Úas_posixr   rf   rW   )	r!   rY   r\   rj   rp   Úsource_linesÚdpÚdÚ	d_as_lists	            r"   re   zcode_writer_cmd._run_diffš   s™  € ð ð 	>Ý�k¨GÐ4Ñ4Ô4ð (¸Ý# B™xœx�ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (øàÐØ!×,Ò,°dÐ,Ñ;Ô;ˆLˆLà=Ð=Ñ=Ô=�5åÐ"¨WÐ5Ñ5Ô5ð 	*¸ÝÔ$Ý�R‘”ØÝÐ.Ñ/Ô/×8Ò8Ñ:Ô:Ø+ØØðñ ô ˆAõ ˜Q™œˆIØð *Ø&*�Ô#Ý�b—g’g˜iÑ(Ô(Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s   ”0°4·4Á0BC>Ã>DÄDú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   rd   r   r   r:   rH   Ú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'   )r4   r   r,   r5   r&   r'   )rS   r   r&   r'   )rS   r   rY   rZ   r&   r'   )r%   r   rY   r   r&   r'   )rY   rZ   r\   rr   rj   rr   r&   r'   )r&   rƒ   )r&   r‡   )Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r#   r0   r3   r.   rX   rh   rq   re   Ú
contextlibÚcontextmanagerr†   r‹   © r$   r"   r   r   $   sV  € € € € € € ØÐÐÑØ€O€O�OØÐÐÑØÐÐÑØÐÐÑØÐÐÑð
ð 
ð 
ð 
ð(
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð%
ð %
ð %
ð %
ðN-ð -ð -ð -ð(ð (ð (ð (ð(ð (ð (ð (ð& !%Ø%)ð*ð *ð *ð *ð *ð *ð: Ôðð ð ñ Ôðð Ôðð ð ñ Ôðð ð r$   r   )Ú__doc__Ú
__future__r   Úargparser   r   r�   r|   r>   Úpathlibr   rC   rn   rE   rH   Útypingr   r   r	   r
   r   r9   r   r   r’   r$   r"   ú<module>r˜      sF  ððð ð #Ð "Ð "Ð "Ð "Ð "à #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð ðfð fð fð fð fñ fô fð fð fð fr$   