
    *)h3                         S SK r S SKrS SKr " S S5      r\R                  S4S jrS rSS jrS rS	 r	S
 r
S rS rS rS rS rS rS rS rS rg)    Nc                   ,    \ rS rSrSrSrSrSrSrSr	Sr
g	)
Color   zANSI Terminal colorsz[1;32mz[1;34mz[1;33mz[1;31mz[0m N)__name__
__module____qualname____firstlineno____doc__GREENBLUEYELLOWREDEND__static_attributes__r       $/usr/share/glib-2.0/codegen/utils.pyr   r      s    EDF
C
Cr   r   MESSAGEc                    [         R                  " [        R                  R	                  5       5      (       a  SR                  X[        R                  S9nOUn[        R                  R                  SR                  X0S95        g)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   real_prefixs       r   print_colorr#   (   sd    	yy""$%%,33EII 4 
 JJ(//{/LMr   c                 b    [        U [        R                  SS9  [        R                  " S5        g)zPrint an error, and terminateERRORr!   r      N)r#   r   r   r   exitr   s    r   print_errorr*   3   s    599W5HHQKr   c                     U(       a  [         R                  nSnO[         R                  nSn[        XU5        U(       a  [        R
                  " S5        gg)z)Print a warning, and optionally terminater%   WARNINGr'   N)r   r   r   r#   r   r(   )r   fatalr!   r   s       r   print_warningr.   9   s>    		F# r   c                 6    [        U [        R                  SS9  g)zPrint a messageINFOr&   N)r#   r   r   r)   s    r   
print_infor1   F   s    5;;v6r   c                 v    SnSnU  H.  nUS:X  a  SnM  U(       a  XR                  5       -  nSnM*  X-  nM0     U$ )N F.T)upper)sretforce_uppercs       r   
strip_dotsr:   K   sF    
CK8Kwwy #  Jr   c                 &    U R                  SS5      $ )Nr4   -)replacer6   s    r   dots_to_hyphensr?   Z   s    99S#r   c                     SnSnSnSnU  H\  nU(       a  US:X  a  US-  nM  SnUR                  5       (       a  U(       a  SnSnOSnU(       a  US-  nXR                  5       -  nSnM^     U$ )Nr3   FT_)isupperlower)r6   r7   insert_uscoreprev_was_lowerinitialr9   s         r   camel_case_to_uscorerG   ^   s}    
CMNGqCx3JC99;; $"N!N3JCwwy! " Jr   c           	          SR                  U R                  S5       V s/ s H2  o (       a'  U S   R                  5       U SS  R                  5       -   OSPM4     sn 5      $ s  sn f )Nr3   rA   r   r'   )joinsplitr5   rC   r>   s    r   uscore_to_camel_caserK   w   sN    77PSU1AAaDJJL1QR5;;=03>UVVUs   9Ac                 >    U (       a  U R                  S5      S:  a  gg)NrA   r   TF)findr>   s    r   is_ugly_caserN   {   s    QVVC[1_r   c                 `    U (       a'  U  H!  nUR                   U:X  d  M  UR                  s  $    g )N)keyvalue)annotationsrP   as      r   lookup_annotationrT      s(    Auu|ww  r   c                 &    [        U S5      nUc  gU$ )Nzorg.gtk.GDBus.DocStringr3   rT   rR   r6   s     r   lookup_docsrX      s    +'@AAyr   c                 &    [        U S5      nUc  gU$ )Nzorg.gtk.GDBus.Sincer3   rV   rW   s     r   lookup_sincerZ      s    +'<=Ayr   c                 &    [        U S5      nUc  gU$ )Nzorg.gtk.GDBus.DocString.Shortr3   rV   rW   s     r   lookup_brief_docsr\      s    +'FGAyr   c                 p    U S   S:X  a  SnOU S   (       a  [        U S   5      nOSn[        U5      U S   4$ )Nr   
UNRELEASED99990r'   )str_parse_version)rP   vs     r   version_cmp_keyrd      sB     1v	QAK1s1v&&r   c                     [         R                  " SU 5      nU Vs/ s H$  o"R                  5       (       a  [        U5      OUPM&     sn$ s  snf )a  
Parse a version string into a list of integers and strings.

This function takes a version string and breaks it down into its component parts.
It separates numeric and non-numeric segments, converting numeric segments to integers.

Args:
    version (str): The version string to parse.

Returns:
    list: A list where each element is either an integer (for numeric parts)
          or a string (for non-numeric parts).

Example:
    >>> parseversion("1.2.3a")
    [1, 2, 3, 'a']
    >>> parseversion("2.0.0-rc1")
    [2, 0, 0, 'rc1']
z	(\d+|\w+))refindallisdigitint)versionblocksbs      r   rb   rb      s=    ( ZZg.F289&QiikkCFq(&999s   +A
)F)r   r   rf   r   r   r#   r*   r.   r1   r:   r?   rG   rK   rN   rT   rX   rZ   r\   rd   rb   r   r   r   <module>rm      sr   0 
 
 	  !99Y N
7
2W
':r   