
kR\                 @   s   d  Z  d d l Z d d l Z d d l m Z d d l m Z m Z d d l Z d d l	 m
 Z
 d d l m Z d d   Z d	 d
   Z d d d  Z d S)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)open	getreader)PY2)SQLParseErrorc              C   sf  d d d g }  t  j d d d d d d	  } | j d
  | j d d d d d d d d | j d d d d t j | j d  } | j d d d d d d d |  d d j d j d d   |  D   | j d  d! d d d d" d |  d d# j d j d$ d   |  D   | j d% d& d d' d d( d d) d* g d d+ | j d, d d- d d. d/ d0 d d1 | j d2 d3 d d4 d d. d/ d0 d d5 | j d6 d d7 d/ d8 d9 t d d: | j d; d< d d. d/ d0 d d= | j d> d? d d. d/ d0 d d@ | j dA d dB d/ dC d9 t d dD | j dE d dF d/ d0 d9 t	 d dG | j dH d dI d/ dJ d dK | S)LNupperlower
capitalizeprogZ	sqlformatdescriptionzEFormat FILE according to OPTIONS. Use "-" as FILE to read from stdin.usagez%(prog)s  [OPTIONS] FILE, ...filenamez-oz	--outfiledestoutfilemetavarFILEhelpz)write output to FILE (defaults to stdout)z	--versionactionversionzFormatting Optionsz-kz
--keywordsZCHOICEZkeyword_casechoicesz-change case of keywords, CHOICE is one of {0}z, c             s   s   |  ] } d  j  |  Vq d S)z"{0}"N)format).0x r   4/var/www/dbchiro/venv/build/sqlparse/sqlparse/cli.py	<genexpr>A   s    z create_parser.<locals>.<genexpr>z-iz--identifiersZidentifier_casez0change case of identifiers, CHOICE is one of {0}c             s   s   |  ] } d  j  |  Vq d S)z"{0}"N)r   )r   r   r   r   r   r   I   s    z-lz
--languageLANGZoutput_formatpythonZphpzJoutput a snippet in programming language LANG, choices are "python", "php"z--strip-commentsstrip_comments
store_truedefaultFzremove commentsz-rz
--reindentZreindentzreindent statementsz--indent_widthZindent_width   typez(indentation width (defaults to 2 spaces)z-az--reindent_alignedz%reindent statements to aligned formatz-sz--use_space_around_operatorsz*place spaces around mathematical operatorsz--wrap_afterZ
wrap_afterr   z*Column after which lists should be wrappedz--comma_firstZcomma_firstz-Insert linebreak before comma (default False)z
--encodingencodingzutf-8z*Specify the input encoding (default utf-8))
argparseArgumentParseradd_argumentsqlparse__version__add_argument_groupr   joinintbool)Z_CASE_CHOICESparsergroupr   r   r   create_parser"   s    			
	 	 				r/   c             C   s   t  j j d j |    d S)z5Print msg and optionally exit with return code exit_.z[ERROR] {0}
   )sysstderrwriter   )msgr   r   r   _error   s    r5   c       	   -   C   s  t    } | j |   }  |  j d k rr t rN t |  j  t j  j   } q t	 t j j
 d |  j j   } n{ y: t |  j d |  j   } d j | j    } Wd  QXWn> t k
 r } z t d j |  j |   SWYd  d  } ~ Xn Xd } |  j rby" t |  j d |  j  } d } Wqkt k
 r^} z t d	 j |  j |   SWYd  d  } ~ XqkXn	 t j } t |   } y t j j |  } Wn8 t k
 r} z t d
 j |   SWYd  d  } ~ Xn Xt j | |  } | j |  | j   | r| j   n  d S)N-r#   r zFailed to read {0}: {1}FwTzFailed to open {0}: {1}zInvalid options: {0}r   )r/   
parse_argsr   r   r   r#   r1   stdinreadr   bufferr   r*   	readlinesIOErrorr5   r   r   stdoutvarsr'   	formatterZvalidate_optionsr   r3   flushclose)	argsr-   datafeZclose_streamstreamZformatter_optssr   r   r   main   s@    	!!)	
/	&
rK   )__doc__r$   r1   ior   codecsr   r   r'   Zsqlparse.compatr   Zsqlparse.exceptionsr   r/   r5   rK   r   r   r   r   <module>   s   i