
    ]j	                     h    d dl Z d dlZd dlmZ d dlmZ d dlmZ  G d d      Z	ddZ
ddZd	 Zd
 Zy)    N)escape)tokens)settingsc                       e Zd ZdZd Zy)BoldKeywordFilterz$sqlparse filter to bold SQL keywordsc              #      K   |D ]S  \  }}|t         j                  v }|rt         j                  df |t        |      f |s@t         j                  df U yw)zProcess the token streamz<strong>z	</strong>N)TKeywordTextr   )selfstream
token_typevalue
is_keywords        H/root/env/lib/python3.12/site-packages/debug_toolbar/panels/sql/utils.pyprocesszBoldKeywordFilter.process   s[     !' 	*J#qyy0Jffj((fUm++ffk))	*s   AAAN)__name__
__module____qualname____doc__r        r   r   r   
   s
    .*r   r   c                     t        | d      }|s|S t        t        | d            }dj                  |      }dj                  |      }||z   S )NT)aligned_indentFz*<span class="djDebugUncollapsed">{}</span>z4<span class="djDebugCollapsed djdt-hidden">{}</span>)	parse_sqlsimplifyformat)sqlwith_toggle	formattedsimpleuncollapsed	collapseds         r   reformat_sqlr$      sS    #d3IiE:;F>EEfMKFMMiXI{""r   c                    t         j                  j                         }t        j                         d   r|j                          |r:|j                  j                  t         j                  j                  dd             |j                  j                  t                      |j                  j                  t         j                  j                                dj                  |j                  |             S )NPRETTIFY_SQLz&nbsp;z<br/>)charn )sqlparseengineFilterStackdt_settings
get_configenable_groupingstmtprocessappendfiltersAlignedIndentFilter
preprocessr   postprocessSerializerUnicodejoinrun)r   r   stacks      r   r   r   "   s    OO'')E/  00h'0J	
 
-/0	X--??AB77599S>""r   c                 8    d}d}t        j                  |||       S )Nz,SELECT</strong> (...........*?) <strong>FROMz2SELECT</strong> &#8226;&#8226;&#8226; <strong>FROM)resub)r   exprr<   s      r   r   r   /   s    :D
?C66$S!!r   c               #      K   d } g d}d}g dg}	 |dk(  rd t        |      }|D ]H  }|D ]A  }t        d      D cg c]  }|||   z  ||   z    }}|j                  |        | |       C J |dz  }gc c}w w)	z
    Generate constrasting colors by varying most significant bit of RGB first,
    and then vary subsequent bits systematically.
    c                     dt        |       z  S )Nz#%02x%02x%02x)tuple)rgbs    r   
rgb_to_hexz/contrasting_color_generator.<locals>.rgb_to_hex;   s    s++r   ))   r   r   )r   rC   r   )r   r   rC   )rC   rC   r   )r   rC   rC   )rC   r   rC   )rC   rC   rC      )r   r   r   r   z#000000   rC   )listranger1   )	rB   triplesr(   so_farcopy_so_fartriplepreviousirA   s	            r   contrasting_color_generatorrN   5   s     ,G 	A[F
6O6l 	&F' &<A!HEqq6!9}x{2EEc" o%&	&
 	
a  Fs   ;A>A9,A>)F)r;   r*   django.utils.htmlr   r   r	   debug_toolbarr   r-   r   r$   r   r   rN   r   r   r   <module>rQ      s2    	  $   1* *#
#"r   