3
v^                 @   s  d Z d$Zd	d
 edD Zdd
 edD ZdZddddddZdf fddZf fddZdZ	dZ
dZe	i i i i i i i i i i i i i i i i i de
dd%ddd&ddd'dddidd(dddiddid d)id d*ii ddiddidd+dddidd,ddd-dd d.idedd/ddd0ddd1dddidd2dddiddid d3id d4ii dd5dddidd6dddidd7ddd8dd d9idiZe
Zd!d" Zd#S ):z
termcolors.py
blackredgreenyellowbluemagentacyanwhitec             C   s   i | ]}d | t | qS )z3%s)color_names).0x r   ;/usr/lib/python3.6/site-packages/django/utils/termcolors.py
<dictcomp>   s    r      c             C   s   i | ]}d | t | qS )z4%s)r	   )r
   r   r   r   r   r      s    014578)boldZ
underscoreZblinkreverseZconceal c             K   s   g }| dkr,t |dkr,|d dkr,dt S xB|j D ]6\}}|dkrV|jt|  q6|dkr6|jt|  q6W x"|D ]}|tkrv|jt|  qvW d|krd	| pdtf } d
ddj| | pdf S )aB  
    Return your text, enclosed in ANSI graphics codes.

    Depends on the keyword arguments 'fg' and 'bg', and the contents of
    the opts tuple/list.

    Return the RESET code if no parameters are given.

    Valid colors:
        'black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white'

    Valid options:
        'bold'
        'underscore'
        'blink'
        'reverse'
        'conceal'
        'noreset' - string will not be auto-terminated with the RESET code

    Examples:
        colorize('hello', fg='red', bg='blue', opts=('blink',))
        colorize()
        colorize('goodbye', opts=('underscore',))
        print(colorize('first line', fg='red', opts=('noreset',)))
        print('this should be red too')
        print(colorize('and so should this'))
        print('this should not be red')
    r          resetz[%smfgbgZnoresetz%s[%smz%s%s;)lenRESETitemsappend
foreground
backgroundopt_dictjoin)textoptskwargsZ	code_listkvor   r   r   colorize   s     
r-   c                s    fddS )a  
    Return a function with default parameters for colorize()

    Example:
        bold_red = make_style(opts=('bold',), fg='red')
        print(bold_red('hello'))
        KEYWORD = make_style(fg='yellow')
        COMMENT = make_style(fg='blue', opts=('bold',))
    c                s   t | f S )N)r-   )r'   )r)   r(   r   r   <lambda>D   s    zmake_style.<locals>.<lambda>r   )r(   r)   r   )r)   r(   r   
make_style:   s    
r/   nocolorZdarkZlight)ERRORSUCCESSWARNINGNOTICEZ	SQL_FIELDZSQL_COLTYPESQL_KEYWORDZ	SQL_TABLEZ	HTTP_INFOZHTTP_SUCCESSZHTTP_REDIRECTZHTTP_NOT_MODIFIEDZHTTP_BAD_REQUESTZHTTP_NOT_FOUNDZHTTP_SERVER_ERRORZMIGRATE_HEADINGZMIGRATE_LABELr   )r   r(   r   r(   c             C   s  | st t S | j jd}t t j }x|D ]}|t krH|jt |  q,d|kr,i }|jd\}}|j }|jd}|j  |j	 jd}|j  |j	 }	|	t
kr|	|d< |r|d t
kr|d |d< tdd	 |D }
|
r|
|d
< |t t ko|r,|||< q,W |t t krdS |S )a  Parse a DJANGO_COLORS environment variable to produce the system palette

    The general form of a palette definition is:

        "palette;role=fg;role=fg/bg;role=fg,option,option;role=fg/bg,option,option"

    where:
        palette is a named palette; one of 'light', 'dark', or 'nocolor'.
        role is a named style used by Django
        fg is a background color.
        bg is a background color.
        option is a display options.

    Specifying a named palette is the same as manually specifying the individual
    definitions for each role. Any individual definitions following the palette
    definition will augment the base palette definition.

    Valid roles:
        'error', 'success', 'warning', 'notice', 'sql_field', 'sql_coltype',
        'sql_keyword', 'sql_table', 'http_info', 'http_success',
        'http_redirect', 'http_not_modified', 'http_bad_request',
        'http_not_found', 'http_server_error', 'migrate_heading',
        'migrate_label'

    Valid colors:
        'black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white'

    Valid options:
        'bold', 'underscore', 'blink', 'reverse', 'conceal', 'noreset'
    r   =,/r   r   r   c             s   s   | ]}|t kr|V  qd S )N)r%   )r
   sr   r   r   	<genexpr>   s    z&parse_color_setting.<locals>.<genexpr>r(   Nr;   )PALETTESDEFAULT_PALETTElowersplitNOCOLOR_PALETTEcopyupdateupperr   popr	   tuple)config_stringpartsZpalettepartZ
definitionroleZinstructionsstylesZcolorsr   r(   r   r   r   parse_color_setting   s8    

rK   N)r   r   r   r   r   r   r   r   )r   )r   )r   )r   )r   )r   )r   )r   )r   )r   )r   )r   )r   )r   )r   )r   )r   )r   )r   )r   )r   )__doc__r	   ranger#   r$   r    r%   r-   r/   r@   ZDARK_PALETTEZLIGHT_PALETTEr<   r=   rK   r   r   r   r   <module>   s   -
