ÿØÿà JFIF      ÿÛ C      

!"$"$ÿÛ C  ÿÂ p " ÿÄ              ÿÄ             ÿÚ    ÕÔË®
(%	aA*‚XYD¡(J„¡E¢RE,P€XYae )(E¤²€B¤R¥	BQ¤¢ X«)X…€¤   @  

  ..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ C      

!"$"$ÿÛ C  ÿÂ p " ÿÄ              ÿÄ             ÿÚ    ÕÔË®
(%	aA*‚XYD¡(J„¡E¢RE,P€XYae )(E¤²€B¤R¥	BQ¤¢ X«)X…€¤   @  

  ..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     o
    b]                      @   s  d dl mZmZmZmZmZmZmZ dadd Z	dd Z
dd Zi ejeejeejeejeejeejeejeejeejeejeejeejeejeejeejeej e!ej"e!ej#e!ej$dej%dej&dej'diZ(d	d
 Z)dd Z*dd Z+dd Z,e	e, dS )   )	VFuncInfoFunctionInfoCallableInfo
ObjectInfo
StructInfo	DirectionTypeTagNc                 C   s   | a dS )zSet doc string generator function

    :param callable func:
        Callable which takes a GIInfoStruct and returns documentation for it.
    N_generate_doc_string_func)func r   ./usr/lib/python3/dist-packages/gi/docstring.pyset_doc_string_generator%   s   r   c                   C   s   t S )z6Returns the currently registered doc string generator.r	   r   r   r   r   get_doc_string_generator/   s   r   c                 C   s   t | S )aE  Generate a doc string given a GIInfoStruct.

    :param gi.types.BaseInfo info:
        GI info instance to generate documentation for.
    :returns:
        Generated documentation as a string.
    :rtype: str

    This passes the info struct to the currently registered doc string
    generator and returns the result.
    r	   infor   r   r   generate_doc_string4   s   r   c                 C   sf   |   }t|d }|rt|dr|jS |tjkr/|  }| }|s'| 	 S d|
 |f S | 	 S )N__name__z%s.%s)Zget_tag_type_tag_to_py_typegethasattrr   r   	INTERFACEZget_interfaceget_nameZget_tag_as_stringZget_namespace)Zgi_typeZtype_tagZpy_typeZifaceZ	info_namer   r   r   _get_pytype_hint\   s   
r   c                 C   s  g }t | trdg}nt | tr|  rdg}|  }d}t }t }|D ]}||  || 	  ||
  q%t|D ]?\}}| tjkrOqC||v rTqC| }t| }	|	|vrh|d|	 7 }| sp||v ru|d7 }n| r}|d7 }|| qCd|}
g }t|  }|  s|r||vr|}|  r|d7 }|| t|D ]*\}}| tjkrq||v rq| }t| }	|	|vr|d|	 7 }|| q|rd| j|
d|f S d	| j|
f S )
Nself)Zvoid:z=Nonez=<optional>z, z or Nonez%s(%s) -> %sz%s(%s))
isinstancer   r   Z	is_methodZget_argumentssetaddZget_destroyZget_typeZget_array_lengthZget_closure	enumerateZget_directionr   ZOUTr   r   Zmay_be_nullZis_optionalappendjoinZget_return_typeZskip_returnZmay_return_nullINr   )r   Zin_args_strsargsZhint_blacklistZignore_indicesZuser_data_indicesargiZargstrZhintZin_args_strZout_args_strsZreturn_hintr   r   r   _generate_callable_info_docn   sb   




r&   c                 C   s   d}d}t | tr|  dkr|d|   d 7 }n
|d|   d 7 }|  D ]}| r8|dt| d 7 }q(|r?|| S dS )Nz
:Constructors:

::

     z    z()
z(**properties)

)r   r   Zget_sizer   Zget_methodsZis_constructorr&   )r   headerdocZmethod_infor   r   r   _generate_class_info_doc   s   
r,   c                 C   s,   t | ttfrt| S t | trt| S dS )Nr'   )r   r   r   r,   r   r&   r   r   r   r   _generate_doc_dispatch   s
   
r-   )-Z_gir   r   r   r   r   r   r   r
   r   r   r   ZBOOLEANboolZINT8intZUINT8ZINT16ZUINT16ZINT32ZUINT32ZINT64ZUINT64ZFLOATfloatZDOUBLEZGLISTlistZGSLISTZARRAYZGHASHdictZUTF8strZFILENAMEZUNICHARr   ZGTYPEZERRORZVOIDr   r   r&   r,   r-   r   r   r   r   <module>   sb   $

	
@
