3
6b                 @   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}|d2kr tdj|| j d}|d3kr@tdj|| j d	}|d4kr`tdj|| j dd}|d5krtdj|| j dd}|d6krtdj|| j dd}|d7k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}|d8krftdj|n|rtd| d< | j dd}	|	d9krtdj|n|	rd| d< | j dd}
|
d:krtd j|
n|
rd!| d"< nd#| d"< | j d$d%}yt|}W n" ttfk
r    td&Y nX |dk r4td'|| d$< | j d(d)}yt|}W n" ttfk
rv   td*Y nX |d)k rtd+|| d(< | j d,d}|d;krtd-|| d,< | j d.}|dk	ryt|}W n" ttfk
r   td/Y nX |d0k rtd1|| d.< | S )<zValidates options.keyword_caseNupperlower
capitalizez%Invalid value for keyword_case: {0!r}identifier_casez(Invalid value for identifier_case: {0!r}output_formatsqlpythonphpzUnknown output format: {0!r}strip_commentsFTz'Invalid value for strip_comments: {0!r}use_space_around_operatorsz3Invalid value for use_space_around_operators: {0!r}strip_whitespacez)Invalid value for strip_whitespace: {0!r}truncate_stringsz)Invalid value for truncate_strings: {0!r}   truncate_charz[...]reindentz!Invalid value for reindent: {0!r}reindent_alignedz)Invalid value for reindent_aligned: {0!r}indent_tabsz$Invalid value for indent_tabs: {0!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)getr   formatint
ValueError	TypeError)optionsZkwcaseZidcaseZofrmtr   Zspace_around_operatorsZstrip_wsr   r   r   r   r   r   r   r    r%   Q/var/www/html/sandeepIITI/myenv/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 |j ddrF| j  | jjtj|d d |j drr| 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   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_stackv   sV    








r.   N)__doc__Zsqlparser   Zsqlparse.exceptionsr   r'   r.   r%   r%   r%   r&   <module>   s   h