î
·n—Yj  ã               @   s7  d  d l  Z  d  d l Z d  d l Z d  d l Z e j ƒ  j ƒ  d k ou e j e  j j ƒ  ƒ ou e j	 j
 d ƒ d k Z d a d a d d „  Z d d „  Z Gd	 d
 „  d
 ƒ Z d d „  Z d d „  Z d d „  Z d d „  Z d d „  Z d d „  Z d d „  Z d d „  Z d d „  Z d d „  Z d d  „  Z d S)!é    NÚwindowsZTERMZdumbc             C   s.   |  a  t t j j |  d ƒ d d d ƒa d  S)Nzmeson-log.txtÚwÚencodingÚutf8)Úlog_dirÚopenÚosÚpathÚjoinÚlog_file)Zlogdir© r   úK/mnt/raid6/a/bak/reczko/tools/protein/utils/meson-0.42.1/mesonbuild/mlog.pyÚ
initialize   s    r   c              C   s)   t  d  k	 r% t  }  d  a  |  j ƒ  n  d  S)N)r   Úclose)Zexception_around_goerr   r   r   Úshutdown   s    r   c               @   s.   e  Z d  Z d Z d d „  Z d d „  Z d S)ÚAnsiDecoratorz[0mc             C   s   | |  _  | |  _ d  S)N)ÚtextÚcode)Úselfr   r   r   r   r   Ú__init__)   s    	zAnsiDecorator.__init__c             C   s"   | r |  j  |  j t j S|  j S)N)r   r   r   Ú
plain_code)r   Z
with_codesr   r   r   Úget_text-   s    zAnsiDecorator.get_textN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   &   s   r   c             C   s   t  |  d ƒ S)Nz[1m)r   )r   r   r   r   Úbold2   s    r   c             C   s   t  |  d ƒ S)Nz[1;31m)r   )r   r   r   r   Úred5   s    r   c             C   s   t  |  d ƒ S)Nz[1;32m)r   )r   r   r   r   Úgreen8   s    r   c             C   s   t  |  d ƒ S)Nz[1;33m)r   )r   r   r   r   Úyellow;   s    r   c             C   s   t  |  d ƒ S)Nz[1;36m)r   )r   r   r   r   Úcyan>   s    r   c             C   su   g  } xh |  D]` } t  | t ƒ r2 | j | ƒ q t  | t ƒ rZ | j | j | ƒ ƒ q | j t | ƒ ƒ q W| S)N)Ú
isinstanceÚstrÚappendr   r   )ÚargsZkeepÚarrÚargr   r   r   Úprocess_markupA   s    r&   c              O   sx   y t  |  | Ž  Wn` t k
 rs t j ƒ  } | | d <t  |  | Ž  | j ƒ  j d d ƒ j d ƒ } t  | ƒ Yn Xd  S)NÚfileÚasciiÚreplace)ÚprintÚUnicodeEncodeErrorÚioÚStringIOÚgetvalueÚencodeÚdecode)r#   ÚkwargsZiostrÚcleanedr   r   r   Úforce_printL   s    
!r3   c              O   s?   t  |  d ƒ } t d  k	 r; t d t | | Ž t j ƒ  n  d  S)NFr'   )r&   r   r*   Úflush)r#   r1   r$   r   r   r   ÚdebugW   s    r5   c              O   sd   t  |  d ƒ } t d  k	 r; t d t | | Ž t j ƒ  n  t rS t  |  d ƒ } n  t | | Ž  d  S)NFr'   T)r&   r   r*   r4   Úcolorize_consoler3   )r#   r1   r$   r   r   r   Úlog]   s    r7   c              O   s   t  t d ƒ |  | Ž d  S)NzWARNING:)r7   r   )r#   r1   r   r   r   Úwarningf   s    r8   c             C   sw   t  |  ƒ } | d k rB d j d j |  d  d … ƒ |  d g ƒ S| d k r[ d j |  ƒ S| d k ro |  d Sd Sd  S)	Né   z and z, é   r   Ú éÿÿÿÿr<   )Úlenr
   )ÚlistÚlr   r   r   Úformat_listk   s    *r@   )Úsysr   Úplatformr,   ÚsystemÚlowerÚisattyÚstdoutÚfilenoÚenvironÚgetr6   r   r   r   r   r   r   r   r   r   r   r&   r3   r5   r7   r8   r@   r   r   r   r   Ú<module>   s$   00	