o
    MKd<                     @   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 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   $/usr/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   s<   |rt j}d}nt j}d}t| || |rtd dS 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 ]}|dkrd}q|r||  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 ]*}|r|dkr|d7 }q
d}|  r$|r!d}d}nd}|r,|d7 }|| 7 }d}q
|S )Nr#   FT_)isupperlower)r&   r'   Zinsert_uscoreZprev_was_lowerZinitialr(   r   r   r   camel_case_to_uscore\   s&   r1   c                 C   s   d dd | dD S )Nr#   c                 S   s0   g | ]}|r|d    |dd   ndqS )r   r   Nr.   )r%   r0   ).0r&   r   r   r   
<listcomp>v   s   0 z(uscore_to_camel_case.<locals>.<listcomp>r.   )joinsplitr,   r   r   r   uscore_to_camel_caseu   s   r6   c                 C   s   | r|  ddkrdS dS )Nr.   r   TF)findr,   r   r   r   is_ugly_casey   s   r8   c                 C   s&   | r| D ]}|j |kr|j  S qd S )N)keyvalue)annotationsr9   ar   r   r   lookup_annotation   s   

r=   c                 C      t | d}|d u rdS |S )Nzorg.gtk.GDBus.DocStringr#   r=   r;   r&   r   r   r   lookup_docs      
rA   c                 C   r>   )Nzorg.gtk.GDBus.Sincer#   r?   r@   r   r   r   lookup_since   rB   rC   c                 C   r>   )Nzorg.gtk.GDBus.DocString.Shortr#   r?   r@   r   r   r   lookup_brief_docs   rB   rD   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)r9   vr   r   r   version_cmp_key   s   rJ   )F)Zdistutils.versionrG   r   r   r   r
   r   r   r    r"   r)   r-   r1   r6   r8   r=   rA   rC   rD   rJ   r   r   r   r   <module>   s$   

