Ë
    pPêja™  ã                  óÆ  — d Z ddlmZ ddlZddlZddlZddlZddlZddlZ	ddl
mZmZ ddlmZmZ ddlmZ ddl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mZm Z  dd
l!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' ddl(m)Z)  G d„ de%«      Z* G d„ de%«      Z+dd„Z,	 dddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z- G d„ d«      Z. ej^                  dd«      Z0 G d„ de"«      Z1d d„Z2d!d„Z3	 d"	 	 	 	 	 	 	 d#d„Z4y)$zTStub generator for C modules.

The public interface is via the mypy.stubgen module.
é    )ÚannotationsN)ÚCallableÚMapping)ÚFunctionTypeÚ
ModuleType)ÚAny)Úparse_type_comment)Úis_c_module)
ÚArgSigÚFunctionSigÚSigÚfind_unique_signaturesÚ!infer_arg_sig_from_anon_docstringÚinfer_prop_type_from_docstringÚ&infer_ret_type_sig_from_anon_docstringÚ!infer_ret_type_sig_from_docstringÚinfer_sig_from_docstringÚparse_all_signatures)ÚBaseStubGeneratorÚ	ClassInfoÚFunctionContextÚSignatureGeneratorÚinfer_method_arg_typesÚinfer_method_ret_type)Úquote_docstringc                  óP   — e Zd Z	 d	 	 	 	 	 dd„Zedd„«       Z	 	 	 	 	 	 d	d„Zd
d„Zy)ÚExternalSignatureGeneratorNc                ó0   — |xs i | _         |xs i | _        y)z–
        Takes a mapping of function/method names to signatures and class name to
        class signatures (usually corresponds to __init__).
        N)Ú	func_sigsÚ
class_sigs)Úselfr   r    s      úR/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/stubgenc.pyÚ__init__z#ExternalSignatureGenerator.__init__-   s   € ð #š bˆŒØ$Ò*¨ˆ�ó    c                ó8  — g }g }t        j                   |› d�«      D ]<  }t        |«      5 }t        |j                  «       «      \  }}ddd«       |z  }|z  }Œ> t	        t        |«      «      }t	        t        |«      «      }	t        ||	«      S # 1 sw Y   ŒIxY w)z+Instantiate from a directory of .rst files.z/*.rstN)ÚglobÚopenr   Ú	readlinesÚdictr   r   )
ÚclsÚdoc_dirÚall_sigsÚall_class_sigsÚpathÚfÚloc_sigsÚloc_class_sigsÚsigsr    s
             r"   Úfrom_doc_dirz'ExternalSignatureGenerator.from_doc_dir7   s§   € ð !ˆØ$&ˆÜ—I‘I  	¨Ð0Ó1ò 	-ˆDÜ�d“ð O˜qÜ+?ÀÇÁÃÓ+NÑ(�˜.÷Oà˜Ñ ˆHØ˜nÑ,‰Nð		-ô
 Ô*¨8Ó4Ó5ˆÜÔ0°Ó@ÓAˆ
Ü)¨$°
Ó;Ð;÷Oð Oús   «BÂB	c                ób  — |j                   rž|j                  dv r�|j                  | j                  vrx|j                   j                  | j                  v rVt	        |j                  t        | j                  |j                   j                     «      t        |j                  «      ¬«      gS |j                  | j                  vry t	        |j                  t        | j                  |j                     «      d ¬«      g}|j                   r&| j                  ||j                   j                  «      S |S )N©Ú__new__r#   ©ÚnameÚargsÚret_type)	Ú
class_infor8   r   r    r   r   r   Úremove_self_typeÚself_var)r!   Údefault_sigÚctxÚinferreds       r"   Úget_function_sigz+ExternalSignatureGenerator.get_function_sigE   sð   € ð
 �NŠNØ—‘Ð3Ñ3Ø—‘ §¡Ñ.Ø—‘×#Ñ# t§¡Ñ6ô ØŸ™Ü:¸4¿?¹?È3Ï>É>×K^ÑK^Ñ;_Ó`Ü2°3·8±8Ó<ôðð ð �8‰8˜4Ÿ>™>Ñ)Øô Ø—X‘XÜ6°t·~±~ÀcÇhÁhÑ7OÓPØôð
ˆð �>Š>Ø×(Ñ(¨°3·>±>×3JÑ3JÓKÐKàˆOr$   c                 ó   — y ©N© )r!   Údefault_typer?   s      r"   Úget_property_typez,ExternalSignatureGenerator.get_property_typeg   s   € Ør$   )NN)r   údict[str, str] | Noner    rG   ÚreturnÚNone)r+   ÚstrrH   r   ©r>   r   r?   r   rH   zlist[FunctionSig] | None©rE   ú
str | Noner?   r   rH   rM   )Ú__name__Ú
__module__Ú__qualname__r#   Úclassmethodr3   rA   rF   rD   r$   r"   r   r   ,   sY   „ à[_ð+Ø.ð+ØCXð+à	ó+ð ò<ó ð<ð Ø&ð Ø-<ð à	!ó ôDr$   r   c                  ó(   — e Zd Z	 	 	 	 	 	 dd„Zdd„Zy)ÚDocstringSignatureGeneratorc                óæ  — t        |j                  |j                  «      }|r1|j                  €J ‚t        |j                  |j                  «      r|d= |j                  rŒ|sd|j                  dk(  rUt        |j                  j                  |j                  j                  «      }|r|D �cg c]  }|j                  d¬«      ‘Œ }}| j                  ||j                  j                  «      S |S c c}w )Néÿÿÿÿr#   ©r8   )r   Ú	docstringr8   Ú)is_pybind11_overloaded_function_docstringr;   Ú_replacer<   r=   )r!   r>   r?   r@   Úsigs        r"   rA   z,DocstringSignatureGenerator.get_function_sigl   sÂ   € ô ,¨C¯M©M¸3¿8¹8ÓDˆÙØ—=‘=Ð,Ð,Ð,Ü8¸¿¹ÈÏÉÔQà˜R�Là�>Š>Ù §¡¨JÒ 6ä3°C·N±N×4LÑ4LÈcÏnÉn×NaÑNaÓb�ÙØIQÖRÀ# §¡°* Õ =ÐR�HÐRØ×(Ñ(¨°3·>±>×3JÑ3JÓKÐKàˆOùò  Ss   Â+C.c                óÄ   — |j                   �Tt        |j                   «      }|r|S t        |j                   |j                  «      }|r|S t	        |j                   «      }|S y)z:Infer property type from docstring or docstring signature.N)rW   r   r   r8   r   )r!   rE   r?   r@   s       r"   rF   z-DocstringSignatureGenerator.get_property_type€   sT   € à�=‰=Ð$Ü=¸c¿m¹mÓLˆHÙØ�Ü8¸¿¹ÈÏÉÓQˆHÙØ�Ü5°c·m±mÓDˆHØˆOàr$   NrK   rL   )rN   rO   rP   rA   rF   rD   r$   r"   rS   rS   k   s$   „ ðØ&ðØ-<ðà	!óô(r$   rS   c                ó*   — | j                  |› d�«      S )Nz((*args, **kwargs)
Overloaded function.

©Ú
startswith)rW   r8   s     r"   rX   rX   �   s   € Ø×Ñ 4 &Ð(SÐ TÓUÐUr$   F©Úinclude_privateÚexport_lessÚinclude_docstringsc               óx  — t         j                  j                  |«      }|r4t         j                  j                  |«      st        j                  |«       t        | |||||¬«      }|j                  «        |j                  «       }	t        |dd¬«      5 }
|
j                  |	«       ddd«       y# 1 sw Y   yxY w)aØ  Generate stub for C module.

    Signature generators are called in order until a list of signatures is returned.  The order
    is:
    - signatures inferred from .rst documentation (if given)
    - simple runtime introspection (looking for docstrings and attributes
      with simple builtin types)
    - fallback based special method names or "(*args, **kwargs)"

    If directory for target doesn't exist it will be created. Existing stub
    will be overwritten.
    r_   Úwzutf-8)ÚencodingN)
Úosr.   ÚdirnameÚisdirÚmakedirsÚInspectionStubGeneratorÚgenerate_moduleÚoutputr'   Úwrite)Úmodule_nameÚtargetÚknown_modulesr+   r`   ra   rb   ÚsubdirÚgenrl   Úfiles              r"   Úgenerate_stub_for_c_modulert   “   s˜   € ô, �W‰W�_‰_˜VÓ$€FÙ”b—g‘g—m‘m FÔ+Ü
�‰�FÔä
!ØØØØ'ØØ-ô€Cð ×ÑÔØ�Z‰Z‹\€Fä	ˆf�c GÔ	,ð °Ø�
‰
�6Ô÷÷ ñ ús   ÂB0Â0B9c                  óJ   — e Zd ZdZddd„Zedd	d„«       Zedd
d„«       Zdd„Zy)ÚCFunctionStubzR
    Class that mimics a C function in order to provide parseable docstrings.
    c                ó.   — || _         || _        || _        y rC   )rN   Ú__doc__Ú__abstractmethod__)r!   r8   ÚdocÚis_abstracts       r"   r#   zCFunctionStub.__init__Á   s   € ØˆŒØˆŒØ"-ˆÕr$   c                óR   — t        |j                  |j                  «       d d |«      S ©Néüÿÿÿ)rv   r8   Ú
format_sig)r*   rZ   r{   s      r"   Ú	_from_sigzCFunctionStub._from_sigÆ   s#   € ä˜SŸX™X s§~¡~Ó'7¸¸Ð'<¸kÓJÐJr$   c                ób   — t        |d   j                  dj                  d„ |D «       «      |«      S )Nr   ú
c              3  óB   K  — | ]  }|j                  «       d d –— Œ y ­wr}   )r   )Ú.0rZ   s     r"   ú	<genexpr>z+CFunctionStub._from_sigs.<locals>.<genexpr>Í   s   è ø€ Ò#J¸c C§N¡NÓ$4°S°bÔ$9Ñ#Jùs   ‚)rv   r8   Újoin)r*   r2   r{   s      r"   Ú
_from_sigszCFunctionStub._from_sigsÊ   s-   € äØ�‰G�L‰L˜$Ÿ)™)Ñ#JÀTÔ#JÓJÈKó
ð 	
r$   c                 ó   — y)zŠ
        This exists to make this object look like a method descriptor and thus
        return true for CStubGenerator.ismethod()
        NrD   )r!   s    r"   Ú__get__zCFunctionStub.__get__Ð   s   € ð
 	r$   N)F)r8   rJ   rz   rJ   r{   ÚboolrH   rI   )rZ   r   r{   rŠ   rH   rv   )r2   úlist[FunctionSig]r{   rŠ   rH   rv   ©rH   rI   )	rN   rO   rP   rx   r#   rQ   r€   r‡   r‰   rD   r$   r"   rv   rv   ¼   s;   „ ñô.ð
 óKó ðKð ó
ó ð
ô
r$   rv   Ú_MissingÚVALUEc                  ó¢  ‡ — e Zd ZdZ	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d ˆ fd„Zd!d„Zd"d„Zd#d„Zd$d„Zd%d„Z	d&d	„Z
d'd
„Zd(d„Zd)d„Zd%d„Zd*d„Zd*d„Zd+d„Zed%d„«       Zed*d„«       Zed,d„«       Zd%d„Zd-d„Zddœ	 	 	 	 	 	 	 	 	 d.d„Zd/d„Z	 	 	 	 	 	 	 	 d0d„Z	 d1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d2d„Zd3d„Zd4d„Z	 d1	 	 	 	 	 	 	 	 	 d5d„Zd6d„Zˆ xZ S )7rj   zÞStub generator that does not parse code.

    Generation is performed by inspecting the module's contents, and thus works
    for highly dynamic modules, pyc files, and C modules (via the CStubGenerator
    subclass).
    Nc	                óJ  •— || _         |€t        j                  |«      | _        n|| _        t	        | j                  «      | _        || _        | j                  | _        t        ‰	| �!  ||||«       || _	        | j                  r | j                  j                  dg d¢i«       y y )NÚtyping)r   r   ÚClassVarÚDictÚIterableÚIteratorÚListÚLiteralÚ
NamedTupleÚOptionalÚTupleÚUnion)r+   Ú	importlibÚimport_moduleÚmoduler
   rp   Úresort_membersÚsuperr#   rn   Úknown_importsÚupdate)
r!   rn   rp   r+   Ú_all_r`   ra   rb   rž   Ú	__class__s
            €r"   r#   z InspectionStubGenerator.__init__ã   sž   ø€ ð ˆŒØˆ>Ü#×1Ñ1°+Ó>ˆD�Kà ˆDŒKÜ& t§{¡{Ó3ˆÔØ*ˆÔØ"×.Ñ.ˆÔÜ‰Ñ˜ °Ð>PÔQØ&ˆÔØ×Òð ×Ñ×%Ñ%àò ðõð r$   c                óØ  ‡ ‡‡‡‡‡‡— d }‰ j                   s	 t        j                  |«      }|€�|j                  �St        |j                  t        |j                  |j                  j                  «      t        |j                  «      ¬«      S t        |j                  t        d¬«      t        d¬«      gd ¬«      S |j                  Š|j                  Š|j                  }|j                  }|j                  Š|j                   }|j"                  Šdˆˆ fd„Šg Š	 	 	 	 	 	 dˆˆˆˆ fd„}dˆˆfd„} |‰|«       |r%‰j%                  t        d	|› � ‰|«      «      «       n|r‰j%                  t        d	«      «       dˆfd
„}	 |||	«       |r$‰j%                  t        d|› � ‰|«      «      «       |j                  �ft'        d„ ‰D «       «      rTt)        |j                  |j                  j                  ‰D �
cg c]  }
|
j                  sŒ|
j                  ‘Œ c}
«      }|�|Š ‰d«      xs t        |j                  «      }t        |j                  ‰|«      S # t        $ r Y �Œ7w xY wc c}
w )Nr7   ú*argsrV   ú**kwargsrH   c                ód   •— | ‰vry ‰|    }|€yt        |t        «      s‰j                  |«      S |S )NrI   )Ú
isinstancerJ   Úget_type_fullname)ÚkeyÚargtyper   r!   s     €€r"   Úget_annotationzHInspectionStubGenerator.get_default_function_sig.<locals>.get_annotation0  s@   ø€ Ø˜+Ñ%ØØ! #Ñ&ˆGØˆØÜ˜g¤sÔ+Ø×-Ñ-¨gÓ6Ð6ØˆNr$   c           	     óV  •— t        | «      D ]š  \  }} |||«      }|t        j                  urW|‰v r	 ‰	|«      }n,‰
j                  |«      }|dk(  r‰
j	                  d«      }|› d�}‰j                  t        ||d¬«      «       Œx‰j                  t        | ‰	|«      d¬«      «       Œœ y )NrI   ú_typeshed.Incompletez | NoneT)ÚdefaultF)Ú	enumerater�   rŽ   Úget_type_annotationÚadd_nameÚappendr   )r9   Úget_default_valueÚiÚargÚdefault_valuer¬   Ú
incompleter   Úarglistr­   r!   s          €€€€r"   Úadd_argszBInspectionStubGenerator.get_default_function_sig.<locals>.add_args=  s¬   ø€ ô $ D›/ò T‘��3á 1°!°SÓ 9�Ø ¬¯©Ñ6Ø˜kÑ)Ù"0°Ó"5™à"&×":Ñ":¸=Ó"I˜Ø" fÒ,ð *.¯©Ð7MÓ)N˜JØ)3¨°GÐ&<˜Gà—N‘N¤6¨#¨wÀÔ#EÕFà—N‘N¤6¨#©~¸cÓ/BÈEÔ#RÕSñ!Tr$   c                ó–   •— ‰r7| t        ‰«      t        ‰«      z
  k\  r‰| t        ‰«      t        ‰«      z
  z
     S t        j                  S rC   )Úlenr�   rŽ   )r¶   Ú_argr9   Údefaultss     €€r"   Úget_pos_defaultzIInspectionStubGenerator.get_default_function_sig.<locals>.get_pos_defaultR  sA   ø€ Ù˜A¤ T£¬S°«]Ñ!:Ò:Ø ¤S¨£Y´°X³Ñ%>Ñ ?Ñ@Ð@ä—~‘~Ð%r$   Ú*c                ó:   •— ‰r	|‰v r‰|   S t         j                  S rC   )r�   rŽ   )Ú_ir·   Úkwonlydefaultss     €r"   Úget_kw_defaultzHInspectionStubGenerator.get_default_function_sig.<locals>.get_kw_defaulta  s"   ø€ Ù #¨Ñ"7Ø% cÑ*Ð*ä—~‘~Ð%r$   z**c              3  óX   K  — | ]"  }|j                   d u xr |j                  du –— Œ$ y ­w)NF)Útyper°   )r„   r·   s     r"   r…   zCInspectionStubGenerator.get_default_function_sig.<locals>.<genexpr>n  s/   è ø€ ò .
Ø:=ˆC�H‰H˜ÐÒ5 §¡°Ð!5Ó5ñ.
ùs   ‚(*)r«   rJ   rH   rM   )r9   ú	list[str]rµ   z'Callable[[int, str], object | _Missing]rH   rI   )r¶   Úintr¾   rJ   rH   úAny | _Missing)rÃ   rÉ   r·   rJ   rH   rÊ   )r
   ÚinspectÚgetfullargspecÚ	TypeErrorr;   r   r8   Úinfer_c_method_argsr=   r   r   r9   r¿   ÚvarargsÚvarkwr   Ú
kwonlyargsrÄ   r´   Úallr   )r!   Úfuncr?   ÚargspecrÏ   ÚkwargsrÑ   r»   rÀ   rÅ   r·   Únew_argsr:   r   rº   r9   r¿   r­   rÄ   s   `            @@@@@@r"   Úget_default_function_sigz0InspectionStubGenerator.get_default_function_sig  s>  þ€ ØˆØ×ÒðÜ!×0Ñ0°Ó6�ð ˆ?Ø�~‰~Ð)ä"ØŸ™Ü,¨S¯X©X°s·~±~×7NÑ7NÓOÜ2°3·8±8Ó<ôð ô #ØŸ™Ü  gÔ.´¸JÔ0GÐHØ!ôð ð �|‰|ˆØ×#Ñ#ˆØ—/‘/ˆØ—‘ˆØ×)Ñ)ˆØ×'Ñ'ˆ
Ø ×/Ñ/ˆö	ð !#ˆð	TØð	TØ0Wð	Tà÷	Tð 	Tö*	&ñ 	��Ô'ñ Ø�N‰Nœ6 A g Y -±ÀÓ1HÓIÕJáØ�N‰Nœ6 #›;Ô'õ	&ñ 	�˜^Ô,ñ Ø�N‰Nœ6 B v h -±ÀÓ1GÓHÔIð �>‰>Ð%¬#ñ .
ØAHô.
ô +
ô .Ø—‘˜#Ÿ.™.×1Ñ1ÈÖ3\ÀÐSV×S[ÓS[°C·H³HÒ3\óˆHð Ð#Ø"�á! (Ó+ÒNÔ/DÀSÇXÁXÓ/NˆÜ˜3Ÿ8™8 W¨hÓ7Ð7øôI ò âðüò| 4]s   —I Ç6I'ÈI'É	I$É#I$c                ó®   — | j                   sg S t        «       g}| j                  r/|j                  dt        j                  | j                  «      «       |S ©Nr   )r
   rS   r+   Úinsertr   r3   )r!   Úsig_generatorss     r"   Úget_sig_generatorsz*InspectionStubGenerator.get_sig_generatorsz  sK   € Ø×ÒØˆIä8SÓ8UÐ7VˆNØ�|Š|à×%Ñ% aÔ)C×)PÑ)PÐQU×Q]ÑQ]Ó)^Ô_Ø!Ð!r$   c                óŒ   — d| j                   g}t        |ddd«      d   }|€J |«       ‚| j                  || j                  |«      S )a  Strips unnecessary module names from typ.

        If typ represents a type that is inside module or is a type coming from builtins, remove
        module declaration from it. Return stripped name of the type.

        Arguments:
            typ: name of the type
        Úbuiltinsr   Né   )rn   r	   Úprint_annotationrp   )r!   Ú	type_nameÚlocal_modulesÚparsed_types       r"   Ústrip_or_importz'InspectionStubGenerator.strip_or_import„  sU   € ð $ T×%5Ñ%5Ð6ˆÜ(¨°A°q¸$Ó?ÀÑBˆØÐ&Ð1¨	Ó1Ð&Ø×$Ñ$ [°$×2DÑ2DÀmÓTÐTr$   c                ó   — t        |dd«      S )z!Return module name of the object.rO   N©Úgetattr©r!   Úobjs     r"   Úget_obj_modulez&InspectionStubGenerator.get_obj_module’  s   € ä�s˜L¨$Ó/Ð/r$   c                óN   — | j                  |«      }|du xs || j                  k(  S )z<Check if object is considered defined in the current module.N)rê   rn   )r!   ré   rž   s      r"   Úis_defined_in_modulez,InspectionStubGenerator.is_defined_in_module–  s,   € à×$Ñ$ SÓ)ˆØ˜ˆ~Ò; ¨4×+;Ñ+;Ñ!;Ð;r$   c           	     ó.	  — | j                  | j                  «      }| j                  rt        |d„ ¬«      }g }|D �]¢  \  }}t	        j
                  |«      rç|j                  | j                  v rÏ|j                  }|j                  | j                  dz   «      rl|j                  dd«      \  }}|t        | j                  «      d  xs d}| j                  j                  |||fg«       | j                  j                  |«       ŒÊ| j                  j                  ||«       | j                  j                  |«       �Œ| j!                  |«      r*t	        j
                  |«      s|j#                  ||f«       �Œ>| j%                  |«      }	|	s�ŒS| j                  j                  |	|d fg«       | j'                  ||	d¬«      s�Œˆ| j                  j                  |«       �Œ¥ | j)                  |D ��ch c]  \  }}t	        j
                  |«      rŒ|’Œ c}}«       | j                  rg }
g }g }ng }|x}
x}}|D ]i  \  }}| j+                  |«      r| j-                  |||
¬«       Œ,t	        j.                  |«      r| j1                  |||¬«       ŒV| j3                  |||¬«       Œk g | _        | j                  rà|D ]   }| j4                  j#                  |dz   «       Œ" |D ]g  }|j                  d	«      r6| j4                  r*| j4                  d
   r| j4                  j#                  d«       | j4                  j#                  |dz   «       Œi | j4                  r|
r| j4                  j#                  d«       |
D ]   }| j4                  j#                  |dz   «       Œ" nêt7        «      D ]Ü  \  }}| j4                  rW|j                  d	«      rF| j4                  d
   j                  d	«      rct        |«      |dz   kD  r||dz      j                  d«      s;| j4                  rJ| j4                  d
   j                  d«      r,|j                  d«      s| j4                  j#                  d«       | j4                  j#                  |dz   «       ŒÞ | j9                  «        y c c}}w )Nc                ó   — | d   S rÙ   rD   ©Úxs    r"   ú<lambda>z9InspectionStubGenerator.generate_module.<locals>.<lambda>ž  s
   € ¸¸!¹€ r$   ©r«   ú.rß   F)Úname_is_alias)rl   r‚   ÚclassrU   ú    Údef)Úget_membersrž   rŸ   ÚsortedrË   ÚismodulerN   rp   r^   rn   Úrsplitr½   Úimport_trackerÚadd_import_fromÚreexportÚ
add_importrì   r´   rê   Úshould_reexportÚset_defined_namesÚis_functionÚgenerate_function_stubÚisclassÚgenerate_class_stubÚgenerate_variable_stubÚ_outputr±   Úcheck_undefined_names)r!   Ú	all_itemsÚitemsr8   ré   rn   Úpkg_nameÚmod_nameÚ
rel_moduleÚobj_module_nameÚ	functionsÚtypesÚ	variablesrl   Úliner¶   s                   r"   rk   z'InspectionStubGenerator.generate_module›  s  € Ø×$Ñ$ T§[¡[Ó1ˆ	Ø×ÒÜ˜y©nÔ=ˆIØˆØ"ó 	;‰IˆD�#Ü×Ñ Ô$¨¯©¸×9KÑ9KÑ)KØ!Ÿl™l�Ø×)Ñ)¨$×*:Ñ*:¸SÑ*@ÔAà)4×);Ñ);¸CÀÓ)CÑ&�H˜hØ!)¬#¨d×.>Ñ.>Ó*?Ð*AÐ!BÒ!IÀc�JØ×'Ñ'×7Ñ7¸
ÀhÐPTÐEUÐDVÔWØ×'Ñ'×0Ñ0°Õ6ð ×'Ñ'×2Ñ2°;ÀÔEØ×'Ñ'×0Ñ0°Ö6Ø×*Ñ*¨3Ô/¼×8HÑ8HÈÔ8Mà—‘˜d C˜[Ö)ð #'×"5Ñ"5°cÓ":�Û"Ø×'Ñ'×7Ñ7¸È4ÐQUÈ,ÈÔXØ×+Ñ+¨D°/ÐQVÐ+ÖWØ×+Ñ+×4Ñ4°TÖ:ð-	;ð0 	×Ñ°i×]©¨¨sÄw×GWÑGWÐX[ÕG\¢Ó]Ô^à×ÒØ#%ˆIØ!ˆEØ#%‰Ià "ˆFØ,2Ð2ˆIÐ2˜ 	àò 	I‰IˆD�#Ø×Ñ Ô$Ø×+Ñ+¨D°#¸iÐ+ÕHÜ—‘ Ô%Ø×(Ñ(¨¨s¸5Ð(ÕAà×+Ñ+¨D°#¸iÐ+ÕHð	Ið ˆŒà×ÒØ!ò 1�Ø—‘×#Ñ# D¨4¡KÕ0ð1àò 1�Ø—?‘? 7Ô+°·²ÀÇÁÈbÒAQØ—L‘L×'Ñ'¨Ô-Ø—‘×#Ñ# D¨4¡KÕ0ð1ð �|Š|¡	Ø—‘×#Ñ# DÔ)Ø!ò 1�Ø—‘×#Ñ# D¨4¡KÕ0ñ1ô % VÓ,ò 1‘��4à—L’LØŸ™¨Ô0à ŸL™L¨Ñ,×7Ñ7¸Ô@Ü ›K¨!¨a©%Ò/°F¸1¸q¹5±M×4LÑ4LÈVÔ4Tð —L’LØŸ™ RÑ(×3Ñ3°EÔ:Ø ŸO™O¨EÔ2à—L‘L×'Ñ'¨Ô-Ø—‘×#Ñ# D¨4¡KÕ0ð1ð 	×"Ñ"Õ$ùó_  ^s   Ç0R
ÈR
c                ór   — |dv xs2 || j                   v xs" t        |«      xs t        j                  |«      S )N)r¤   Ú__getattribute__Ú__str__Ú__repr__rx   Ú__dict__rO   Ú__weakref__Ú__annotations__Ú__firstlineno__Ú__static_attributes__Ú__annotate__)ÚIGNORED_DUNDERSÚis_pybind_skipped_attributeÚkeywordÚ	iskeyword)r!   Úattrs     r"   Úis_skipped_attributez,InspectionStubGenerator.is_skipped_attributeé  sM   € àððò 'ð �t×+Ñ+Ð+ò'ô  +¨4Ó0ò!'ô" × Ñ  Ó&ð%	
r$   c                ó²   — t        |d«      }g }|D ]4  }| j                  |«      rŒ	 t        ||«      }|j                  ||f«       Œ6 |S # t        $ r Y ŒDw xY w)Nr  )rç   r"  r´   ÚAttributeError)r!   ré   Úobj_dictÚresultsr8   Úvalues         r"   rø   z#InspectionStubGenerator.get_membersÿ  sq   € Ü&-¨c°:Ó&>ˆØˆØò 		.ˆDØ×(Ñ(¨Ô.Øð.Ü  TÓ*�ð —‘  e˜}Õ-ð		.ð ˆøô	 "ò Ùðús   §A
Á
	AÁAc                ó2  — |�|t        d«      u ryt        j                  |«      rd| j                  |«      › d�S t	        |t
        «      r| j                  d«      S t	        |t        «      r| j                  dd¬«      S | j                  t        |«      «      S )	z‚
        Given an instance, return a string representation of its type that is valid
        to use as a type annotation.
        NrI   ztype[ú]ztyping.Callableztypes.ModuleTypeF)Úrequire)rÇ   rË   r  rª   r©   r   r³   r   rè   s     r"   r²   z+InspectionStubGenerator.get_type_annotation  s‹   € ð
 ˆ;˜#¤ d£Ñ+ØÜ�_‰_˜SÔ!Ø˜4×1Ñ1°#Ó6Ð7°qÐ9Ð9Ü˜œ\Ô*Ø—=‘=Ð!2Ó3Ð3Ü˜œZÔ(Ø—=‘=Ð!3¸U�=ÓCÐCà×)Ñ)¬$¨s«)Ó4Ð4r$   c                ón   — | j                   rt        j                  |«      S t        j                  |«      S rC   )r
   rË   Ú	isbuiltinÚ
isfunctionrè   s     r"   r  z#InspectionStubGenerator.is_function  s-   € Ø×ÒÜ×$Ñ$ SÓ)Ð)ä×%Ñ% cÓ*Ð*r$   c                ó  — | j                   rlt        j                  |«      xsU t        |«      t        t        j
                  «      t        t        j                  «      t        t        j                  «      fv S t        j                  |«      S rC   )	r
   rË   ÚismethoddescriptorrÇ   rJ   ÚindexÚ__add__r6   r-  ©r!   r;   r8   ré   s       r"   Ú	is_methodz!InspectionStubGenerator.is_method$  sj   € Ø×ÒÜ×-Ñ-¨cÓ2ò ´d¸3³iÜ”S—Y‘Y“Ü”S—[‘[Ó!Ü”S—[‘[Ó!ðDð 7ð ô ×%Ñ% cÓ*Ð*r$   c                ó    — | j                   r.t        j                  |«      xs t        |«      j                  dv S t        j
                  |«      S )N)rQ   Úclassmethod_descriptor)r
   rË   r,  rÇ   rN   Úismethodr2  s       r"   Úis_classmethodz&InspectionStubGenerator.is_classmethod/  sM   € Ø×ÒÜ×$Ñ$ SÓ)ò ¬T°#«Y×-?Ñ-?ð Dð .ð ô
 ×#Ñ# CÓ(Ð(r$   c                óì   — |€y| j                   r8t        |j                  d«      }|j                  ||«      }t	        |t
        «      S t	        t        j                  |j                  |«      t
        «      S )NFr  )r
   rç   r*   Úgetr©   ÚstaticmethodrË   Úgetattr_static)r!   r;   r8   ré   Ú
raw_lookupÚ	raw_values         r"   Úis_staticmethodz'InspectionStubGenerator.is_staticmethod8  s_   € ØÐØØ×ÒÜ,3°J·N±NÀJÓ,OˆJØ"Ÿ™ t¨SÓ1ˆIÜ˜i¬Ó6Ð6äœg×4Ñ4°Z·^±^ÀTÓJÌLÓYÐYr$   c                ó   — t        | dd«      S )Nry   Fræ   )ré   s    r"   Úis_abstract_methodz*InspectionStubGenerator.is_abstract_methodB  s   € ä�sÐ0°%Ó8Ð8r$   c                óH   — t        j                  |«      xs t        |d«      S )NÚfget)rË   ÚisdatadescriptorÚhasattr)r;   r8   ré   s      r"   Úis_propertyz#InspectionStubGenerator.is_propertyF  s   € ä×'Ñ'¨Ó,ÒD´¸¸VÓ0DÐDr$   c                ó:   — t        | d«      xr | j                  d u S )NÚfset)rD  rG  )Úprops    r"   Úis_property_readonlyz,InspectionStubGenerator.is_property_readonlyJ  s   € ä�t˜VÓ$Ò:¨¯©°dÐ):Ð:r$   c                óJ   — | j                   rt        |«      j                  dv S y)z=For c-modules, whether the property behaves like an attribute)Úpybind11_static_propertyÚStaticPropertyF)r
   rÇ   rN   rè   s     r"   Úis_static_propertyz*InspectionStubGenerator.is_static_propertyN  s$   € à×Òä˜“9×%Ñ%Ð)WÐWÐWàr$   c                ó  — t        |«      D ]~  \  }}|j                  D ]/  }|j                  €Œ| j                  |j                  «      |_        Œ1 |j                  €ŒQ|j                  | j                  |j                  «      ¬«      ||<   Œ€ y )N)r:   )r±   r9   rÇ   rä   r:   rY   )r!   r@   r¶   rZ   r·   s        r"   Úprocess_inferred_sigsz-InspectionStubGenerator.process_inferred_sigsV  s~   € Ü Ó)ò 	X‰FˆAˆsØ—x‘xò >�Ø—8‘8Ñ'Ø#×3Ñ3°C·H±HÓ=�C•Hð>ð �|‰|Ñ'Ø!Ÿl™l°D×4HÑ4HÈÏÉÓ4V˜lÓW�˜’ñ	Xr$   )r;   c               óâ  — t        |dd«      }t        |t        «      sd}t        | j                  ||| j                  |«      |¬«      }| j                  ||j                  «      s| j                  |«      ry| j                  |j                  «       | j                  ||«      }| j                  || j                  |«      }| j                  |«       g }	t        |«      dkD  r/|	j!                  dj#                  | j%                  d«      «      «       |j&                  r/|	j!                  dj#                  | j%                  d«      «      «       |�Ã| j)                  |||«      r|	j!                  d«       nž|D ]Z  }
|
j*                  r|
j*                  d	   j                  d
vsŒ+|
j*                  j-                  d	t/        |j0                  ¬«      «       Œ\ |d	   j*                  r0|d	   j*                  d	   j                  dk(  r|	j!                  d«       |j2                  r| j5                  |j2                  «      nd}|j7                  | j9                  ||	|¬«      «       | j;                  |||«       y)a(  Generate stub for a single function or method.

        The result (always a single line) will be appended to 'output'.
        If necessary, any required names will be added to 'imports'.
        The 'class_name' is used to find signature of __init__ or __new__ in
        'class_sigs'.
        rx   N©rW   r{   r;   rß   z@{}ztyping.overloadzabc.abstractmethodz@staticmethodr   )r!   r*   rV   r*   z@classmethod)Ú
decoratorsrW   )rç   r©   rJ   r   rn   r@  Úis_private_nameÚfullnameÚis_not_in_allÚrecord_namer8   r×   Úget_signaturesrÛ   rO  r½   r´   Úformatr³   r{   r>  r9   rÚ   r   r=   rW   Ú_indent_docstringÚextendÚformat_func_defÚ	_fix_iter)r!   r8   ré   rl   r;   rW   r?   r>   r@   rR  rZ   s              r"   r  z.InspectionStubGenerator.generate_function_stub^  s  € ô !  i°Ó6ˆ	Ü˜)¤SÔ)ØˆIäØ×ÑØØØ×/Ñ/°Ó4Ø!ô
ˆð ×Ñ  c§l¡lÔ3°t×7IÑ7IÈ$Ô7OØà×Ñ˜Ÿ™Ô"Ø×3Ñ3°C¸Ó=ˆØ×&Ñ& {°D×4GÑ4GÈÓMˆØ×"Ñ" 8Ô,àˆ
Üˆx‹=˜1ÒØ×Ñ˜eŸl™l¨4¯=©=Ð9JÓ+KÓLÔMà�?Š?Ø×Ñ˜eŸl™l¨4¯=©=Ð9MÓ+NÓOÔPàÐ!Ø×#Ñ# J°°cÔ:Ø×!Ñ! /Õ2à#ò M�CØŸ8š8 s§x¡x°¡{×'7Ñ'7¸Ò'NØŸ™Ÿ™¨¬6°z×7JÑ7JÔ+KÕLðMð ˜A‘;×#Ò#¨°©×(8Ñ(8¸Ñ(;×(@Ñ(@ÀEÒ(IØ×%Ñ% nÔ5à=@¿]º]�D×*Ñ*¨3¯=©=Ô9ÐPTˆ	Ø�‰�d×*Ñ*¨8À
ÐV_Ð*Ó`ÔaØ�‰�s˜H fÕ-r$   c                óŽ  ‡— |j                  d¬«      }| j                  dz   Št        |«      dkD  rFt        ˆfd„|D «       «      s2t	        |dd «      D ]!  \  }}|j                  «       sŒ‰|z   ||dz   <   Œ# |d   j                  d«      r+t        |«      dkD  r|j                  ‰«       n|d   dd |d<   d	j                  |«      S )
zQFix indentation of docstring extracted from pybind11 or other binding generators.T©Úkeependsrö   rß   c              3  óf   •K  — | ](  }|j                  ‰«      xs |j                  «        –— Œ* y ­wrC   )r^   Ústrip)r„   r  Úindents     €r"   r…   z<InspectionStubGenerator._indent_docstring.<locals>.<genexpr>–  s+   øè ø€ ÒUÀt�t—‘ vÓ.ÒB°d·j±j³lÐ2BÓBÑUùs   ƒ.1NrU   r‚   Ú )	Ú
splitlinesÚ_indentr½   rÒ   r±   ra  Úendswithr´   r†   )r!   rW   Úlinesr¶   r  rb  s        @r"   rY  z)InspectionStubGenerator._indent_docstring‘  sÁ   ø€ à×$Ñ$¨dÐ$Ó3ˆØ—‘ Ñ&ˆÜˆu‹:˜Š>ÜÓUÈuÔUÔUä(¨¨q¨r¨Ó3ò 5‘G�A�tØ—z‘z•|Ø'-°¡}˜˜a !™ešð5ð �‰9×Ñ˜dÔ#Ü�5‹z˜AŠ~Ø—‘˜VÕ$à! "™I c r˜N��b‘	Ø�w‰w�u‹~Ðr$   c                ó–  — |j                   r½|j                   j                  �¦|j                  dk(  r–d|j                   j                  j                  vrsd}|D ]9  }|j                  sŒ|j                  d   j
                  dk(  sŒ-|j                  } n |€yt        dd|› d�«      }| j                  d|||j                   ¬«       yyyyy)	zqEnsure that objects which implement old-style iteration via __getitem__
        are considered iterable.
        NÚ__getitem__Ú__iter__rU   rÉ   z&def __iter__(self) -> typing.Iterator[z]
©rl   r;   )	r;   r*   r8   r  r9   rÇ   r:   rv   r  )r!   r?   r@   rl   Ú	item_typerZ   ré   s          r"   r\  z!InspectionStubGenerator._fix_iter£  sÓ   € ð �NŠNØ—‘×"Ñ"Ð.Ø—‘˜MÒ)Ø #§.¡.×"4Ñ"4×"=Ñ"=Ñ=à$(ˆIØò �Ø—8“8 §¡¨¡× 1Ñ 1°UÓ :Ø #§¡�IÙðð Ð ØÜØÐDÀYÀKÈsÐSóˆCð ×'Ñ'¨
°CÀÐSV×SaÑSaÐ'Õbð >ð *ð /ð r$   c           
     óª  — t        |dd«      }t        |dd«      }	|	rt        |	dd«      }
|
r|r	|d|
z   z  }n|
r|
}t        | j                  ||d|¬«      }| j                  ||j                  «      s| j                  |«      ry| j                  |j                  «       | j                  |«      }| j                  |«      }|r!| j                  | j                  |«      «      }n| j                  ||«      }|j                  }| j                  || j                  |«      }|�| j                  |«      }|rS| j!                  d«      }|rdnd	}|€| j!                  d
«      }|j#                  | j$                  › |› d|› d|› d|› �«       y|r—|j&                  r| j)                  |j&                  «      nd}|j#                  | j$                  › d�«       t+        |t-        d«      g||¬«      }|j#                  |j/                  | j$                  | j0                  ¬«      «       y|€| j!                  d
«      }|j#                  | j$                  › |› d|› �«       y)a  Generate property stub using introspection of 'obj'.

        Try to infer type from docstring, append resulting lines to 'output'.

        raw_obj : object before evaluation of descriptor (if any)
        obj : object after evaluation of descriptor
        rx   NrB  r‚   FrQ  útyping.ClassVarz  # read-onlyrc  r¯   ú: ú[ú] = ...z	@propertyr!   )rW   )rb  rb   )rç   r   rn   rS  rT  rU  rV  r8   rM  rI  rä   r²   r×   r:   rF   rÛ   r³   r´   re  rW   rY  r   r   r   Ú_include_docstrings)r!   r8   Úraw_objré   Ústatic_propertiesÚrw_propertiesÚro_propertiesr;   rW   rB  Ú
alt_docstrr?   ÚstaticÚreadonlyr:   r>   Úinferred_typeÚclassvarÚtrailing_commentrZ   s                       r"   Úgenerate_property_stubz.InspectionStubGenerator.generate_property_stub»  sI  € ô$ ˜G Y°Ó5ˆ	Ü�w ¨Ó-ˆÙÜ   y°$Ó7ˆJÙ™iØ˜T JÑ.Ñ.‘	ÙØ&�	äØ×Ñ˜d¨iÀUÐWaô
ˆð ×Ñ  c§l¡lÔ3°t×7IÑ7IÈ$Ô7OØà×Ñ˜Ÿ™Ô"Ø×(Ñ(¨Ó1ˆØ×,Ñ,¨WÓ5ˆÙØ#'×#7Ñ#7¸×8PÑ8PÐQTÓ8UÓ#V‰Hà×7Ñ7¸ÀÓEˆKØ"×+Ñ+ˆHà×.Ñ.¨x¸×9LÑ9LÈcÓRˆØÐ$Ø ×0Ñ0°Ó?ˆMáØ—}‘}Ð%6Ó7ˆHÙ2:™ÀÐØÐ$Ø $§¡Ð.DÓ E�à×$Ñ$Ø—<‘<�.   b¨¨
°!°M°?À'ÐJZÐI[Ð\õñ ØEHÇ]Â]˜D×2Ñ2°3·=±=ÔAÐX\�	Ø×$Ñ$¨¯© ~°YÐ%?Ô@Ü! $¬°«Ð(8¸-ÐS\Ô]�Ø×$Ñ$Ø—N‘NØ#Ÿ|™|À×@XÑ@Xð #ó õð !Ð(Ø$(§M¡MÐ2HÓ$I�Mà×$Ñ$¨¯© ~°d°V¸2¸m¸_Ð%MÕNr$   c                ó†   — |t         u ryt        |d|j                  «      }| j                  |«      }|€y|dk7  r|› d|› �}|S )z,Given a type, return a string representationr   rP   r¯   rÞ   ró   )r   rç   rN   rê   )r!   ÚtypÚtypenamern   s       r"   rª   z)InspectionStubGenerator.get_type_fullname  sV   € à”#‰:ØÜ˜3 °·±Ó=ˆØ×)Ñ)¨#Ó.ˆØÐð *Ø˜*Ò$Ø%˜ a¨ zÐ2ˆHØˆr$   c                óF  ‡— t         j                  |«      }|d   t        u r|d= |r|d   j                  dk(  r|d= |dd  }g }|D ](  Št	        ˆfd„|D «       «      rŒ|j                  ‰«       Œ* |D �cg c]"  }| j                  | j                  |«      «      ‘Œ$ c}S c c}w )NrU   Úpybind11_objectrß   c              3  ó6   •K  — | ]  }t        |‰«      –— Œ y ­wrC   )Ú
issubclass)r„   ÚbÚbases     €r"   r…   z9InspectionStubGenerator.get_base_types.<locals>.<genexpr>   s   øè ø€ Ò:¨q”z ! T×*Ñ:ùs   ƒ)rÇ   ÚmroÚobjectrN   Úanyr´   rä   rª   )r!   ré   Ú	all_basesÚbasesr†  s       `r"   Úget_base_typesz&InspectionStubGenerator.get_base_types  s¨   ø€ Ü—H‘H˜S“Mˆ	Ø�R‰=œFÑ"à˜"�ñ ˜ 2™×/Ñ/Ð3DÒDØ˜"�à˜a˜b�Mˆ	àˆØò 	#ˆDÜÓ:°EÔ:Õ:Ø—‘˜TÕ"ð	#ð PUÖUÀt�×$Ñ$ T×%;Ñ%;¸DÓ%AÕBÒUÐUùÒUs   Á4'Bc           
     ó¨  — t        |d«      }| j                  |«      }| j                  rt        |d„ ¬«      }|D �ch c]  }|d   ’Œ	 }}g }	g }
g }g }g }g }| j	                  |«       | j                  «        t        |dt        |dd«      ||¬«      }|D �]  \  }}|j                  ||«      }| j                  |||«      s| j                  |||«      r_|d	k(  rd
|v rŒId
}| j                  |||«      rd|_        n"| j                  |||«      rd|_        nd|_        | j                  |||	|¬«       Œž| j                  |||«      r| j                  |||||||«       ŒÉt        j                   |«      r(| j#                  |«      r| j%                  |||
|¬«       �Œ|j'                  ||f«       �Œ |D ]d  \  }}|dk(  r|€Œ| j)                  | j+                  |«      «      }| j-                  d«      }|j'                  | j.                  › |› d|› d|› d�«       Œf | j1                  «        | j3                  |«      }|rddj5                  |«      z  }nd}|j6                  rT| j8                  rHt;        | j=                  |j6                  «      «      }d| j.                  › |› �}|j?                  d¬«      }ng }|s
|
s|s|s|	s|rê|j'                  | j.                  › d|› |› d�«       |jA                  |«       |
D ]l  }|rW|d   rR|d   jC                  «       jE                  d«      s0|jC                  «       jE                  d«      r|j'                  d«       |j'                  |«       Œn |jA                  |«       |jA                  |«       |jA                  |	«       |jA                  |«       y|j'                  | j.                  › d|› |› d�«       yc c}w )zÃGenerate stub for a single class using runtime introspection.

        The result lines will be appended to 'output'. If necessary, any
        required names will be added to 'imports'.
        r  c                ó   — t        | d   «      S rÙ   )Úmethod_name_sort_keyrï   s    r"   rñ   z=InspectionStubGenerator.generate_class_stub.<locals>.<lambda>/  s   € Ô0DÀQÀqÁTÓ0J€ r$   rò   r   rc  rx   N)Úparentr6   r#   r*   r!   rk  )Úparent_classÚ__hash__rn  ro  rp  rq  z(%s)z, rö   Fr^  zclass ú:rU   rõ   z: ...)#rç   rø   rŸ   rù   rV  rb  r   r9  r3  r7  r>  r=   r  rE  r}  rË   r  rì   r  r´   rä   r²   r³   re  ÚdedentrŒ  r†   rW   rr  r   rY  rd  rZ  ra  r^   )r!   Ú
class_namer*   rl   r‘  r<  r
  rð   ÚnamesÚmethodsr  rt  ru  rv  Úattrsr;   r!  r'  r=  Úprop_type_namer{  r‹  Ú	bases_strrz   rW   r  s                             r"   r  z+InspectionStubGenerator.generate_class_stub$  sÏ  € ô )0°°ZÓ(@ˆ
Ø× Ñ  Ó%ˆØ×ÒÜ˜5Ñ&JÔKˆEØ$Ö%˜!��1“Ð%ˆÐ%ØˆØˆØ')ÐØ#%ˆØ#%ˆØ')ˆà×Ñ˜Ô$Ø�‰ŒäØ˜œG C¨°DÓ9¸3À|ô
ˆ
ð !ó #	,‰KˆD�%à"Ÿ™ t¨UÓ3ˆIØ�~‰~˜j¨$°Ô6¸$×:MÑ:MØ˜D %ô;ð ˜9Ò$à! UÑ*ð !Ø%�Dà×'Ñ'¨
°D¸%Ô@Ø*,�JÕ'Ø×(Ñ(¨°T¸5ÔAØ*/�JÕ'à*0�JÔ'Ø×+Ñ+¨D°%ÀÐT^Ð+Õ_Ø×!Ñ! *¨d°IÔ>Ø×+Ñ+ØØØØ%Ø!Ø!Øõô —‘ Ô'¨D×,EÑ,EÀeÔ,LØ×(Ñ(¨¨u°eÈ*Ð(ÖUà—‘˜d E˜]Ö+ðG#	,ðJ !ò 	b‰KˆD�%Ø�zÒ! e màØ!×1Ñ1°$×2JÑ2JÈ5Ó2QÓRˆNØ—}‘}Ð%6Ó7ˆHØ×$Ñ$¨¯© ~°d°V¸2¸h¸ZÀqÈÐHXÐX_Ð%`Õað	bð 	�‰Œà×#Ñ# CÓ(ˆÙØ §¡¨5Ó!1Ñ1‰IàˆIà×Ò D×$<Ò$<Ü! $×"8Ñ"8¸×9MÑ9MÓ"NÓOˆCØ˜Ÿ™˜ s eÐ,ˆCØŸ™°˜Ó6‰IàˆIá™Ñ!2±mÁwÑR_Ø�M‰M˜TŸ\™\˜N¨&°°¸Y¸KÀqÐIÔJØ�M‰M˜)Ô$Øò $�áØ˜rš
Ø" 2™J×,Ñ,Ó.×9Ñ9¸'ÔBØŸ
™
›×/Ñ/°Ô8à—M‘M "Ô%Ø—‘˜dÕ#ð$ð �M‰MÐ+Ô,Ø�M‰M˜-Ô(Ø�M‰M˜'Ô"Ø�M‰M˜-Õ(à�M‰M˜TŸ\™\˜N¨&°°¸Y¸KÀuÐMÕNùòy &s   ¼Oc                óø   — | j                  || j                  › d|› �«      s| j                  |«      ry| j                  |«       | j	                  | j                  |«      «      }|j                  |› d|› �«       y)zÆGenerate stub for a single variable using runtime introspection.

        The result lines will be appended to 'output'. If necessary, any
        required names will be added to 'imports'.
        ró   Nro  )rS  rn   rU  rV  rä   r²   r´   )r!   r8   ré   rl   Útype_strs        r"   r  z.InspectionStubGenerator.generate_variable_stubŽ  sw   € ð ×Ñ ¨×)9Ñ)9Ð(:¸!¸D¸6Ð&BÔCÀt×GYÑGYÐZ^ÔG_ØØ×Ñ˜ÔØ×'Ñ'¨×(@Ñ(@ÀÓ(EÓFˆØ�‰˜˜˜b  
Ð+Õ,r$   )rc  NFFFN)rn   rJ   rp   rÈ   r+   rJ   r£   úlist[str] | Noner`   rŠ   ra   rŠ   rb   rŠ   rž   zModuleType | NonerH   rI   )rÓ   rˆ  r?   r   rH   r   )rH   zlist[SignatureGenerator])rá   rJ   rH   rJ   )ré   rˆ  rH   rM   )ré   rˆ  rH   rŠ   rŒ   ©r!  rJ   rH   rŠ   )ré   rˆ  rH   zlist[tuple[str, Any]])ré   rˆ  rH   rJ   )r;   r   r8   rJ   ré   rˆ  rH   rŠ   )r;   úClassInfo | Noner8   rJ   ré   rˆ  rH   rŠ   )rH  r   rH   rŠ   )r@   r‹   rH   rI   )
r8   rJ   ré   rˆ  rl   rÈ   r;   rŸ  rH   rI   )rW   rJ   rH   rJ   )r?   r   r@   r‹   rl   rÈ   rH   rI   rC   )r8   rJ   rs  rˆ  ré   rˆ  rt  rÈ   ru  rÈ   rv  rÈ   r;   rŸ  rH   rI   )r  rÇ   rH   rJ   )ré   rÇ   rH   rÈ   )
r•  rJ   r*   rÇ   rl   rÈ   r‘  rŸ  rH   rI   )r8   rJ   ré   rˆ  rl   rÈ   rH   rI   )!rN   rO   rP   rx   r#   r×   rÜ   rä   rê   rì   rk   r"  rø   r²   r  r3  r7  r>  r:  r@  rE  rI  rM  rO  r  rY  r\  r}  rª   rŒ  r  r  Ú__classcell__)r¤   s   @r"   rj   rj   Û   s+  ø„ ñð Ø"&Ø %Ø!Ø#(Ø$(ð)àð)ð !ð)ð ð	)ð
  ð)ð ð)ð ð)ð !ð)ð "ð)ð 
õ)óVj8óX"óUó0ó<ó
L%ó\
ó,ó5ó +ó	+ó)óZð ò9ó ð9ð òEó ðEð ò;ó ð;óóXð \`ñ1.Øð1.Ø$ð1.Ø1:ð1.ØHXð1.à	ó1.ófð$cØ"ðcØ.?ðcØIRðcà	ócð@ (,ðFOàðFOð ðFOð ð	FOð
 %ðFOð !ðFOð !ðFOð %ðFOð 
óFOóPóVð& _cðhOØðhOØ$(ðhOØ2;ðhOØK[ðhOà	óhO÷T
-r$   rj   c                óf   — | dv rd| fS | j                  d«      r| j                  d«      rd| fS d| fS )ziSort methods in classes in a typical order.

    I.e.: constructor, normal methods, special methods.
    r5   r   Ú__é   rß   )r^   rf  rV   s    r"   r�  r�  ›  s?   € ð
 Ð&Ñ&Ø�$ˆwˆØ‡��tÔ §¡¨tÔ!4Ø�$ˆwˆØˆdˆ7€Nr$   c                ó$   — | j                  d«      S )NÚ__pybind11_module_local_r]   )r!  s    r"   r  r  §  s   € Ø�?‰?Ð5Ó6Ð6r$   c                ó&  — d }| j                  d«      �rB| j                  d«      �r0| dd } | dv rg }�n#| dk(  rt        d¬«      g}�n| dk(  rt        d¬«      t        d	¬«      g}nñ| d
v rt        d¬«      g}nß| dk(  rt        d¬«      t        d¬«      g}nÁ| dk(  rg }n¹| dk(  rt        d¬«      g}n¦| dv rt        dd	¬«      g}n“| dv rt        d¬«      g}n�| dv rg }nz| dk(  rt        d¬«      t        d¬«      g}n\| dk(  rt        d¬«      t        d¬«      g}n>| dk(  rt        d¬«      g}n+| dk(  r&t        dd¬«      t        dd¬«      t        d d!¬«      g}|€t        | ||«      }nt        |¬«      g|z   }|€t        d"¬«      t        d#¬«      g}|S )$Nr¢  r£  éþÿÿÿ)ÚhashÚiterÚnextÚsizeofÚcopyÚdeepcopyÚreduceÚgetinitargsrÉ   ÚfloatÚtruncÚcomplexrŠ   ÚabsÚbytesÚdirr½   ÚreversedÚroundr0  ÚenterÚgetitemr0  rV   Úsetitemrˆ  )Údelattrrç   r8   Úsetattrr'  ÚgetstateÚsetstateÚstate)ÚeqÚneÚltÚleÚgtÚgeÚother)r8   rÇ   )(ÚaddÚraddÚsubÚrsubÚmulÚrmulÚmodÚrmodÚfloordivÚ	rfloordivÚtruedivÚrtruedivÚdivmodÚrdivmodÚpowÚrpowÚxorÚrxorÚorÚrorÚandÚrandÚlshiftÚrlshiftÚrshiftÚrrshiftÚcontainsÚdelitemÚiaddÚiandÚ	ifloordivÚilshiftÚimodÚimulÚiorÚipowÚirshiftÚisubÚitruedivÚixor)ÚnegÚposÚinvertr9  ÚinstanceÚownerÚsetÚ	reduce_exÚprotocolÚexitrÇ   ztype[BaseException] | NonezBaseException | NoneÚ	tracebackztypes.TracebackType | Noner¦   r§   )r^   rf  r   r   )r8   r=   Ú	arg_namesr9   s       r"   rÎ   rÎ   «  sÆ  € ð !%€DØ‡��tÕ §¡¨tÕ!4Ø�A�bˆzˆØð 
ñ 
ð. ŠDØ�YÒÜ Ô(Ð)ŠDØ�YÒÜ Ô(¬&°hÔ*?Ð@‰DØÐ+Ñ+Ü Ô'Ð(‰DØ�YÒÜ Ô'¬°WÔ)=Ð>‰DØ�ZÒØ‰DØ�ZÒÜ Ô(Ð)‰DØÐ9Ñ9Ü ¨hÔ7Ð8‰DØð )
ñ )
ôT  Ô(Ð)‰DØÐ-Ñ-Ø‰DØ�UŠ]Ü 
Ô+¬V¸Ô-AÐB‰DØ�UŠ]Ü 
Ô+¬V¸Ô-AÐB‰DØ�[Ò Ü 
Ô+Ð,‰DØ�VŠ^ä˜FÐ)EÔFÜ˜GÐ*@ÔAÜ˜KÐ.JÔKðˆDð
 €|Ü% d¨H°iÓ@‰ä˜HÔ%Ð&¨Ñ-ˆØ€|Ü˜GÔ$¤f°*Ô&=Ð>ˆØ€Kr$   )rW   rJ   r8   rJ   rH   rŠ   )rc  )rn   rJ   ro   rJ   rp   rÈ   r+   rJ   r`   rŠ   ra   rŠ   rb   rŠ   rH   rI   )r8   rJ   rH   ztuple[int, str]rž  )r!   N)r8   rJ   r=   rJ   rù  r�  rH   zlist[ArgSig])5rx   Ú
__future__r   Úenumr&   rœ   rË   r  Úos.pathrf   Úcollections.abcr   r   r  r   r   r‘   r   Úmypy.fastparser	   Úmypy.moduleinspectr
   Úmypy.stubdocr   r   r   r   r   r   r   r   r   r   Úmypy.stubutilr   r   r   r   r   r   Ú	mypy.utilr   r   rS   rX   rt   rv   ÚEnumr�   rj   r�  r  rÎ   rD   r$   r"   ú<module>r     s@  ðñõ
 #ã Û Û Û Û Û ß -ß *Ý å -Ý *÷÷ ÷ ÷÷ õ &ô<Ð!3ô <ô~!Ð"4ô !óHVð ð	&ð "ØØ$ñ&Øð&àð&ð ð&ð ð	&ð ð&ð ð&ð ð&ð 
ó&÷Rñ ð8 ˆ4�9‰9�Z Ó)€ô}
-Ð/ô }
-ó@	ó7ð
 FJðkØ
ðkØðkØ2Bðkàôkr$   