a
    xd!                     @   s   d dl mZ d dlmZ d dlmZmZ d dlmZm	Z	m
Z
mZmZ d dlZdd Zdd	 Zd
d ZdddZdddZG dd deZdS )    )unicode_literals)	BaseCodec)console_stylestring_types)DocumentLinkArrayObjectErrorNc                 C   s   t | ddS )NZgreenZfgr   text r   N/var/www/html/Ranjet/env/lib/python3.9/site-packages/coreapi/codecs/display.py_colorize_document   s    r   c                 C   s   t | ddS )NZredr   r   r   r   r   r   _colorize_error   s    r   c                 C   s   t | ddS )NZcyanr   r   r   r   r   r   _colorize_keys   s    r   Fc                    s  rt ndd }rtndd }r(tndd t| trd }dd  d fdd	| j D fd
d	| j D  }|d| j	
 pdt| jf }	|s|	S |	d | S t| trFd }dd  d fdd	| j D fdd	| j D  }|s2dS d| d | d S t| trd }dd  d fdd	|  D }|| j	rd| j	
  nd}	|s|	S |	d | S t| trd }dd  d fdd	| D }|sdS d| d | d S t| trBdt| d d S t| tr|d urd| v rt| }
d d|  d }|
dd| S t| S ) Nc                 S   s   | S Nr   xr   r   r   <lambda>       z_to_plaintext.<locals>.<lambda>c                 S   s   | S r   r   r   r   r   r   r      r   c                 S   s   | S r   r   r   r   r   r   r      r   z       
c                    sB   g | ]:\}}t |d   t|d  tt |d qS z: r   )base_urlcolorizeextra_offsetstr_to_plaintextlen.0keyvaluer   body_indentr   colorize_keysindentr   r   
<listcomp>    s   z!_to_plaintext.<locals>.<listcomp>c                    s8   g | ]0\}} t |d   t|d d qS (r   )r    _fields_to_plaintextr#   r(   r   r)   r   r   r+   $   s   
z<%s %s>r   c                    sB   g | ]:\}}t | d  t|d  tt |d qS r   r   r#   r'   r   r   r+   5   s   c                    s8   g | ]0\}} t |d   t|d d qS r,   r0   r#   r2   r   r   r+   9   s   
z{}z{
}c                    sB   g | ]:\}}t |d   t|d  tt |d qS r   r   r#   r'   r   r   r+   E   s   z<Error: %s>z<Error>z,
c              	      s$   g | ]}t |d   d qS )r   )r   r   )r!   )r$   r&   )r   r(   r   r*   r   r   r+   S   s   z[]z[
]zlink(r.   r/    z   z\n)r   r   r   
isinstancer   joindataitemslinkstitlestripjsondumpsurlr	   r
   r   r   r1   r   replace)noder*   r   r   r   Zcolorize_documentZcolorize_errorZhead_indentbodyheadr   spacingr   r'   r   r!      sp    




 
r!   c                 C   s:   |rt ndd }|ddd | jD dd | jD  S )Nc                 S   s   | S r   r   r   r   r   r   r   k   r   z&_fields_to_plaintext.<locals>.<lambda>z, c                 S   s   g | ]}|j r|jqS r   requirednamer$   fieldr   r   r   r+   m   s   z(_fields_to_plaintext.<locals>.<listcomp>c                 S   s   g | ]}|j sd |j qS )z[%s]rE   rH   r   r   r   r+   o   s   )r   r7   fields)linkr   r)   r   r   r   r1   j   s    r1   c                   @   s   e Zd ZdZdZdd ZdS )DisplayCodeczM
    A plaintext representation of a Document, intended for readability.
    z
text/plainc                 K   s   | dd}t||dS )Nr   Fr.   )getr!   )selfdocumentoptionsr   r   r   r   encodez   s    zDisplayCodec.encodeN)__name__
__module____qualname____doc__
media_typerQ   r   r   r   r   rL   t   s   rL   )r   NFN)F)
__future__r   Zcoreapi.codecs.baser   Zcoreapi.compatr   r   Zcoreapi.documentr   r   r   r	   r
   r=   r   r   r   r!   r1   rL   r   r   r   r   <module>   s   
S

