3 ‰å<_ ã,@sôddlmZmZmZmZmZmZmZdadd„Z dd„Z dd„Z ej e ejeejeejeejeejeejeejeejeejeejeejeejeejeejeej e!ej"e!ej#e!ej$dej%dej&dej'diZ(d d „Z)d d „Z*d d„Z+dd„Z,e e,ƒdS)é)Ú VFuncInfoÚ FunctionInfoÚ CallableInfoÚ ObjectInfoÚ StructInfoÚ DirectionÚTypeTagNcCs|adS)z�Set 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/lib64/python3.6/docstring.pyÚset_doc_string_generator%sr cCstS)z6Returns the currently registered doc string generator.)r r r r r Úget_doc_string_generator/srcCst|ƒS)aEGenerate 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_string4s rcCsf|jƒ}tj|dƒ}|r(t|dƒr(|jS|tjkr^|jƒ}|jƒ}|sN|j ƒSd|j ƒ|fS|j ƒS)NÚ__name__z%s.%s) Zget_tagÚ_type_tag_to_py_typeÚgetÚhasattrrrÚ INTERFACEZ get_interfaceÚget_nameZget_tag_as_stringZ get_namespace)Zgi_typeZtype_tagZpy_typeZifaceZ info_namer r r Ú_get_pytype_hint\s  rc Csg}t|tƒrdg}nt|tƒr.|jƒr.dg}|jƒ}d }tƒ}tƒ}x:|D]2}|j|jƒƒ|j|jƒj ƒƒ|j|j ƒƒqLWxŒt |ƒD]€\}}|j ƒt jkr¤qŒ||kr®qŒ|jƒ}t|jƒƒ} | |krÖ|d| 7}|jƒsæ||krð|d7}n|jƒ�r|d7}|j|ƒqŒWdj|ƒ} g} t|jƒƒ} |jƒ �rf| �rf| |k�rf| }|jƒ�r\|d7}| j|ƒxlt |ƒD]`\}}|j ƒt jk�rŒ�qp||k�rš�qp|jƒ}t|jƒƒ} | |k�rÄ|d| 7}| j|ƒ�qpW| �rðd|j| dj| ƒfSd |j| fSdS) NÚselfÚvoidú:z=Nonez =z, z or Nonez %s(%s) -> %sz%s(%s))r)Ú isinstancerrZ is_methodZ get_argumentsÚsetÚaddZ get_destroyZget_typeZget_array_lengthZ get_closureÚ enumerateZ get_directionrZOUTrrZ may_be_nullZ is_optionalÚappendÚjoinZget_return_typeZ skip_returnZmay_return_nullÚINr) rZ in_args_strsÚargsZhint_blacklistZignore_indicesZuser_data_indicesÚargÚiZargstrZhintZ in_args_strZ out_args_strsZ return_hintr r r Ú_generate_callable_info_docnsb               r%cCsŠd}d}t|tƒr4|jƒdkrH|d|jƒd7}n|d|jƒd7}x,|jƒD] }|jƒrR|dt|ƒd7}qRW|r‚||SdSdS)Nz :Constructors: :: Úéz z() z(**properties) Ú )rrZget_sizerZ get_methodsZis_constructorr%)rÚheaderÚdocZ method_infor r r Ú_generate_class_info_doc®s  r+cCs,t|ttfƒrt|ƒSt|tƒr(t|ƒSdS)Nr&)rrrr+rr%)rr r r Ú_generate_doc_dispatchÃs  r,)-Z_girrrrrrrr r rrZBOOLEANÚboolZINT8ÚintZUINT8ZINT16ZUINT16ZINT32ZUINT32ZINT64ZUINT64ZFLOATÚfloatZDOUBLEZGLISTÚlistZGSLISTZARRAYZGHASHÚdictZUTF8ÚstrZFILENAMEZUNICHARrZGTYPEZERRORZVOIDrrr%r+r,r r r r Ús>$   @