B []@sddlZddlZddlZGdddZejdfddZddZd d d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZdS)!Nc@s$eZdZdZdZdZdZdZdZdS)ColorzANSI Terminal colorszzzzzN) __name__ __module__ __qualname____doc__GREENZBLUEYELLOWREDENDr r $/usr/share/glib-2.0/codegen/utils.pyrs rZMESSAGEcCsBttjr$dj||tjd}n|}tjdj||ddS)z"Print a string with a color prefixz{start}{prefix}{end})startprefixendz{prefix}: {msg} )rmsgN) osisattysysstderrfilenoformatrr write)rcolorrZ real_prefixr r r print_color#srcCst|tjddtddS)zPrint an error, and terminateERROR)rrN)rrr rexit)rr r r print_error+srFcCs8|rtj}d}n tj}d}t||||r4tddS)z)Print a warning, and optionally terminaterZWARNINGrN)rr rrrr)rZfatalrrr r r print_warning0s rcCst|tjdddS)zPrint a messageINFO)rrN)rrr)rr r r print_info<sr cCsFd}d}x8|D]0}|dkr d}q|r6||7}d}q||7}qW|S)NF.T)upper)sretZ force_uppercr r r strip_dots@s   r'cCs |ddS)Nr"-)replace)r$r r r dots_to_hyphensNsr*cCsrd}d}d}d}x\|D]T}|r0|dkr0|d7}qd}|rJ|rDd}d}nd}|rZ|d7}||7}d}qW|S)Nr!FT_)isupperlower)r$r%Z insert_uscoreZprev_was_lowerinitialr&r r r camel_case_to_uscoreQs&   r/cCs|r|ddkrdSdS)Nr+rTF)find)r$r r r is_ugly_caseisr1cCs&|r"x|D]}|j|kr |jSq WdS)N)keyvalue) annotationsr2ar r r lookup_annotationns    r6cCst|d}|dkrdS|SdS)Nzorg.gtk.GDBus.DocStringr!)r6)r4r$r r r lookup_docsus r7cCst|d}|dkrdS|SdS)Nzorg.gtk.GDBus.Sincer!)r6)r4r$r r r lookup_since|s r8cCst|d}|dkrdS|SdS)Nzorg.gtk.GDBus.DocString.Shortr!)r6)r4r$r r r lookup_brief_docss r9cCs@|ddkrd}n|dr(t|d}nd}tj||dfS)NrZ UNRELEASEDZ99990r)str distutilsversionZ LooseVersion)r2vr r r version_cmp_keys  r?)F)Zdistutils.versionr<rrrr rrrr r'r*r/r1r6r7r8r9r?r r r r s