
    +hP                     L    d Z ddlZddlZddlmZ ddlZddlmZ d Zd Z	ddZ
y)	ae  Module that contains the command line app.

Why does this file exist, and why not put this in __main__?
  You might be tempted to import things from __main__ later, but that will
  cause problems: the code will get executed twice:
  - When you run `python -m sqlparse` python will execute
    ``__main__.py`` as a script. That means there won't be any
    ``sqlparse.__main__`` in ``sys.modules``.
  - When you import __main__ it will get executed again (as a module) because
    there's no ``sqlparse.__main__`` in ``sys.modules``.
  Also see (1) from http://click.pocoo.org/5/setuptools/#setuptools-integration
    N)TextIOWrapper)SQLParseErrorc                     g d} t        j                  ddd      }|j                  d       |j                  ddd	d
d       |j                  ddt        j                         |j                  d      }|j                  dddd| dj                  dj                  d | D                           |j                  dddd| dj                  dj                  d | D                           |j                  ddd d!d"d#gd$       |j                  d%d&d'd(d)*       |j                  d+d,d-d'd(d.*       |j                  d/d0d1t        d23       |j                  d4d5d'd(d6*       |j                  d7d8d'd(d9*       |j                  d:d;d'd(d<=       |j                  d>d?d'd(d@=       |j                  dAdBdCt        dD3       |j                  dEdFd(t        dG3       |j                  dHdIdJdKL       |S )MN)upperlower
capitalize	sqlformatzEFormat FILE according to OPTIONS. Use "-" as FILE to read from stdin.z%(prog)s  [OPTIONS] FILE, ...)progdescriptionusagefilenamez-oz	--outfileoutfileFILEz)write output to FILE (defaults to stdout))destmetavarhelpz	--versionversion)actionr   zFormatting Optionsz-kz
--keywordsCHOICEkeyword_casez,change case of keywords, CHOICE is one of {}z, c              3   >   K   | ]  }d j                  |        ywz"{}"Nformat.0xs     ?/var/www/html/venv/lib/python3.12/site-packages/sqlparse/cli.py	<genexpr>z create_parser.<locals>.<genexpr>?        >1fmmA&>   )r   r   choicesr   z-iz--identifiersidentifier_casez/change case of identifiers, CHOICE is one of {}c              3   >   K   | ]  }d j                  |        ywr   r   r   s     r   r   z create_parser.<locals>.<genexpr>G   r    r!   z-lz
--languageLANGoutput_formatpythonphpzJoutput a snippet in programming language LANG, choices are "python", "php"z--strip-commentsstrip_comments
store_trueFzremove comments)r   r   defaultr   z-rz
--reindentreindentzreindent statementsz--indent_widthindent_width   z(indentation width (defaults to 2 spaces))r   r+   typer   z--indent_after_firstindent_after_firstz2indent after first line of statement (e.g. SELECT)z--indent_columnsindent_columnsz<indent all columns by indent_width instead of keyword lengthz-az--reindent_alignedz%reindent statements to aligned format)r   r+   r   z-sz--use_space_around_operatorsz*place spaces around mathematical operatorsz--wrap_after
wrap_afterr   z*Column after which lists should be wrappedz--comma_firstcomma_firstz-Insert linebreak before comma (default False)z
--encodingencodingzutf-8z*Specify the input encoding (default utf-8))r   r+   r   )
argparseArgumentParseradd_argumentsqlparse__version__add_argument_groupr   joinintbool)_CASE_CHOICESparsergroups      r   create_parserrA       s   4M$$*-	F 
#
k8	  : $$  &
 %%&:;E	l;BBII>>>@  A 
o>EEII>>>@  A 
l5!+  , 
    
l"  $ 
7  9 
!A  C 
K  M 
"4	  6 
,9	  ; 
9  ; 
<  > 
9	  ; M    c                 `    t         j                  j                  dj                  |              y)z5Print msg and optionally exit with return code exit_.z[ERROR] {}
   )sysstderrwriter   )msgs    r   _errorrI      s"    JJ^**3/0rB   c                    t               }|j                  |       } | j                  dk(  rQt        t        j
                  j                  | j                        }	 |j                         }|j                          nJ	 t        | j                  | j                        5 }dj                  |j                               }d d d        d}| j                   r&	 t        | j                   d| j                        }d}nt        j"                  }t%        |       }	 t&        j(                  j+                  |      }t'        j                  fi |}	|j/                  |	       |j1                          |r|j3                          y
# |j                          w xY w# 1 sw Y   xY w# t        $ r/}t        dj                  | j                  |            cY d }~S d }~ww xY w# t        $ r/}t        dj                  | j                   |            cY d }~S d }~ww xY w# t,        $ r$}t        d	j                  |            cY d }~S d }~ww xY w)N-)r4    zFailed to read {}: {}FwTzFailed to open {}: {}zInvalid options: {}r   )rA   
parse_argsr   r   rE   stdinbufferr4   readdetachopenr;   	readlinesOSErrorrI   r   r   stdoutvarsr8   	formattervalidate_optionsr   rG   flushclose)
argsr?   wrapperdatafeclose_streamstreamformatter_optsss
             r   mainre      s   _FT"D}}		 0 04==I	<<>DNN	Bdmmdmm< .wwq{{}-. L||	K$,,dmmDFL $ZN7!++<<^L 	//A
LLO
LLN= NN. . 	B'..t}}a@B B	B  	K188qIJJ	K  7+2215667s~   E? =!F   F>F  $G H ?FFF   	G)$GGG	H$$HHH	IH>8I>I)N)__doc__r5   rE   ior   r8   sqlparse.exceptionsr   rA   rI   re    rB   r   <module>rj      s,     
   -
tn'rB   