
    gi/                     x   d dl mZ d dlmZmZ d dlmZmZmZ ddl	m
Z
 ddlmZmZmZmZmZmZmZmZ dgZi ej*                  eej.                  eej2                  eej4                  eej6                  eej8                  eej:                  eej<                  eej>                  eej@                  e!ejD                  e!ejF                  eejH                  e%ejL                  e%ejN                  e%ejP                  e
Z)ejT                  ejV                  ejX                  hZ-ded	e.fd
Z/ded	efdZ0y)    )import_module)	Parameter	Signature)AnyCallableOptional   )GError)	VFuncInfoFunctionInfoCallableInfoCallbackInfo	DirectionGTypeTypeInfoTypeTaggenerate_signaturegi_typereturnc                    | j                         }t        j                  |      x}r|S |t        j                  k(  r| j                         rt        S y |t        v r;t        | j                  d            }|t        j                  u rt        S t        |   S |t        j                  k(  rit        | j                  d            }t        | j                  d            }|t        j                  u s|t        j                  u rt        S t        ||f   S |t        j                  k(  r| j!                         }t#        |t$              rPt'        |      }t(        |j*                  j-                         D cg c]  }|j.                   c}|j0                  f   S |j3                         }|s| j5                         S |j7                         }	t9        d|	       }
	 t;        |
|      S | j5                         S c c}w # t<        $ r
 |	 d| cY S w xY w)Nr   r	   zgi.repository..)get_tag
tag_pytypegetr   VOID
is_pointerr   list_tag_types
get_pytypeget_param_typer   emptylistGHASHdict	INTERFACEget_interface
isinstancer   r   r   
parametersvalues
annotationreturn_annotationget_nameget_tag_as_stringget_namespacer   getattrNotImplementedError)r   tagpytype
value_typekey_typeinfosigparam	info_nameinfo_namespacemodules              //usr/lib/python3/dist-packages/gi/_signature.pyr   r   =   s   
//
C$$v$
gllJ
n 6 6q 9:
(KJ
gmmg44Q78 6 6q 9:
y&*	*GKHj())
g$$&dL)$T*C/2~~/D/D/FGe!!G%%'  MMO	,,..++-/?@A	369-- ((** H # 	3$%Qyk22	3s   2G3G8 8H
Hr4   c           	         | j                         }|D ch c]  }|j                          c}fd}g }t        | t              r| j	                         r0|j                  t         |d      t        j                               n| j                         r|j                  t         |d      t        j                               nnt        | t              r^|j                  t         |d      t        j                               |j                  t         |d      t        j                               | j                         j                         h}t               }|D ]m  }|j                  |j                                |j                  |j                         j                                |j                  |j!                                o t#        |      D ]  \  }}|j%                         t&        j(                  k(  r(||v r-t        j*                  }t-        |j                               }	|j/                         s||v r&d }|	t        j*                  ur$|	t0        urt2        |	   }	n|j5                         rd}|j                  t        |j                         t        j                  ||	              t7        d t#        |      D        d	      }
t#        |      D ]L  \  }}||
k\  r nB|j8                  t        j*                  us*|j;                  t        j*                  	      ||<   N t-        | j                               }| j=                         r	t2        |   }g }t#        |      D ]  \  }}|j%                         t&        j>                  k(  r(||v r-t-        |j                               }	|j/                         r|	t        j*                  ur	t2        |	   }	|j                  |	        ||jA                  d|       tC        |      d
kD  rtD        tE        |         }ntC        |      d
k(  r|d   }tG        ||      S c c}w )Nc                 F    | v r
| dz  } | v r
j                  |        | S )N_)add)name	arg_namess    r:   uniquez"generate_signature.<locals>.uniquei   s/    iCKD id    clsselftype.)defaultr)   c              3   `   K   | ]&  \  }}|j                   t        j                  u s#| ( y w)N)rF   r   r    ).0ir6   s      r:   	<genexpr>z%generate_signature.<locals>.<genexpr>   s#     Sz5%--9??2RSs   $..r   )rF   r	   )r*   )$get_argumentsr+   r&   r   is_constructorappendr   POSITIONAL_OR_KEYWORD	is_methodr   get_return_typeget_array_length_indexsetr>   get_destroy_indexget_type_infoget_closure_index	enumerateget_directionr   OUTr    r   may_be_nullr   r   is_optionalmaxrF   replacemay_return_nullINinsertlentupler   )r4   argsargrA   paramsignore_indicesuser_data_indicesrI   rF   r)   last_requiredr6   r*   out_argsr@   s                 @r:   r   r   e   s   D+/0C0I F$% MM)F5M93R3RST^^MM)F6NI4S4STU	D)	$iv	0O0OPQiv	0O0OPQ **,CCEFN 7300233,,.EEGHc33567
 D/ 
3)--/// 1 1 34
??%6 6G0Zs5J%j1
__G//%		
#
6 SYv.SM f% ?5==	/ioo>F1I	? #4#7#7#9:$%67HD/ $3),,. 1 1 34
??9??!B!*-J
#$ $,-
8}q!%/2	X!	$QKV/@AAm 1s   QN)1	importlibr   inspectr   r   typingr   r   r   _errorr
   _gir   r   r   r   r   r   r   r   __all__BOOLEANboolINT8intUINT8INT16UINT16INT32UINT32INT64UINT64FLOATfloatDOUBLEGTYPEUTF8strFILENAMEUNICHARERRORr   GLISTGSLISTARRAYr   objectr   r    rB   r:   <module>r      s{  ( $ ( * * 	 	 	  
 OOTLL# MM3 MM3	
 NNC MM3 NNC MM3 NNC MM5 NNE MM5 LL# c OOS  MM6!
& --?%+ %+V %+PXB\ XBi XBrB   