ó
|£*^c           @   s<   d  Z  d d l m Z d d l m Z d „  Z d „  Z d S(   s   SQL formatteriÿÿÿÿ(   t   filters(   t   SQLParseErrorc         C   s&  |  j  d d% ƒ } | d& k r1 t d | ƒ ‚ n  |  j  d d% ƒ } | d' k rb t d | ƒ ‚ n  |  j  d d% ƒ } | d( k r“ t d | ƒ ‚ n  |  j  d t ƒ } | t t g k rÊ t d | ƒ ‚ n  |  j  d t ƒ } | t t g k rt d | ƒ ‚ n  |  j  d d% ƒ } | d% k	 r›y t | ƒ } Wn' t t f k
 rXt d | ƒ ‚ n X| d k rxt d | ƒ ‚ n  | |  d <|  j  d d ƒ |  d <n  |  j  d t ƒ } | t t g k rÒt d | ƒ ‚ n | råt |  d <n  |  j  d t ƒ } | t t g k rt d | ƒ ‚ n | r/d |  d <n
 d |  d <|  j  d d ƒ }	 y t |	 ƒ }	 Wn# t t f k
 r€t d ƒ ‚ n X|	 d k  rœt d  ƒ ‚ n  |	 |  d <|  j  d! d% ƒ }
 |
 d% k	 ry t |
 ƒ }
 Wn# t t f k
 rùt d" ƒ ‚ n X|
 d# k  rt d$ ƒ ‚ qn  |
 |  d! <|  S()   s   Validates options.t   keyword_caset   uppert   lowert
   capitalizes"   Invalid value for keyword_case: %rt   identifier_cases%   Invalid value for identifier_case: %rt   output_formatt   sqlt   pythont   phps   Unknown output format: %rt   strip_commentss$   Invalid value for strip_comments: %rt   strip_whitespaces&   Invalid value for strip_whitespace: %rt   truncate_stringss&   Invalid value for truncate_strings: %ri   t   truncate_chars   [...]t   reindents   Invalid value for reindent: %rt   indent_tabss!   Invalid value for indent_tabs: %rs   	t   indent_chart    t   indent_widthi   s    indent_width requires an integers)   indent_width requires an positive integert   right_margins    right_margin requires an integeri
   s%   right_margin requires an integer > 10N(   NR   R   R   (   NR   R   R   (   NR   R	   R
   (   t   gett   NoneR   t   Falset   Truet   intt
   ValueErrort	   TypeError(   t   optionst   kwcaset   idcaset   ofrmtR   t   strip_wsR   R   R   R   R   (    (    sf   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/formatter.pyt   validate_options   sv    



c         C   s4  | j  d d ƒ r2 |  j j t j | d ƒ ƒ n  | j  d d ƒ rd |  j j t j | d ƒ ƒ n  | j  d d ƒ d k	 r© |  j j t j d | d d | d ƒ ƒ n  | j  d t ƒ rÞ |  j	 ƒ  |  j
 j t j ƒ  ƒ n  | j  d t ƒ s| j  d	 t ƒ r%|  j	 ƒ  |  j
 j t j ƒ  ƒ n  | j  d	 t ƒ rn|  j	 ƒ  |  j
 j t j d | d
 d | d ƒ ƒ n  | j  d t ƒ r­|  j	 ƒ  |  j
 j t j d | d ƒ ƒ n  | j  d ƒ r0| d } | j ƒ  d k rçt j ƒ  } n' | j ƒ  d k rt j ƒ  } n d } | d k	 r0|  j j | ƒ q0n  |  S(   s³   Setup and return a filter stack.

    Args:
      stack: :class:`~sqlparse.filters.FilterStack` instance
      options: Dictionary with options validated by validate_options.
    R   R   R   t   widtht   charR   R   R   R   R   R   R   R   R
   R	   N(   R   R   t
   preprocesst   appendR    t   KeywordCaseFiltert   IdentifierCaseFiltert   TruncateStringFilterR   t   enable_groupingt   stmtprocesst   StripCommentsFiltert   StripWhitespaceFiltert   ReindentFiltert   RightMarginFilterR   t   OutputPHPFiltert   OutputPythonFiltert   postprocess(   t   stackR   t   frmtt   fltr(    (    sf   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/formatter.pyt   build_filter_stackT   sF    		


	
	
N(   t   __doc__t   sqlparseR    t   sqlparse.exceptionsR   R!   R5   (    (    (    sf   /home/gitlab-runner/builds/8480fa44/0/bergerc/fluidmanager-web/art-framework/bin/sqlparse/formatter.pyt   <module>   s   	H