
    0h{                     
   S SK r S SKrS SKJr  S SKJr  SSKJrJr  SSK	J
r
Jr  SSKJr   " S S	\5      r " S
 S\5      r\" SSS9r\" SSS9r\" SSS9r\" SSS9r\" SSS9r\" SSS9r\" SSS9r\" SSS9r\" SSS9r\" SSS9r\" SSS9r\" SSS9r\" SSS9r\" SSS9r\" SSS9r\" SSS9r \" SSS9r!\" SSS9r"\" S S S9r#\" S!S!S9r$\" S"S"S9r%\" S#S#S9r&\" S$S$S9r'\" S%S%S9r(\" S&S&S9r)\" S'S'S9r*\" S(S(S9r+\" S)S)S9r,\" S*S*S9r-\" S+S+S9r.\" S,S,S9r/\" S-S-S9r0\" S.S.S9r1\" S/S/S9r2\" S0S0S9r3\" S1S1S9r4\" S2S3S9r5\" S4S3S9r6\" S5S5S9r7/ \P\P\P\P\P\P\P\P\P\P\P\P\P\ P\!P\"P\#P\$P\'P\(P\-P\.P\)P\*P\+P\,P\4P\/P\0P\1P\2P\3Pr8\%\&/r9\9Ru                  \85        \\/r;\;Ru                  \95        \;Ru                  \5\6\7/5        \\%\&/r<\=" \;5      r>\\\'\(\+\7\/\0\1\2\34 H  r?\>R                  \?5        M     0 rA\; H  rB\B\A\BR                  '   M     0 rD\9 H  rB\B\D\BR                  '   M     \\AS6'   \\AS7'   \\AS8'   \\AS9'   \\AS:'   \\AS;'   \\AS<'   \\AS='   \\AS>'   \\AS?'   \ \AS@'   \ \ASA'   \!\ASB'   \!\ASC'   \"\ASD'   \"\ASE'   \)\ASF'   \*\ASG'   \5\ASH'   \\ASI'   \\AS'   \'\ASJ'   \\ASK'   \\ASL'   \\ASM'   \\ASN'   \\ASO'   \\ASP'   \\ASQ'   \\ASR'   \\ASS'   \5\AST'   \5\AS3'   \\ASU'   \\ASV'   \#\AS '   \$\AS!'   \%\AS"'   \&\AS#'   \\ASW'   \\ASX'   \\ASY'   \\ASZ'   \\AS['   \ \AS\'   \"\AS]'   \\AS^'   \AS    \AS_'   \AS!   \AS`'   \AS#   \ASa'   \AS"   \ASb'   \-\AS*'   \.\AS+'   \1\AS.'   \3\AS0'   \0\AS-'   \/\AS,'   \2\AS/'   \\ASc'   SdrESerFSfrGSgrHShrISirJSjrKSrLSkrMSlrNSmrOSnrPSorQSprR " Sq Sr\5      rS " Ss St\5      rT " Su Sv\5      rU " Sw Sx\U5      rV " Sy Sz\V5      rW " S{ S|5      rX " S} S~\V5      rY " S S\V5      rZ " S S\Y5      r[ " S S\[5      r\ " S S\Y5      r] " S S\5      r^ " S S\5      r_ " S S\5      r` " S S\5      ra " S S\V5      rb " S S\U5      rc " S S\c5      rd " S S\c5      re " S S\V\X5      rf " S S\V\X5      rg " S S\U5      rh " S S\V\X5      ri " S S\U5      rj " S S\i5      rk " S S\i5      rl " S S\V\X5      rm " S S\V\X5      rn " S S\Y5      ro " S S\V\X5      rp " S S\V\X5      rq " S S\V5      rr " S S\V5      rs " S S\Y5      rtg)    N)chain)OrderedDict   )CTYPE_TYPEDEFCSYMBOL_TYPE_TYPEDEF)Positionwarn)to_underscoresc                       \ rS rSrSr         SS jr\S 5       r\S 5       r\	S 5       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S rSrg)Type    a[  
A Type can be either:
* A reference to a node (target_giname)
* A reference to a "fundamental" type like 'utf8'
* A "foreign" type - this can be any string."
If none are specified, then it's in an "unresolved" state.  An
unresolved type can have two data sources; a "ctype" which comes
from a C type string, or a gtype_name (from g_type_name()).
Nc
                 8   Xl         X l        Xl        U(       a  [        U [        5      (       d   eOKU(       a  Ub   eUb   eO9U(       a  SU;   d   eUb   eUb   eOU(       a  Uc   eUb   eUb   eOUc  Uc   eX0l        X@l        XPl        Xpl        Xl	        g N.)
ctype
gtype_nameorigin_symbol
isinstanceTypeUnknowntarget_fundamentaltarget_ginametarget_foreignis_constcomplete_ctype)
selfr   r   r   r   r   _target_unknownr   r   r   s
             +/lib/gobject-introspection/giscanner/ast.py__init__Type.__init__+   s     
$*dK0000 (((!)))-'''%---!)))$$$ (((%---%:+ABB"4*, ,    c                 f    U R                   =(       d    U R                  =(       d    U R                  $ Nr   r   r   r   s    r   resolvedType.resolvedM   s,    '' $""$##	%r    c                     U R                   (       a  U R                   $ U R                  (       a  U R                  $ U R                  (       a  U R                  $  er"   )r   r   r   r$   s    r   unresolved_stringType.unresolved_stringS   s>    ::::__??"%%%5r    c                 b   [         R                  U5      nUb  U " UR                  UR                  S9$ US:X  a  [	        [
        [
        US9$ US:X  a  [        S[        US9$ US;   a  [        SUS	S -   [
        US9$ US
:X  a(  [        R                  5       nSUl        [        SUSUSS9$ U " US9$ )zParse a GType name (as from g_type_name()), and return a
Type instance.  Note that this function performs namespace lookup,
in contrast to the other create_type() functions.Nr   r   
GHashTable)r   
GByteArrayGLib.ByteArray)GArray	GPtrArrayzGLib.r   GStrvF)r   r   r   )

type_namesgetr   r   MapTYPE_ANYArray
TYPE_UINT8TYPE_STRINGclone)clsr   fundamental	bare_utf8s       r   create_from_gtype_nameType.create_from_gtype_name^   s     !nnZ0"+*H*H(..0 0%xjAA<'):*MM22:ab>18$.0 07"#))+I"IOy"') ) j))r    c                 \    U R                   c   eU R                   R                  S5      S   $ )Nr   r   )r   splitr$   s    r   
get_ginameType.get_ginamew   s0    !!---!!'',Q//r    c                 P   U R                   (       a  U" U R                   UR                   5      $ U R                  (       a  U" U R                  UR                  5      $ U R                  (       a  U" U R                  UR                  5      $ U" U R                  UR                  5      $ r"   )r   r   r   r   r   otherops      r   _compareType._compare{   s}    ""d--u/G/GHHd((%*=*=>>  d))5+?+?@@djj%++..r    c                 B    U R                  U[        R                  5      $ r"   rG   operatorltr   rE   s     r   __lt__Type.__lt__       }}UHKK00r    c                 B    U R                  U[        R                  5      $ r"   rG   rK   gtrM   s     r   __gt__Type.__gt__   rP   r    c                 B    U R                  U[        R                  5      $ r"   rG   rK   gerM   s     r   __ge__Type.__ge__   rP   r    c                 B    U R                  U[        R                  5      $ r"   rG   rK   lerM   s     r   __le__Type.__le__   rP   r    c                 B    U R                  U[        R                  5      $ r"   rG   rK   eqrM   s     r   __eq__Type.__eq__   rP   r    c                 B    U R                  U[        R                  5      $ r"   rG   rK   nerM   s     r   __ne__Type.__ne__   rP   r    c                 p    [        U R                  U R                  U R                  U R                  45      $ r"   )hashr   r   r   r   r$   s    r   __hash__Type.__hash__   s3    T,,d.@.@(($**6 7 	7r    c                     [        U[        [        45      (       a"  U H  nU R                  U5      (       d  M    g   gX:H  $ )zReturn True if the specified types are compatible at
an introspection level, disregarding their C types.
A sequence may be given for typeval, in which case
this function returns True if the type is compatible with
any.TF)r   listtupleis_equiv)r   typevalvals      r   rq   Type.is_equiv   s>     ge}--==%%  r    c                     [        U R                  U R                  U R                  U R                  U R
                  S9$ )N)r   r   r   r   r   )r   r   r   r   r   r   r$   s    r   r9   
Type.clone   s7    t'>'>"&"4"4#'#6#6**!]]	, 	,r    c                     U R                   (       a  U R                   $ U R                  (       a  U R                  $ U R                  (       a  U R                  $ g)Nz<undefined>r#   r$   s    r   __str__Type.__str__   sD    ""***%%%  &&&r    c                 0   U R                   (       a  SU R                   < S3nOHU R                  (       a  SU R                  < S3nO%U R                  (       a  SU R                  < S3nOSnU R                  R                  < SU< SU R
                  < S3$ )	Nztarget_fundamental=z, ztarget_giname=ztarget_foreign= (zctype=))r   r   r   	__class____name__r   )r   datas     r   __repr__Type.__repr__   sp    """040G0GJD+/+=+=@D   ,0,?,?BDD#'>>#:#:D$**MMr    )r   r   r   r   r   r   r   r   )	NNNNNFFNN)r   
__module____qualname____firstlineno____doc__r   propertyr%   r(   classmethodr=   rA   rG   rN   rT   rY   r^   rc   rh   rl   rq   r9   rx   r   __static_attributes__ r    r   r   r       s      $(# $!&# $ -D % %
   * *00/1111117,	Nr    r   c                       \ rS rSrS rSrg)r      c                 ,    [         R                  U SS9  g )NT)r   r   r   r$   s    r   r   TypeUnknown.__init__   s    dD1r    r   Nr   r   r   r   r   r   r   r    r   r   r      s    2r    r   nonevoidr+   gpointergbooleangint8guint8gint16guint16gint32guint32gint64guint64gchargshortgushortgintguintglonggulonggsizegssizegintptrguintptrz	long longzunsigned long longgfloatgdoublezlong doublegunichartime_toff_tdev_tgid_tpid_t	socklen_tuid_tGTypeutf8zgchar*filenameva_listcharzsigned charzunsigned charshortzsigned shortzunsigned shortintz
signed intzunsigned short intsignedzunsigned intunsignedlongzsigned longzunsigned longzunsigned long intfloatdoublezchar*zvoid*zsigned long longint8_tuint8_tint16_tuint16_tint32_tuint32_tint64_tuint64_tguchar
gchararraygoffset	gunichar2gconstpointer	grefcountgatomicrefcountanybooleanuintulongzFILE*size_tssize_t	uintptr_tintptr_tidinoutinoutcallasyncnotifiedforever	containerfullfirstlastcleanupzmust-collectc                   n    \ rS rSrSS jrS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g)	Namespacei  Nc                    Xl         X l        Ub  X0l        OU/U l        Ub  X@l        O;U R                  nU Vs/ s H  n[	        U5      R                  5       PM     snU l        U R                   Vs/ s H  ofR                  5       PM     snU l        [        5       U l	        0 U l
        0 U l        0 U l        0 U l        [        5       U l        / U l        / U l        / U l        SU l        g s  snf s  snf )Nunknown)nameversionidentifier_prefixessymbol_prefixesr
   lowerupper_ucase_symbol_prefixesr   namesaliasesr2   ctypessymbolssetincludesshared_libraries
c_includesexported_packages
doc_format)r   r   r   r   r   psps          r   r   Namespace.__init__  s    	*':$(,vD$&#2 ))BGI#Jr!N1$5$;$;$=r#JD :>:N:N&O:NQwwy:N&O# ]
 "!## $K&Os   #C*2C/c                 r    U[         ;   a	  [        XS9$ SU;   a  UnOU R                  < SU< 3n[        X2S9$ )aO  Backwards compatibility method for older .gir files, which
only use the 'name' attribute.  If name refers to a fundamental type,
create a Type object referncing it.  If name is already a
fully-qualified GIName like 'Foo.Bar', returns a Type targeting it .
Otherwise a Type targeting name qualififed with the namespace name is
returned.r+   r   )r   r   )r2   r   r   )r   r   r   targets       r   type_from_nameNamespace.type_from_name  s<     :4==$;F $		40F&66r    c                 H   [        U[        5      (       d   eUR                  U L a  gUR                  b   eXl        [        U[        5      (       a  XR                  UR
                  '   Oh[        U[        5      (       a&  UR                  b  XR                  UR                  '   O-[        U[        5      (       a  XR                  UR                  '   [        U[        [        [        [        [         45      (       ag  [#        UR$                  UR&                  UR(                  5       H8  n[        U[        5      (       d  M  Xl        X R                  UR                  '   M:     [        U[        [        [        45      (       a  UR*                   H	  nXl        M     [        U[        [        45      (       a-  [#        UR,                  UR.                  5       H	  nXl        M     [        U[0        [2        45      (       ay  UR&                   H8  n[        U[        5      (       d  M  Xl        X R                  UR                  '   M:     UR4                   H!  nXl        XPR                  UR                  '   M#     [7        US5      (       a  XR8                  UR:                  '   gg)zwDoesn't directly append the function to our own namespace,
but adds it to things like ctypes, symbols, and type_names.
Nr   )r   Node	namespaceAliasr   r   
Registeredr   r2   Functionr   symbolCompoundClass	InterfaceBoxedPointerr   methodsstatic_methodsconstructorsfieldssignals
propertiesEnumBitfieldmembershasattrr   r   )r   nodefnfmmembers         r   trackNamespace.track  s    $%%%%>>T!~~%%%dE""&*LL#j))doo.I/3OODOO,h''(,LL%dXuiHIIDLL$*=*=t?P?PQ!"h//#*,RYY'	 R
 dXui899[[" !dUI.//4<<9" :dT8,--))!"h//#*,RYY'	 *
 ,,#' .4V]]+ ' 4!!&*KK

# "r    c                     U R                   R                  UR                  5      nUb'  U(       d  [        SU< 35      eU R	                  U5        U R                  U5        XR                   UR                  '   g )NzNamespace conflict: )r   r3   r   
ValueErrorremover  )r   r  replacepreviouss       r   appendNamespace.append  sW    ::>>$)), T!DEEKK!

4 $

499r    c                    [        U[        5      (       a  U R                  UR                  	 O9[        U[        5      (       a$  UR
                  b  U R                  UR
                  	 [        US5      (       a  U R                  UR                  	 [        U[        5      (       a  U R                  UR                  	 S Ul        U R                  R                  UR                  S 5        g )Nr   )r   r  r   r   r  r   r2   r  r   r   r  r   r  r   r   popr   r  s     r   r  Namespace.remove  s    dE""TYY'j))doo.I04!!DJJ'dH%%T[[)

tyy$'r    c                     [        U[        5      (       a  UR                  nU R                  U5        XR                  W'   Xl        g)zLike remove(), but doesn't unset the node's namespace
back-reference, and it's still possible to look up
functions via get_by_symbol().N)r   r  r  r  r   r   )r   r  r  s      r   r   Namespace.float  s7     dH%%[[FD#Vr    c                 ,    [        U R                  5      $ r"   )iterr   r$   s    r   __iter__Namespace.__iter__  s    DJJr    c                 6    U R                   R                  5       $ r"   )r   itemsr$   s    r   r-  Namespace.items  s    zz!!r    c                 6    U R                   R                  5       $ r"   )r   valuesr$   s    r   r0  Namespace.values   s    zz  ""r    c                 8    U R                   R                  U5      $ r"   )r   r3   r   r   s     r   r3   Namespace.get#  s    zz~~d##r    c                 8    U R                   R                  U5      $ r"   )r   r3   )r   r   s     r   get_by_ctypeNamespace.get_by_ctype&  s    {{u%%r    c                 8    U R                   R                  U5      $ r"   )r   r3   r   r  s     r   get_by_symbolNamespace.get_by_symbol)  s    ||''r    c                 V    U R                  5        H  nUR                  U/ 5        M     g r"   )r0  walk)r   callbackr  s      r   r=  Namespace.walk,  s     KKMDIIh# "r    )r   r   r   r   r   r   r   r   r   r   r   r   r   r2   r   NNr"   )F)r   r   r   r   r   r   r  r   r  r   r*  r-  r0  r3   r6  r:  r=  r   r   r    r   r   r     sD    $47%+N%
( "#$&($r    r   c                   `    \ rS rSrS r\S 5       rS rS rS r	S r
S rS	 rS
 rS rS rSrg)Includei1  c                     Xl         X l        g r"   r   r   )r   r   r   s      r   r   Include.__init__3  s    	r    c                 ,    U " UR                  SS5      6 $ )N-r   )r@   )r:   strings     r   from_stringInclude.from_string7  s    FLLa())r    c                 l    U" U R                   U R                  4UR                   UR                  45      $ r"   rD  rD   s      r   rG   Include._compare;  s)    499dll+ejj%---HIIr    c                 B    U R                  U[        R                  5      $ r"   rJ   rM   s     r   rN   Include.__lt__>  rP   r    c                 B    U R                  U[        R                  5      $ r"   rR   rM   s     r   rT   Include.__gt__A  rP   r    c                 B    U R                  U[        R                  5      $ r"   rW   rM   s     r   rY   Include.__ge__D  rP   r    c                 B    U R                  U[        R                  5      $ r"   r\   rM   s     r   r^   Include.__le__G  rP   r    c                 B    U R                  U[        R                  5      $ r"   ra   rM   s     r   rc   Include.__eq__J  rP   r    c                 B    U R                  U[        R                  5      $ r"   rf   rM   s     r   rh   Include.__ne__M  rP   r    c                 *    [        [        U 5      5      $ r"   )rk   strr$   s    r   rl   Include.__hash__P  s    CIr    c                 <    U R                   < SU R                  < 3$ )NrG  rD  r$   s    r   rx   Include.__str__S  s    ))T\\22r    rD  N)r   r   r   r   r   r   rI  rG   rN   rT   rY   r^   rc   rh   rl   rx   r   r   r    r   rB  rB  1  sI     * *J1111113r    rB  c                       \ rS rSrSrS rSrg)	AnnotatediW  z6An object which has a few generic metadata
properties.c                     S U l         S U l        SU l        SU l        [	        5       U l        S U l        S U l        S U l        S U l	        S U l
        S U l        g )NFT)r   version_docskipintrospectabler   
attributes	stabilitystability_doc
deprecateddeprecated_docdocdoc_positionr$   s    r   r   Annotated.__init__Z  sV    	"%-!" r    )rd  rg  rh  ri  rj  rc  rb  re  rf  r   ra  Nr   r   r   r   r   r   r   r   r    r   r_  r_  W  s    !r    r_  c                       \ rS rSrSr\" S 5      r\" S 5      rSS jrS r	S r
\" \	\
5      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S rS rS rS rSrg)r   ih  zA node is a type of object which is uniquely identified by its
(namespace, name) pair.  When combined with a ., this is called a
GIName.  It's possible for nodes to contain or point to other nodes.c                     U R                   (       a#  U R                   R                  U R                  -   $ U R                  $ r"   r   r   r$   s    r   <lambda>Node.<lambda>m  s.    dnn4>>#6#6#B $ ii$ r    c                 P    U R                   R                  < SU R                  < 3$ r   ro  r$   s    r   rp  rq  o  s    t~~/B/BDII$Nr    Nc                     [         R                  U 5        S U l        Xl        SU l        [        5       U l        S U l        g NF)r_  r   r   r   foreignr   file_positions_parentr3  s     r   r   Node.__init__q  s4    4 	!er    c                 L    U R                   b  U R                   $ U R                  $ r"   )rw  r   r$   s    r   _get_parentNode._get_parenty  s     <<#<<>>!r    c                     Xl         g r"   )rw  r   values     r   _set_parentNode._set_parent  s    r    c                 |    U R                   c   e[        U R                   R                  < SU R                  < 3S9$ )z+Create a Type object referencing this node.r   )r   )r   r   r   r$   s    r   create_typeNode.create_type  s0    ~~)))dnn.A.A499#MOOr    c                 l    U" U R                   U R                  4UR                   UR                  45      $ r"   ro  rD   s      r   rG   Node._compare  s)    4>>499-/LMMr    c                 B    U R                  U[        R                  5      $ r"   rJ   rM   s     r   rN   Node.__lt__  rP   r    c                 B    U R                  U[        R                  5      $ r"   rR   rM   s     r   rT   Node.__gt__  rP   r    c                 B    U R                  U[        R                  5      $ r"   rW   rM   s     r   rY   Node.__ge__  rP   r    c                 B    U R                  U[        R                  5      $ r"   r\   rM   s     r   r^   Node.__le__  rP   r    c                 B    U R                  U[        R                  5      $ r"   ra   rM   s     r   rc   Node.__eq__  rP   r    c                 B    U R                  U[        R                  5      $ r"   rf   rM   s     r   rh   Node.__ne__  rP   r    c                 D    [        U R                  U R                  45      $ r"   )rk   r   r   r$   s    r   rl   Node.__hash__  s    T^^TYY/00r    c                 R    U R                   R                  < SU R                  < S3$ Nz('z')r~   r   r   r$   s    r   r   Node.__repr__      !^^44dii@@r    c                 N    U R                   R                  UR                   5        g r"   )rv  updater$  s     r   inherit_file_positionsNode.inherit_file_positions  s    ""4#6#67r    c                 :    U R                   R                  U5        g r"   )rv  add)r   positions     r   add_file_positionNode.add_file_position  s    )r    c                     U R                   (       d  g S nU R                    H  nUR                  (       a  UnM  Us  $    U$ r"   )rv  
is_typedef)r   resr  s      r   get_main_positionNode.get_main_position  s=    ""++H""	 , 
r    c           	          UR                   (       aF  U R                  [        UR                   UR                  UR                  [
        [        4;   S95        g g )N)r  )source_filenamer  r   linetyper   r   r9  s     r   add_symbol_referenceNode.add_symbol_reference  sG    !!""8F,B,BFKK!;;=:N*OO$Q R "r    c                     U" X5      nUS;   d   SU< 35       eU(       d  gUR                   " U 5        U R                  X5        UR                  " 5         g )N)TFz'Walk function must return boolean, not F)r   _walkr#  )r   r>  r   r  s       r   r=  	Node.walk  sJ    t#m#ZTW%ZZ#T

8#		r    c                     g r"   r   )r   r>  r   s      r   r  
Node._walk  s    r    )rw  rv  ru  r   r   r"   )r   r   r   r   r   r   c_namegi_namer   rz  r  parentr  rG   rN   rT   rY   r^   rc   rh   rl   r   r  r  r  r  r=  r  r   r   r    r   r   r   h  s    H    !FNOG"k;/FP
N1111111A8*R
r    r   c                       \ rS rSrSS jrSrg)
DocSectioni  Nc                 .    [         R                  X5        g r"   )r   r   r3  s     r   r   DocSection.__init__  s    d!r    r   r"   r   r   r    r   r  r    s    "r    r  c                       \ rS rSrSrS rSrg)r  i  z3A node that (possibly) has gtype_name and get_type.c                 8    Uc  Ub  Ub  Uc   eXl         X l        g r"   )r   get_typer   r   r  s      r   r   Registered.__init__  s.    "x'7&8+?	A A$ r    )r  r   Nrl  r   r    r   r  r    s
    =!r    r  c                       \ rS rSrS rS rS r\" \\5      rS r	S r
\" \	\
5      rS rS r\" \\5      r\S	 5       rS
 rS rSrg)Callablei  c                     [         R                  X5        X l        X0l        U(       U l        S U l        S U l        S U l        S U l        S U l	        g r"   )
r   r   retval
parametersthrowsinstance_parameterr  finish_func	sync_func
async_funcr   r   r  r  r  s        r   r   Callable.__init__  sF    d!$$*"&r    c                     U R                   $ r"   )_retvalr$   s    r   _get_retvalCallable._get_retval  s    ||r    c                 L    Xl         U R                   b  X R                   l        g g r"   )r  r  r}  s     r   _set_retvalCallable._set_retval  s     <<#"&LL $r    c                     U R                   $ r"   )_instance_parameterr$   s    r   _get_instance_parameter Callable._get_instance_parameter  s    '''r    c                 $    Xl         Ub  Xl        g g r"   )r  r  r}  s     r   _set_instance_parameter Callable._set_instance_parameter  s    #( L r    c                     U R                   $ r"   )_parametersr$   s    r   _get_parametersCallable._get_parameters  s    r    c                 B    Xl         U R                    H	  nXl        M     g r"   )r  r  )r   r~  params      r   _set_parametersCallable._set_parameters  s     %%EL &r    c                 h    U R                   b  U R                   /U R                  -   $ U R                  $ r"   )r  r  r$   s    r   all_parametersCallable.all_parameters   s0    "".++,t>>??"r    c                     [        U R                  5       H  u  p#UR                  U:X  d  M  Us  $    [        SU< 35      eNzUnknown argument )	enumerater  argnamer  )r   r   i	parameters       r   get_parameter_indexCallable.get_parameter_index  s:    %doo6LA  D( 7 $9::r    c                 n    U R                    H  nUR                  U:X  d  M  Us  $    [        SU< 35      er  )r  r  r  )r   r   r  s      r   get_parameterCallable.get_parameter  s6    ,,I  D(   - $9::r    )r  r  r  r  r  r  r  r  r  r  r  N)r   r   r   r   r   r  r  r   r  r  r  r  r  r  r  r  r  r  r   r   r    r   r  r    sr    	' k;/F(  ""9"9;   /?;J # #;;r    r  c                       \ rS rSrS rSrg)FunctionMacroi  c                 T    [         R                  X5        X0l        X l        SU l        g rt  )r   r   r  r  rc  )r   r   r  r  s       r   r   FunctionMacro.__init__  s     d!$#r    )rc  r  r  Nr   r   r    r   r  r    s    $r    r  c                   &    \ rS rSrS rS rS rSrg)r  i  c                     [         R                  XX#U5        XPl        SU l        SU l        S U l        S U l        S U l        SU l        S U l	        S U l
        SU l        g rt  )r  r   r  	is_methodis_constructorshadowed_byshadowsmoved_tointernal_skippedset_propertyget_property	is_inline)r   r   r  r  r  r  s         r   r   Function.__init__  s]    $f&A# %  r    c                     [         R                   " U 5      nU R                  S S  Ul        UR                   H	  nXl        M     U$ r"   )copyr  r  )r   r9   r  s      r   r9   Function.clone+  s<    		$  ??1-%%E L &r    c                 h   U R                   R                  S5      (       d!  U R                   R                  S5      (       d  gU R                  (       a  gU R                  R                  nUR                  [        5      (       d/  UR                  S:w  a  [        SU R                   < SU< S35        gg)	N	_get_type
_get_gtypeFzGtk.Typez
function 'z' returns 'z', not a GTypeT)	r   endswithr  r  r  rq   
TYPE_GTYPEr   r	   )r   rettypes     r   is_type_meta_functionFunction.is_type_meta_function4  s    		"";//4993E3El3S3S ?? ++""  ,,1F1F*1TdiiQRr    )
r  r  r  r  r  r  r  r  r  r  N)r   r   r   r   r   r9   r  r   r   r    r   r  r    s    r    r  c                       \ rS rSrS rSrg)ErrorQuarkFunctioniF  c                 >    [         R                  XX#XE5        X`l        g r"   )r  r   error_domain)r   r   r  r  r  r  r  s          r   r   ErrorQuarkFunction.__init__H  s    $f&I(r    )r  Nr   r   r    r   r
  r
  F  s    )r    r
  c                   *    \ rS rSrS r\S 5       rSrg)	VFunctioniM  c                 @    [         R                  XX#U5        S U l        g r"   )r  r   invokerr  s        r   r   VFunction.__init__O  s    $f&Ar    c                 \    U " XR                   UR                  SS  UR                  5      nU$ )Nr   )r  r  r  )r:   r   cbobjs       r   from_callbackVFunction.from_callbackS  s+    $		2==#4))
r    )r  N)r   r   r   r   r   r   r  r   r   r    r   r  r  M  s      r    r  c                       \ rS rSrS rSrg)VarargsiZ  c                 .    [         R                  U SSS9  g )Nz	<varargs>)r   r   r$   s    r   r   Varargs.__init__\  s    dKKHr    r   Nr   r   r    r   r  r  Z  s    Ir    r  c                   0    \ rS rSrSrSrSrSrS rS r	Sr
g	)
r6   i`  z<c>z
GLib.Arrayr.   zGLib.PtrArrayc                 H   [         R                  " U 4SS0UD6  Ub  XR                  :X  a  U R                  U l        O3XR                  U R
                  U R                  4;   d   U5       eXl        [        U[         5      (       d   eX l        SU l	        S U l
        S U l        g )Nr   z<array>T)r   r   C
array_type
GLIB_ARRAYGLIB_BYTEARRAYGLIB_PTRARRAYr   element_typezeroterminatedlength_param_namesize)r   r  r#  kwargss       r   r   Array.__init__f  s    d 	 y 	 	 *"6"ffDO//"&"5"5"&"4"4"6 6 B7AB 6 )O,----("!%	r    c                     [        U R                  U R                  5      nU R                  Ul        U R                  Ul        U R
                  Ul        U$ r"   )r6   r  r#  r$  r%  r&  )r   arrs     r   r9   Array.clonev  sD    DOOT%6%67!00 $ 6 699
r    )r  r#  r%  r&  r$  N)r   r   r   r   r  r   r!  r"  r   r9   r   r   r    r   r6   r6   `  s     AJ%N#M r    r6   c                        \ rS rSrS rS rSrg)Listi~  c                 |    [         R                  " U 4SS0UD6  Xl        [        U[         5      (       d   eX l        g )Nr   z<list>)r   r   r   r   r#  )r   r   r#  r'  s       r   r   List.__init__  s=    d 	 x 	 	 	,----(r    c                 B    [        U R                  U R                  5      $ r"   )r-  r   r#  r$   s    r   r9   
List.clone  s    DIIt0011r    )r#  r   Nr   r   r   r   r   r9   r   r   r    r   r-  r-  ~  s    )2r    r-  c                        \ rS rSrS rS rSrg)r4   i  c                     [         R                  " U 4SS0UD6  [        U[         5      (       d   eXl        [        U[         5      (       d   eX l        g )Nr   z<map>)r   r   r   key_type
value_type)r   r5  r6  r'  s       r   r   Map.__init__  sH    dAwA&A(D)))) *d++++$r    c                 B    [        U R                  U R                  5      $ r"   )r4   r5  r6  r$   s    r   r9   	Map.clone  s    4==$//22r    )r5  r6  Nr2  r   r    r   r4   r4     s    %3r    r4   c                       \ rS rSrSS jrSrg)r  i  Nc                 F    [         R                  X5        X l        X0l        g r"   )r   r   r   r   )r   r   r   r   s       r   r   Alias.__init__  s    d!
r    )r   r   r"   r   r   r    r   r  r    s    r    r  c                       \ rS rSrSrS rSrg)TypeContaineri  z2A fundamental base class for Return and Parameter.c                     [         R                  U 5        Xl        X l        X0l        XPl        Ub  X@l        g U(       a  UR                  (       a  [        U l        g S U l        g r"   )	r_  r   r  nullablenot_nullable	directiontransferr   PARAM_TRANSFER_NONE)r   typenoder@  rA  rC  rB  s         r   r   TypeContainer.__init__  sI    4 	 ("$M(++/DM DMr    )rB  rA  r@  rC  r  Nrl  r   r    r   r>  r>    s
    <!r    r>  c                   :    \ rS rSrSr    SS jr\S 5       rSrg)	Parameteri  zAn argument to a function.Nc                     [         R                  XXZXC5        Xl        X`l        S U l        U(       a#  U R
                  [        :X  a  SU l        OSU l        Xl        Xl	        S U l
        S U l        g )NT)r>  r   r  optionalr  rB  PARAM_DIRECTION_OUTr@  scopecaller_allocatesclosure_namedestroy_name)r   r  rE  rB  rC  r@  rJ  
allow_nonerL  rM  rA  s              r   r   Parameter.__init__  sc     	tx'	4 ~~!44 $ $
 0  r    c                     U R                   $ r"   )r  r$   s    r   r   Parameter.name  s    ||r    )r  rM  rN  rO  r@  rJ  r  rL  )NNFFFNFF)	r   r   r   r   r   r   r   r   r   r   r    r   rH  rH    s*    $489>)-6;!*  r    rH  c                   &    \ rS rSrSr  SS jrSrg)Returni  zA return value from a function.Nc           	      F    [         R                  XX#U[        S9  S U l        g )N)rB  )r>  r   rK  r  )r   rtyper@  rA  rC  s        r   r   Return.__init__  s%    tHH)< 	 	>r    )r  )FFNrl  r   r    r   rU  rU    s    );@r    rU  c                   ,    \ rS rSr    SS jrS rSrg)r  i  Nc                     [         R                  X5        [        R                  XU5        XPl        X l        X`l        U H	  nXl        M     S U l        / U l        g r"   )	r   r   r  c_symbol_prefixr   r  r  r  r  )r   r   r   r   r  r[  r  r  s           r   r   Enum.__init__  sQ    
 	d!Dh7.
F M  ! r    c                 L    U R                    H  nUR                  X5        M     g r"   r  r=  r   r>  r   meths       r   r  
Enum._walk      ''DIIh& (r    )r[  r   r  r  r  NNNNr   r   r   r   r   r  r   r   r    r   r  r    s     !!%	! 'r    r  c                   ,    \ rS rSr    SS jrS rSrg)r  i  Nc                     [         R                  X5        [        R                  XU5        X l        X@l        X`l        U H	  nXl        M     / U l        g r"   )r   r   r  r   r[  r  r  r  )r   r   r   r   r[  r  r  r  s           r   r   Bitfield.__init__  sG    
 	d!Dh7
.F M  r    c                 L    U R                    H  nUR                  X5        M     g r"   r^  r_  s       r   r  Bitfield._walk  rb  r    )r[  r   r  r  rc  rd  r   r    r   r  r    s     !!%	!'r    r  c                   T    \ rS 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g)Memberi  Nc                 x    [         R                  U 5        Xl        X l        X0l        X@l        XPl        S U l        g r"   )r_  r   r   r~  r  nick	dump_namer  )r   r   r~  r  rm  rn  s         r   r   Member.__init__  s0    4 	
	"r    c                 <    U" U R                   UR                   5      $ r"   r   rD   s      r   rG   Member._compare      $))UZZ((r    c                 B    U R                  U[        R                  5      $ r"   rJ   rM   s     r   rN   Member.__lt__  rP   r    c                 B    U R                  U[        R                  5      $ r"   rR   rM   s     r   rT   Member.__gt__  rP   r    c                 B    U R                  U[        R                  5      $ r"   rW   rM   s     r   rY   Member.__ge__  rP   r    c                 B    U R                  U[        R                  5      $ r"   r\   rM   s     r   r^   Member.__le__  rP   r    c                 B    U R                  U[        R                  5      $ r"   ra   rM   s     r   rc   Member.__eq__  rP   r    c                 B    U R                  U[        R                  5      $ r"   rf   rM   s     r   rh   Member.__ne__!  rP   r    c                 ,    [        U R                  5      $ r"   rk   r   r$   s    r   rl   Member.__hash__$      DIIr    c                 R    U R                   R                  < SU R                  < S3$ r  r  r$   s    r   r   Member.__repr__'  r  r    )rn  r   rm  r  r  r~  r@  r   r   r   r   r   rG   rN   rT   rY   r^   rc   rh   rl   r   r   r   r    r   rk  rk    s5    )111111Ar    rk  c                   F    \ rS rSr        S	S jrS rS rS rS rSr	g)
r  i+  Nc
                     [         R                  X5        [        R                  XU5        X l        / U l        / U l        / U l        / U l        X`l        Xpl	        Xl
        X0l        X@l        XPl        Xl        g r"   )r   r   r  r   r
  r  r  r  	disguisedopaquepointerr   r  r[  tag_name
r   r   r   r   r  r[  r  r  r  r  s
             r   r   Compound.__init__,  sg     	d!Dh7
 "$ . r    c                 L    Xl         X l        X R                  R                  U'   g r"   )r   r  r   r2   r  s      r   	add_gtypeCompound.add_gtypeD  s    $ 04!!*-r    c                 V   U R                    H  nUR                  X5        M     U R                   H  nUR                  X5        M     U R                   H  nUR                  X5        M     U R                   H-  nUR
                  c  M  UR
                  R                  X5        M/     g r"   )r  r=  r
  r  r  anonymous_node)r   r>  r   ctorfuncfields         r   r  Compound._walkI  s    %%DIIh& &LLDIIh& !''DIIh& ([[E##/$$))(: !r    c                 n    U R                    H  nUR                  U:X  d  M  Us  $    [        SU< 35      eNzUnknown field )r  r   r  )r   r   r  s      r   	get_fieldCompound.get_fieldT  s1    [[EzzT! ! t677r    c                     [        U R                  5       H  u  p#UR                  U:X  d  M  Us  $    [        SU< 35      er  )r  r  r   r  )r   r   r  r  s       r   get_field_indexCompound.get_field_indexZ  s8    !$++.HAzzT! / t677r    )r[  r  r   r  r  r  r   r
  r  r  r  r  NNNNFFFN)
r   r   r   r   r   r  r  r  r  r   r   r    r   r  r  +  s3     !% !05
	;88r    r  c                   X    \ rS 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g)Fieldia  Nc                     [         R                  U 5        U(       d	  U(       d   eXl        X l        X0l        X@l        XPl        X`l        SU l        S U l	        S U l
        g rt  )r_  r   r   r  readablewritablebitsr  privater   r  )r   r   rE  r  r  r  r  s          r   r   Field.__init__c  sO    4 N+*		  	,r    c                 <    U" U R                   UR                   5      $ r"   rq  rD   s      r   rG   Field._compareq  rs  r    c                 B    U R                  U[        R                  5      $ r"   rJ   rM   s     r   rN   Field.__lt__t  rP   r    c                 B    U R                  U[        R                  5      $ r"   rR   rM   s     r   rT   Field.__gt__w  rP   r    c                 B    U R                  U[        R                  5      $ r"   rW   rM   s     r   rY   Field.__ge__z  rP   r    c                 B    U R                  U[        R                  5      $ r"   r\   rM   s     r   r^   Field.__le__}  rP   r    c                 B    U R                  U[        R                  5      $ r"   ra   rM   s     r   rc   Field.__eq__  rP   r    c                 B    U R                  U[        R                  5      $ r"   rf   rM   s     r   rh   Field.__ne__  rP   r    c                 ,    [        U R                  5      $ r"   r  r$   s    r   rl   Field.__hash__  r  r    c                 R    U R                   R                  < SU R                  < S3$ r  r  r$   s    r   r   Field.__repr__  r  r    )	r  r  r   r   r  r  r  r  r  r@  r  r   r    r   r  r  a  s;    @D $)111111Ar    r  c                   .    \ rS rSr        SS jrSrg)Recordi  Nc
                 d    [         R                  XUUUUUUUU	S9
  S U l        S U l        S U l        g N)r   r   r  r[  r  r  r  r  )r  r   is_gtype_struct_for	copy_func	free_funcr  s
             r   r   Record.__init__  sM     	$ %%/#+*9$-!'")#+ 	 	- $(   r    )r  r  r  r  r   r   r    r   r  r    s!      !% r    r  c                   .    \ rS rSr        SS jrSrg)Unioni  Nc
                 V    [         R                  XUUUUUUUU	S9
  S U l        S U l        g r  )r  r   r  r  r  s
             r   r   Union.__init__  sC     	$ %%/#+*9$-!'")#+ 	 	-  r    )r  r  r  r   r   r    r   r  r    s!      !% r    r  c                   .    \ rS rSrSr   SS jrS rSrg)r  i  z6A boxed type with no known associated structure/union.Nc                     Uc   eUc   e[         R                  X5        [        R                  XU5        Ub  Uc   eX@l        / U l        / U l        / U l        g r"   r   r   r  r[  r  r
  r  r   r   r   r  r[  s        r   r   Boxed.__init__  g     %%%###d!Dh7".... r    c                     U R                    H  nUR                  X5        M     U R                   H  nUR                  X5        M     U R                   H  nUR                  X5        M     g r"   r  r=  r
  r  r   r>  r   r  r`  s        r   r  Boxed._walk  T    %%DIIh& &LLDIIh& !''DIIh& (r    r[  r  r
  r  NNNr   r   r   r   r   r   r  r   r   r    r   r  r    s    @ !%!'r    r  c                   .    \ rS rSrSr   SS jrS rSrg)r	  i  z8A pointer type with no known associated structure/union.Nc                     Uc   eUc   e[         R                  X5        [        R                  XU5        Ub  Uc   eX@l        / U l        / U l        / U l        g r"   r  r  s        r   r   Pointer.__init__  r  r    c                     U R                    H  nUR                  X5        M     U R                   H  nUR                  X5        M     U R                   H  nUR                  X5        M     g r"   r  r  s        r   r  Pointer._walk  r  r    r  r  r  r   r    r   r	  r	    s    B !%!'r    r	  c                   $    \ rS rSr   SS jrSrg)Signali  Nc	                 |    [         R                  XX#S5        X@l        XPl        X`l        Xpl        Xl        S U l        g rt  )r  r   when
no_recursedetailedactionno_hooksemitter)	r   r   r  r  r  r  r  r  r  s	            r   r   Signal.__init__  s6     	$f%@	$  r    )r  r  r  r  r  r  )NFFFFr   r   r    r   r  r    s    6::?	r    r  c                   0    \ rS rSr      SS jrS rSrg)r  i
  Nc	                 h   [         R                  X5        [        R                  XU5        X0l        X`l        X l        SU l        S U l        S U l        S U l	        S U l
        / U l        S U l        Xpl        Xl        / U l        / U l        / U l        / U l        / U l        / U l        / U l        / U l        g rt  )r   r   r  r   r[  parent_typer;   
unref_funcref_funcset_value_funcget_value_funcparent_chainglib_type_structis_abstractis_finalr
  virtual_methodsr  
interfacesr  r  r  r  )	r   r   r  r   r   r  r[  r  r  s	            r   r   Class.__init__  s     	d!Dh7
.& ""  $& ! r    c                 6   U R                    H  nUR                  X5        M     U R                   H  nUR                  X5        M     U R                   H  nUR                  X5        M     U R                   H  nUR                  X5        M     U R
                   H1  nUR                  (       d  M  UR                  R                  X5        M3     U R                   H  nUR                  X5        M     U R                   H  nUR                  X5        M     g r"   )	r
  r=  r  r  r  r  r  r  r  )r   r>  r   r`  r  r  sigprops           r   r  Class._walk-  s    LLDIIh& !((DIIh& )''DIIh& (%%DIIh& &[[E###$$))(: ! <<CHHX%  OODIIh& $r    )r[  r  r   r  r;   r  r  r  r  r  r
  r  r  r  r  r  r  r  r  r  )NNNNFFrd  r   r    r   r  r  
  s!      !%"B'r    r  c                   ,    \ rS rSr    SS jrS rSrg)r  i?  Nc                 
   [         R                  X5        [        R                  XU5        X0l        X`l        X l        / U l        / U l        / U l        / U l	        / U l
        S U l        / U l        / U l        / U l        / U l        g r"   )r   r   r  r   r[  r  r  r
  r  r  r  r  r  r  prerequisitesr  )r   r   r  r   r   r  r[  s          r   r   Interface.__init__A  s    
 	d!Dh7
.& ! $ r    c                    U R                    H  nUR                  X5        M     U R                   H  nUR                  X5        M     U R                   H  nUR                  X5        M     U R                   H1  nUR
                  (       d  M  UR
                  R                  X5        M3     U R                   H  nUR                  X5        M     g r"   )r
  r=  r  r  r  r  r  )r   r>  r   r`  r  r  s         r   r  Interface._walkX  s    LLDIIh& !''DIIh& (((DIIh& )[[E###$$))(: ! <<CHHX%  r    )r[  r  r   r  r  r
  r  r  r  r  r  r  r  rc  rd  r   r    r   r  r  ?  s      !%	.&r    r  c                       \ rS rSrS rSrg)Constantif  c                 R    [         R                  X5        X l        X0l        X@l        g r"   )r   r   r6  r~  r   )r   r   r6  r~  r   s        r   r   Constant.__init__h  s    d!$

r    )r   r~  r6  Nr   r   r    r   r  r  f  s    r    r  c                        \ rS rSr SS jrSrg)Propertyio  Nc                     [         R                  X5        X l        X0l        X@l        XPl        X`l        Uc  [        U l        OXpl        S U l	        S U l
        S U l        S U l        g r"   )r   r   r  r  r  	constructconstruct_onlyrD  rC  settergetterdefault_valuer  )r   r   typeobjr  r  r  r  rC  s           r   r   Property.__init__q  sW    d!	  ",/DM$M!r    )
r  r  r  r  r  r  r  rC  r  r  r"   r   r   r    r   r   r   o  s     6:r    r   c                       \ rS rSrSS jrSrg)Callbacki  Nc                 >    [         R                  XX#U5        XPl        g r"   )r  r   r   )r   r   r  r  r  r   s         r   r   Callback.__init__  s    $f&A
r    )r   r"   r   r   r    r   r
  r
    s    r    r
  )ur  rK   	itertoolsr   collectionsr   sourcescannerr   r   messager   r	   utilsr
   objectr   r   	TYPE_NONEr5   TYPE_BOOLEAN	TYPE_INT8r7   
TYPE_INT16TYPE_UINT16
TYPE_INT32TYPE_UINT32
TYPE_INT64TYPE_UINT64	TYPE_CHAR
TYPE_SHORTTYPE_USHORTTYPE_INT	TYPE_UINT	TYPE_LONG
TYPE_ULONG	TYPE_SIZE
TYPE_SSIZETYPE_INTPTRTYPE_UINTPTRTYPE_LONG_LONGTYPE_LONG_ULONG
TYPE_FLOATTYPE_DOUBLETYPE_LONG_DOUBLETYPE_UNICHARTYPE_TIME_T
TYPE_OFF_T
TYPE_DEV_T
TYPE_GID_T
TYPE_PID_TTYPE_SOCKLEN_T
TYPE_UID_Tr  r8   TYPE_FILENAMETYPE_VALISTBASIC_TYPESBASIC_GIR_TYPESextend	GIR_TYPESPOINTER_TYPESro   INTROSPECTABLE_BASICvr  r2   rr   r   basic_type_namesPARAM_DIRECTION_INrK  PARAM_DIRECTION_INOUTPARAM_SCOPE_CALLPARAM_SCOPE_ASYNCPARAM_SCOPE_NOTIFIEDPARAM_SCOPE_FOREVERrD  PARAM_TRANSFER_CONTAINERPARAM_TRANSFER_FULLSIGNAL_FIRSTSIGNAL_LASTSIGNAL_CLEANUPSIGNAL_MUST_COLLECTr   rB  r_  r   r  r  r  r  r  r
  r  r  r6   r-  r4   r  r>  rH  rU  r  r  rk  r  r  r  r  r  r	  r  r  r  r  r   r
  r   r    r   <module>rJ     s  ,    # > # !aN6 aNH2$ 2 F&9	:Z@zDG7;	XX>
XX>
iyAXX>
iyAXX>
iyAG7;	XX>
iyA68G7;	G7;	XX>
G7;	XX>
iyAzDKH*>13XX>
iyA=+- zDhh?WG<
WG<
WG<
WG<
KHWG<
 WG<
fH=
(CiyA!!! ! 	!
 ! ! ! ! ! ! ! ! ! ! !  !!" #!$ %!& '!( )!* +!, -!. /!0 1!2 3!4 5!6 7!8 9!: ;!< =!> ?!@ A!F -   { #!	 	   ! 	  +}k: ; ;5I 
A "
 
G-4Jw))*  G3:W//0  
6 %
= (
?  
7 '
> *
 
5 #
< #.
  
8 &
> "
: 
6 %
= (
? ",
  
7 "
8 !
7 
7 
6 !/
  
8 "
9 "
9 $
: "
9 $
: "
9 $
:  "
8 &
< "
8 "
9 %
; 
7 !
8 #
9 %
: &
? "
;  (
  
5 $
9 
6  
7  
7  "'*
8 "8,
9 $Z0
; #I.
: "
8  
7  
7  
7  
7  
7 (
;  
4       !   &  $ E$ E$P#3f #3L! !"]9 ]@" "
! !;;t ;;|$D $'x 'T) )
 
Id ID <
24 
2
3$ 
3D !I !" :] '4 '.'tZ '*$AY $AN38tZ 38l)AI )AXX >H 8'D* '4'dJ '4X 2'D* 2'j$&j $&Nt t (x r    