U
    
a                     @   s   d dl Zd dlZd dlZG dd dZejdfddZdd Zd 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 )!    Nc                   @   s$   e Zd ZdZdZdZdZdZdZdS )ColorzANSI Terminal colorsz[1;32mz[1;34mz[1;33mz[1;31mz[0mN)	__name__
__module____qualname____doc__GREENZBLUEYELLOWREDEND r   r   share/glib-2.0/codegen/utils.pyr      s   r   ZMESSAGEc                 C   sB   t tj r$dj||tjd}n|}tjdj|| d dS )z"Print a string with a color prefixz{start}{prefix}{end})startprefixendz{prefix}: {msg}
)r   msgN)	osisattysysstderrfilenoformatr   r
   write)r   colorr   Zreal_prefixr   r   r   print_color&   s      r   c                 C   s   t | tjdd td dS )zPrint an error, and terminateERRORr   r      N)r   r   r	   r   exitr   r   r   r   print_error1   s    r   Fc                 C   s8   |rt j}d}n
t j}d}t| || |r4td dS )z)Print a warning, and optionally terminater   ZWARNINGr   N)r   r	   r   r   r   r   )r   Zfatalr   r   r   r   r   print_warning7   s    r    c                 C   s   t | tjdd dS )zPrint a messageINFOr   N)r   r   r   r   r   r   r   
print_infoD   s    r"   c                 C   sB   d}d}| D ]0}|dkrd}q|r4||  7 }d}q||7 }q|S )N F.T)upper)sretZforce_uppercr   r   r   
strip_dotsI   s    
r)   c                 C   s   |  ddS )Nr$   -)replacer&   r   r   r   dots_to_hyphensX   s    r-   c                 C   sn   d}d}d}d}| D ]T}|r.|dkr.|d7 }qd}|  rH|rBd}d}nd}|rX|d7 }|| 7 }d}q|S )Nr#   FT_)isupperlower)r&   r'   Zinsert_uscoreZprev_was_lowerinitialr(   r   r   r   camel_case_to_uscore\   s&    r2   c                 C   s   | r|  ddkrdS dS )Nr.   r   TF)findr,   r   r   r   is_ugly_caseu   s    r4   c                 C   s&   | r"| D ]}|j |kr|j  S qd S )N)keyvalue)annotationsr5   ar   r   r   lookup_annotation{   s
    
r9   c                 C   s   t | d}|d krdS |S d S )Nzorg.gtk.GDBus.DocStringr#   r9   r7   r&   r   r   r   lookup_docs   s    
r<   c                 C   s   t | d}|d krdS |S d S )Nzorg.gtk.GDBus.Sincer#   r:   r;   r   r   r   lookup_since   s    
r=   c                 C   s   t | d}|d krdS |S d S )Nzorg.gtk.GDBus.DocString.Shortr#   r:   r;   r   r   r   lookup_brief_docs   s    
r>   c                 C   s@   | d dkrd}n| d r(t | d }nd}tj|| d fS )Nr   Z
UNRELEASEDZ99990r   )str	distutilsversionZLooseVersion)r5   vr   r   r   version_cmp_key   s    rD   )F)Zdistutils.versionrA   r   r   r   r
   r   r   r    r"   r)   r-   r2   r4   r9   r<   r=   r>   rD   r   r   r   r   <module>   s    

