L idZddlmZddlmZddlmZddlZddlZddlZddl m Z ddl Z ddl Z ddl Z ddlZddlmZddlmZdd lmZdd lmZdd lmZd d lmZGddZy)zsupport 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)compatceZdZUded<ded<ded<ded<ded <ded <dd Zdd Zdd ZddZddZ ddZ ddZ ddd ddZ e jddZe jddZy) code_writer_cmdrparserrargsboolsuppress_outputdiffs_detectedr source_rootpyproject_toml_pathcVt|jj|_|jtdz |_|jj sJt |_|j jddd|j jdddd y) Nzpyproject.tomlz--stdout store_truez)Write to stdout instead of saving to file)actionhelp-cz--checkzDon'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)rr)rparentrrexistsrr add_argument)self tool_scripts b/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sqlalchemy/util/tool_support.py__init__zcode_writer_cmd.__init__+s ,33::#'#3#3d;K6L#L ''..000$&    < !    B ! cZ|jt|dd|jdy)Nzimportsz--toml-config  entrypointoptions_run_console_scriptstrrrtempfiles r! run_zimportszcode_writer_cmd.run_zimports?s0   M(+D,D,D+EF  r#cZ|jt|dd|jdy)Nblackz --config r&r)r,s r! run_blackzcode_writer_cmd.run_blackHs0   M%&t'?'?&@A  r#c tjdk(}|d}tjdD]}|j|k(s|}nt d||j dd}t j|||gz}i} |jrtjx| d<| d <tjtjd d |jd |jd |jdg|zfdt!|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()r3stdoutstderrrzimport z; .z()cwdN)osnamer importlib_metadata_get Exceptiongetshlexsplitr subprocessDEVNULLrunsys executablemoduleattrr+r) rpathr(is_posixentrypoint_nameentryimplcmdline_options_strcmdline_options_listkws r!r*z#code_writer_cmd._run_console_scriptQs77g%!,/223DE Ezz_,  <_ ? ! " - -w .    h 'r#c|jjr)|j||tj|y|jj rCt |5}t|jdddtj|y|jd|dtj|||jdy#1swY\xYw)N) source_filerXrYr^) rr_r`r:unlinkr6openrareadrUshutilmove)rr-rctfs r!write_output_file_from_tempfilez/code_writer_cmd.write_output_file_from_tempfiles 99?? NN+N B IIh  YY  h !2bggi  ! IIh    )9(:#> ? KK"2 3   h '  ! !s !CCN)rWrfc |r"t|d5}t|}dddn||jd}nJdt|d5}tjt|t |j ddd }t|}|r!d|_td j|dddy#1swYxYw#1swYyxYw) NrZ)r\T)keependsz!source or source_file is requiredzr[)fromfiletofilenlinetermr5) rhlist splitlinesdifflib unified_diffras_posixrrarS) rrcrWrfrl source_linesdpd d_as_lists r!r`zcode_writer_cmd._run_diffs kG4 (#Bx  ( (  !,,d,;L == =5 "W 5 *$$R./88:+ AQI&*#bggi() * * ( ( * *s CA*C C  Cc#(K|jyw)N)rrs r! add_argumentszcode_writer_cmd.add_argumentsskksc#K|jj|_|jjrd|_d|_n%|jj rd|_nd|_d|jjr"|jrtjdytjdyw)NFTr r) r parse_argsrr_rrr6rDexitrs r! run_programzcode_writer_cmd.run_programs~KK**, 99??"'D #'D YY  #'D #(D  99??t22 HHQK HHQKsB)r r+)r-r+returnNone)rHr+r(zDict[str, Any]rr)rTr+rr)rTr+rcUnion[str, Path]rr)r-r+rcr+rr)rcrrW Optional[str]rfrrr)rzIterator[ArgumentParser])rzIterator[None])__name__ __module__ __qualname____annotations__r"r.r1r*rUrdrmr` contextlibcontextmanagerrrr#r!rr#s  O (  % N- ( (+; (  ( ( (/2 (  (&!%%) *** * # *  *:r#r)__doc__ __future__rargparserrrrwr:pathlibrr?rjrArDtypingrrr r r r5r rrr#r!rsK ##   ffr#