3
g                 @   s0   d Z ddlmZ ddlmZ dd Zdd ZdS )	zSQL formatter    )filters)SQLParseErrorc          $   C   s  | j d}|d6kr tdj|| j d}|d7kr@tdj|| j d	}|d8kr`tdj|| j dd}|d9krtdj|| j dd}|d:krtdj|| j dd}|d;krtdj|| j d}|dk	r@yt|}W n( ttfk
r   tdj|Y nX |dkr(tdj||| d< | j dd| d< | j dd}|d<krftdj|n|rtd| d< || d< | j dd}	|	d=krtdj|	n|	rd| d< | j dd}
|
d>krtd j|	n|
rd| d< | j d!d}|d?krtd"j||| d!< | j d#d}|d@kr6td$j|n|rFd%| d&< nd'| d&< | j d(d)}yt|}W n" ttfk
r   td*Y nX |dk rtd+|| d(< | j d,d-}yt|}W n" ttfk
r   td.Y nX |d-k rtd/|| d,< | j d0d}|dAkrtd1|| d0< | j d2}|dk	rvyt|}W n" ttfk
rb   td3Y nX |d4k rvtd5|| d2< | S )BzValidates options.keyword_caseNupperlower
capitalizez$Invalid value for keyword_case: {!r}identifier_casez'Invalid value for identifier_case: {!r}output_formatsqlpythonphpzUnknown output format: {!r}strip_commentsFTz&Invalid value for strip_comments: {!r}use_space_around_operatorsz2Invalid value for use_space_around_operators: {!r}strip_whitespacez(Invalid value for strip_whitespace: {!r}truncate_stringsz(Invalid value for truncate_strings: {!r}   truncate_charz[...]indent_columnsz&Invalid value for indent_columns: {!r}reindentz Invalid value for reindent: {!r}reindent_alignedz(Invalid value for reindent_aligned: {!r}indent_after_firstz*Invalid value for indent_after_first: {!r}indent_tabsz#Invalid value for indent_tabs: {!r}	indent_char indent_width   z indent_width requires an integerz(indent_width requires a positive integer
wrap_afterr   zwrap_after requires an integerz&wrap_after requires a positive integercomma_firstz$comma_first requires a boolean valueright_marginz right_margin requires an integer
   z%right_margin requires an integer > 10)Nr   r   r   )Nr   r   r   )Nr
   r   r   )TF)TF)TF)TF)TF)TF)TF)TF)TF)getr   formatint
ValueError	TypeError)optionsZkwcaseZidcaseZofrmtr   Zspace_around_operatorsZstrip_wsr   r   r   r   r   r   r   r   r   r    r'   P/var/www/tester-filtro-web/env/lib/python3.6/site-packages/sqlparse/formatter.pyvalidate_options   s    





















r)   c          	   C   s  |j dr | jjtj|d  |j dr@| jjtj|d  |j drh| jjtj|d |d d |j ddr| j  | jjtj	  |j dr| j  | jjtj
  |j d	s|j d
r| j  | jjtj  |j d
r$| j  | jjtj|d |d |d |d |d |d d |j ddrR| j  | jjtj|d d |j dr~| j  | jjtj|d d |j dr|d }|j dkrtj }n|j dkrtj }nd}|dk	r| jj| | S )zSetup and return a filter stack.

    Args:
      stack: :class:`~sqlparse.filters.FilterStack` instance
      options: Dictionary with options validated by validate_options.
    r   r   r   r   )widthcharr   Fr   r   r   r   r   r   r   r   r   )r+   r*   r   r   r   r   r   )r+   r   )r*   r	   r   r   N)r!   
preprocessappendr   ZKeywordCaseFilterZIdentifierCaseFilterZTruncateStringFilterZenable_groupingZstmtprocessZSpacesAroundOperatorsFilterZStripCommentsFilterZStripWhitespaceFilterZReindentFilterZAlignedIndentFilterZRightMarginFilterr   ZOutputPHPFilterZOutputPythonFilterpostprocess)stackr&   ZfrmtZfltrr'   r'   r(   build_filter_stack   s\    







r0   N)__doc__Zsqlparser   Zsqlparse.exceptionsr   r)   r0   r'   r'   r'   r(   <module>   s   v