
v^                 @   sB   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  } | d6 k r0 t d j |    |  j  d  } | d7 k r` t d j |    |  j  d	  } | d8 k r t d j |    |  j  d d  } | d9 k r t d j |    |  j  d d  } | d: k r t d j |    |  j  d d  } | d; k r)t d j |    |  j  d  } | d k	 ry t |  } Wn- t t f k
 rt d j |    Yn X| d k rt d j |    | |  d <|  j  d d  |  d <|  j  d d  } | d< k rt d j |    n | rd |  d <| |  d <|  j  d d  }	 |	 d= k rKt d j |	    n |	 r[d |  d <|  j  d d  }
 |
 d> k rt d  j |	    n |
 rd |  d <|  j  d! d  } | d? k rt d" j |    | |  d! <|  j  d# d  } | d@ k rt d$ j |    n | r'd% |  d& <n
 d' |  d& <|  j  d( d)  } y t |  } Wn$ t t f k
 ryt d*   Yn X| d k  rt d+   | |  d( <|  j  d, d-  } y t |  } Wn$ t t f k
 rt d.   Yn X| d- k  rt d/   | |  d, <|  j  d0 d  } | dA k r1t d1   | |  d0 <|  j  d2  } | d k	 ry t |  } Wn$ t t f k
 rt d3   Yn X| d4 k  rt d5   | |  d2 <|  S)Bz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[...]indent_columnsz'Invalid value for indent_columns: {0!r}reindentz!Invalid value for reindent: {0!r}reindent_alignedz)Invalid value for reindent_aligned: {0!r}indent_after_firstz+Invalid value for indent_after_first: {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)Nupperlower
capitalize)Nr!   r"   r#   )Nr
   zpythonr   )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*   6/tmp/pip-build-8lau8j11/sqlparse/sqlparse/formatter.pyvalidate_options   s    								
	

	
	
	
	




r,   c             C   s  | j  d  r, |  j j t j | d   | j  d  rX |  j j t j | d   | j  d  r |  j j t j d | 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  r0|  j   |  j j t j    | j  d  r|  j   |  j j t j d | d d | d d | d d | d d | d d | d   | j  d d  r|  j   |  j j t j d | d   | j  d  r|  j   |  j j t j d | d   | j  d  r| d } | j   d k rJt j   } n' | j   d k rkt 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   widthcharr   r   Fr   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\    		



		





	
	
r3   N)__doc__Zsqlparser   Zsqlparse.exceptionsr   r,   r3   r*   r*   r*   r+   <module>	   s   v