Ë
    pPêj5 ã                  óî  — U 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 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 ddlmZmZ ddlmZmZ dd	lmZmZmZm Z m!Z! dd
l"m#Z#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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZY ddlZm[Z\ ddl]m^Z^ ddl_m`Z` ddlambZb ddlcmdZdmeZe ddlfmgZgmhZh ddlimjZjmkZkmlZlmmZmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZumvZvmwZw ddlmxZxmyZymzZzm{Z{ ddl|m}Z}m~Z~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Š g d¢Z‹deŒd<   g d¢Z�deŒd<   h d£ZŽdeŒd<    G d„ d«      Z[ G d„ d «      Z�d!Z�deŒd!<   d"Z‘deŒd"<   d#Z’deŒd#<   d$Z“deŒd$<   d%Z”deŒd%<   d&Z•deŒd&<   d'Z–deŒd(<    G d)„ d*eŠe—   «      Z˜dPd+„Z™dQd,„Zš G d-„ d.e�j6                  �j8                  «      Z�dPd/„ZždRd0„ZŸ G d1„ d2e�j@                  �jB                  «      Z¢ G d3„ d4eke�j6                  �j8                  «      Z£dSd5„Z¤ G d6„ d7e�j6                  �j8                  «      Z¥dTd8„Z¦dUd9„Z§dVd:„Z¨dWd;„Z©dXd<„ZªdYd=„Z«	 	 	 	 	 	 dZd>„Z¬	 	 	 	 	 	 	 	 	 	 d[d?„Z­d\d@„Z®d]dA„Z¯	 	 	 	 	 	 	 	 	 	 d^dB„Z°d_dC„Z±d`dD„Z²	 	 	 	 	 	 	 	 	 	 dadE„Z³dFdFdFdFdFdGdHœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dbdI„Z´dcdJ„ZµdKZ¶dLZ·dddM„Z¸dedfdN„Z¹eºdOk(  r e¹«        yy)ga,  Generator of dynamically typed draft stubs for arbitrary modules.

The logic of this script can be split in three steps:
* parsing options and finding sources:
  - use runtime imports be default (to find also C modules)
  - or use mypy's mechanisms, if importing is prohibited
* (optionally) semantically analysing the sources using mypy (as a single set)
* emitting the stubs text:
  - for Python modules: from ASTs using ASTStubGenerator
  - for C modules using runtime introspection and (optionally) Sphinx docs

During first and third steps some problematic files can be skipped, but any
blocking error during second step will cause the whole program to stop.

Basic usage:

  $ stubgen foo.py bar.py some_directory
  => Generate out/foo.pyi, out/bar.pyi, and stubs for some_directory (recursively).

  $ stubgen -m urllib.parse
  => Generate out/urllib/parse.pyi.

  $ stubgen -p urllib
  => Generate stubs for whole urllib package (recursively).

For C modules, you can get more precise function signatures by parsing .rst (Sphinx)
documentation for extra information. For this, use the --doc-dir option:

  $ stubgen --doc-dir <DIR>/Python-3.4.2/Doc/library -m curses

Note: The generated stubs should be verified manually.

TODO:
 - maybe use .rst docs also for Python modules
 - maybe export more imported names if there is no __all__ (this affects ssl.SSLError, for example)
   - a quick and dirty heuristic would be to turn this on if a module has something like
     'from x import y as _y'
 - we don't seem to always detect properties ('closed' in 'io', for example)
é    )ÚannotationsN)ÚIterableÚIterator)ÚFinal)Úbuild)ÚCompileErrorÚErrors)ÚInvalidSourceListÚcreate_source_list)ÚBuildSourceÚFindModuleCacheÚModuleNotFoundReasonÚSearchPathsÚdefault_lib_path)ÚModuleInspectÚis_pyc_only)4Ú	ARG_NAMEDÚARG_POSÚARG_STARÚ	ARG_STAR2ÚIS_ABSTRACTÚNOT_ABSTRACTÚAssignmentStmtÚBlockÚ	BytesExprÚCallExprÚCastExprÚClassDefÚComparisonExprÚComplexExprÚConditionalExprÚ	DecoratorÚDictExprÚDictionaryComprehensionÚEllipsisExprÚ
ExpressionÚExpressionStmtÚ	FloatExprÚFuncBaseÚFuncDefÚGeneratorExprÚIfStmtÚImportÚ	ImportAllÚ
ImportFromÚ	IndexExprÚIntExprÚ
LambdaExprÚListComprehensionÚListExprÚ
MemberExprÚMypyFileÚNameExprÚOpExprÚOverloadedFuncDefÚSetComprehensionÚSetExprÚ	SliceExprÚStarExprÚ	StatementÚStrExprÚTemplateStrExprÚTempNodeÚ	TupleExprÚTypeAliasStmtÚTypeInfoÚ	UnaryExprÚVar)ÚOptions)ÚDATACLASS_FIELD_SPECIFIERS)Úfind_dataclass_transform_spec)ÚMAGIC_METHODS_POS_ARGS_ONLY)ÚArgSigÚFunctionSig)ÚInspectionStubGeneratorÚgenerate_stub_for_c_module)ÚTYPING_BUILTIN_REPLACEMENTSÚBaseStubGeneratorÚ
CantImportÚ	ClassInfoÚFunctionContextÚcommon_dir_prefixÚfail_missingÚfind_module_path_and_all_py3Úgenerate_guardedÚinfer_method_arg_typesÚinfer_method_ret_typeÚremove_misplaced_type_commentsÚreport_missingÚwalk_packages)Úall_yield_expressionsÚhas_return_statementÚhas_yield_expressionÚhas_yield_from_expression)ÚDATACLASS_TRANSFORM_NAMESÚOVERLOAD_NAMESÚTPDICT_NAMESÚTYPE_VAR_LIKE_NAMESÚTYPED_NAMEDTUPLE_NAMESÚAnyTypeÚCallableTypeÚInstanceÚ	TupleTypeÚTypeÚUnboundTypeÚget_proper_type)ÚNodeVisitor)ÚpackagesÚvendorÚvendoredÚ_vendorÚ_vendored_packagesr   ÚVENDOR_PACKAGES)z/six.py
z
/vendored/z/vendor/z	/_vendor/z/_vendored_packages/Ú	BLACKLIST>   Ú__eq__Ú__ge__Ú__gt__Ú__le__Ú__lt__Ú__ne__Ú__hash__Ú__iter__ÚMETHODS_WITH_RETURN_VALUEc                  ó`   — e Zd ZdZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zy)rG   zPRepresents stubgen options.

    This class is mutable to simplify testing.
    c                ó   — || _         || _        || _        || _        || _        || _        || _        || _        || _        |	| _	        |
| _
        || _        || _        || _        || _        || _        || _        || _        y ©N)Ú	pyversionÚ	no_importÚinspectÚdoc_dirÚsearch_pathÚinterpreterÚdecointerpreterÚ
parse_onlyÚignore_errorsÚinclude_privateÚ
output_dirÚmodulesrn   ÚfilesÚverboseÚquietÚexport_lessÚinclude_docstrings)Úselfr�   r‚   rƒ   r„   r…   r†   rˆ   r‰   rŠ   r‹   rŒ   rn   r�   rŽ   r�   r�   r‘   s                     úQ/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/stubgen.pyÚ__init__zOptions.__init__Ç   s‰   € ð* #ˆŒØ"ˆŒØˆŒØˆŒØ&ˆÔØ&ˆÔØ*ˆÔØ$ˆŒØ*ˆÔØ.ˆÔØ$ˆŒØˆŒØ ˆŒØˆŒ
ØˆŒØˆŒ
Ø&ˆÔØ"4ˆÕó    N)$r�   útuple[int, int]r‚   Úboolrƒ   r—   r„   Ústrr…   ú	list[str]r†   r˜   rˆ   r—   r‰   r—   rŠ   r—   r‹   r˜   rŒ   r™   rn   r™   r�   r™   rŽ   r—   r�   r—   r�   r—   r‘   r—   ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r”   © r•   r“   rG   rG   Á   s¾   „ ñð
&5à"ð&5ð ð&5ð ð	&5ð
 ð&5ð ð&5ð ð&5ð ð&5ð ð&5ð ð&5ð ð&5ð ð&5ð ð&5ð ð&5ð ð&5ð  ð!&5ð" ð#&5ð$ !ð%&5ð& 
ô'&5r•   rG   c                  óV   — e Zd ZdZ	 d	 	 	 	 	 	 	 dd„Zd	d„Zed	d„«       Zed
d„«       Zy)Ú
StubSourcez®A single source for stub: can be a Python or C module.

    A simple extension of BuildSource that also carries the AST and
    the value of __all__ detected at runtime.
    Nc                óD   — t        ||d «      | _        || _        d | _        y r€   )r   ÚsourceÚruntime_allÚast)r’   ÚmoduleÚpathr¥   s       r“   r”   zStubSource.__init__÷   s#   € ô " $¨°Ó5ˆŒØ&ˆÔØ$(ˆ�r•   c                ó"   — d| j                   › d�S )NzStubSource(ú))r¤   ©r’   s    r“   Ú__repr__zStubSource.__repr__þ   s   € Ø˜TŸ[™[˜M¨Ð+Ð+r•   c                ó.   — | j                   j                  S r€   )r¤   r§   r«   s    r“   r§   zStubSource.module  s   € à�{‰{×!Ñ!Ð!r•   c                ó.   — | j                   j                  S r€   )r¤   r¨   r«   s    r“   r¨   zStubSource.path  s   € à�{‰{×ÑÐr•   )NN)r§   r˜   r¨   ú
str | Noner¥   úlist[str] | Nonerš   r›   )rš   r˜   )rš   r¯   )	rœ   r�   rž   rŸ   r”   r¬   Úpropertyr§   r¨   r    r•   r“   r¢   r¢   ð   s`   „ ñð UYð)Øð)Ø!+ð)ØAQð)à	ó)ó,ð ò"ó ð"ð ò ó ñ r•   r¢   ÚEMPTYÚFUNCÚCLASSÚEMPTY_CLASSÚVARÚ
NOT_IN_ALLz<ERROR>ÚERROR_MARKERc                  ó  ‡ — e Zd ZdZ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d/d„Zd0d„Zd1d„Zd2d„Zd3d„Zd4d„Zd5d„Zd6d„Zd7d„Zd8d„Zd9d„Zd:d„Zd;d„Zd<d„Zd=d„Z d>d„Z!d?d „Z"ˆ xZ#S )@ÚAliasPrinterz�Visitor used to collect type aliases _and_ type variable definitions.

    Visit r.h.s of the definition to get the string representation of type alias.
    c                ó0   •— || _         t        ‰| �	  «        y r€   )ÚstubgenÚsuperr”   )r’   r¼   Ú	__class__s     €r“   r”   zAliasPrinter.__init__  s   ø€ ØˆŒÜ‰ÑÕr•   c                óT  — |j                   j                  | «      }g }t        |j                  |j                  |j
                  «      D ]Ç  \  }}}|t        k(  r!|j                  |j                  | «      «       Œ1|t        k(  r$|j                  d|j                  | «      z   «       Œ^|t        k(  r$|j                  d|j                  | «      z   «       Œ‹|t        k(  r&|j                  |› d|j                  | «      › �«       Œºt        d|› d�«      ‚ |› ddj                  |«      › d�S )	NÚ*ú**ú=zUnknown argument kind z in callú(ú, rª   )ÚcalleeÚacceptÚzipÚ	arg_namesÚargsÚ	arg_kindsr   Úappendr   r   r   Ú
ValueErrorÚjoin)r’   ÚnoderÅ   rÉ   ÚnameÚargÚkinds          r“   Úvisit_call_exprzAliasPrinter.visit_call_expr#  s  € ð —‘×#Ñ# DÓ)ˆØˆÜ" 4§>¡>°4·9±9¸d¿n¹nÓMò 
	J‰OˆD�#�tØ”wŠØ—‘˜CŸJ™J tÓ,Õ-ØœÒ!Ø—‘˜C #§*¡*¨TÓ"2Ñ2Õ3ØœÒ"Ø—‘˜D 3§:¡:¨dÓ#3Ñ3Õ4ØœÒ"Ø—‘˜t˜f A c§j¡j°Ó&6Ð%7Ð8Õ9ä Ð#9¸$¸¸xÐ!HÓIÐIð
	Jð �˜˜4Ÿ9™9 T›?Ð+¨1Ð-Ð-r•   c                óô   — | j                   j                  |«      }|t        v r$| j                   j                  t        |   d¬«      S t	        |«      }| j                   j
                  j                  |«       |S )NF)Úrequire)r¼   Úget_fullnamerO   Úadd_nameÚget_qualified_nameÚimport_trackerÚrequire_name)r’   rÎ   ÚfullnameÚqualnames       r“   Ú_visit_ref_exprzAliasPrinter._visit_ref_expr5  sg   € Ø—<‘<×,Ñ,¨TÓ2ˆØÔ2Ñ2Ø—<‘<×(Ñ(Ô)DÀXÑ)NÐX]Ð(Ó^Ð^Ü% dÓ+ˆØ�‰×#Ñ#×0Ñ0°Ô:Øˆr•   c                ó$   — | j                  |«      S r€   ©rÜ   ©r’   rÎ   s     r“   Úvisit_name_exprzAliasPrinter.visit_name_expr=  s   € Ø×#Ñ# DÓ)Ð)r•   c                ó$   — | j                  |«      S r€   rÞ   ©r’   Úos     r“   Úvisit_member_exprzAliasPrinter.visit_member_expr@  s   € Ø×#Ñ# AÓ&Ð&r•   c                ó,   — t        |j                  «      S r€   )ÚreprÚvaluerß   s     r“   Ú_visit_literal_nodez AliasPrinter._visit_literal_nodeC  s   € ô �D—J‘JÓÐr•   c                ó$   — | j                  |«      S r€   ©rè   rß   s     r“   Úvisit_str_exprzAliasPrinter.visit_str_exprH  ó   € Ø×'Ñ'¨Ó-Ð-r•   c                ó*   — d| j                  |«      › �S )NÚbrê   rß   s     r“   Úvisit_bytes_exprzAliasPrinter.visit_bytes_exprK  s   € Ø�4×+Ñ+¨DÓ1Ð2Ð3Ð3r•   c                ó$   — | j                  |«      S r€   rê   rß   s     r“   Úvisit_int_exprzAliasPrinter.visit_int_exprN  rì   r•   c                ó$   — | j                  |«      S r€   rê   rß   s     r“   Úvisit_float_exprzAliasPrinter.visit_float_exprQ  rì   r•   c                ó$   — | j                  |«      S r€   rê   rß   s     r“   Úvisit_complex_exprzAliasPrinter.visit_complex_exprT  rì   r•   c                ó  — | j                   j                  |j                  «      }|dk(  rwt        |j                  t
        «      rBdj                  |j                  j                  D �cg c]  }|j                  | «      ‘Œ c}«      S |j                  j                  | «      S |dk(  rSt        |j                  t
        «      r| j                   j                  d«      S |j                  j                  | «      › d�S |j                  j                  | «      }|j                  j                  | «      }t        |«      dkD  r6|j                  d«      r%|j                  d«      r|d	d
 j                  d«      }|› d|› d�S c c}w )Nztyping.Unionz | ztyping.Optionalú_typeshed.Incompletez | Noneé   rÃ   rª   é   éÿÿÿÿú,ú[ú])r¼   rÕ   ÚbaseÚ
isinstanceÚindexrB   rÍ   ÚitemsrÆ   rÖ   ÚlenÚ
startswithÚendswithÚrstrip)r’   rÎ   Úbase_fullnameÚitemrþ   r   s         r“   Úvisit_index_exprzAliasPrinter.visit_index_exprW  s6  € ØŸ™×1Ñ1°$·)±)Ó<ˆØ˜NÒ*Ü˜$Ÿ*™*¤iÔ0Ø—z‘zÀÇÁ×AQÑAQÖ"R¸ 4§;¡;¨tÕ#4Ò"RÓSÐSØ—:‘:×$Ñ$ TÓ*Ð*ØÐ-Ò-Ü˜$Ÿ*™*¤iÔ0Ø—|‘|×,Ñ,Ð-CÓDÐDØ—j‘j×'Ñ'¨Ó-Ð.¨gÐ6Ð6Ø�y‰y×Ñ Ó%ˆØ—
‘
×!Ñ! $Ó'ˆÜˆu‹:˜Š>˜e×.Ñ.¨sÔ3¸¿¹ÀsÔ8KØ˜!˜B�K×&Ñ& sÓ+ˆEØ��q˜˜˜qÐ!Ð!ùò #Ss   Á(E<c                ó�   ‡ — t        |j                  «      dk(  rdnd}ddj                  ˆ fd„|j                  D «       «      › |› d�S )Nrù   rû   Ú rÃ   rÄ   c              3  ó@   •K  — | ]  }|j                  ‰«      –— Œ y ­wr€   ©rÆ   ©Ú.0Únr’   s     €r“   ú	<genexpr>z0AliasPrinter.visit_tuple_expr.<locals>.<genexpr>i  ó   øè ø€ Ò@°˜QŸX™X dŸ^Ñ@ùó   ƒrª   )r  r  rÍ   )r’   rÎ   Úsuffixs   `  r“   Úvisit_tuple_exprzAliasPrinter.visit_tuple_exprg  s@   ø€ Ü˜DŸJ™J›¨1Ò,‘°"ˆØ�4—9‘9Ó@°T·Z±ZÔ@Ó@ÐAÀ&ÀÈÐKÐKr•   c                óT   ‡ — ddj                  ˆ fd„|j                  D «       «      › d�S )Nrü   rÄ   c              3  ó@   •K  — | ]  }|j                  ‰«      –— Œ y ­wr€   r  r  s     €r“   r  z/AliasPrinter.visit_list_expr.<locals>.<genexpr>l  r  r  rý   ©rÍ   r  rß   s   ` r“   Úvisit_list_exprzAliasPrinter.visit_list_exprk  s&   ø€ Ø�4—9‘9Ó@°T·Z±ZÔ@Ó@ÐAÀÐCÐCr•   c                óT   ‡ — ddj                  ˆ fd„|j                  D «       «      › d�S )Nú{rÄ   c              3  ó@   •K  — | ]  }|j                  ‰«      –— Œ y ­wr€   r  r  s     €r“   r  z.AliasPrinter.visit_set_expr.<locals>.<genexpr>o  s   øè ø€ ÒA°˜aŸh™h tŸnÑAùr  ú}r  rß   s   ` r“   Úvisit_set_exprzAliasPrinter.visit_set_exprn  s&   ø€ Ø�D—I‘IÓA°d·j±jÔAÓAÐBÀ"ÐEÐEr•   c                óä   — g }|j                   D ]K  \  }}t        |t        «      sJ ‚|j                  |j	                  | «      › d|j	                  | «      › �«       ŒM ddj                  |«      › d�S )Nú: r  rÄ   r  )r  rÿ   r?   rË   rÆ   rÍ   )r’   rã   Ú
dict_itemsÚkeyrç   s        r“   Úvisit_dict_exprzAliasPrinter.visit_dict_exprq  sx   € Øˆ
ØŸ'™'ò 	K‰JˆC�ä˜c¤7Ô+Ð+Ð+Ø×Ñ §¡¨DÓ!1Ð 2°"°U·\±\À$Ó5GÐ4HÐIÕJð	Kð �D—I‘I˜jÓ)Ð*¨"Ð-Ð-r•   c                ó8   — | j                   j                  d«      S ©Nr÷   ©r¼   rÖ   râ   s     r“   Úvisit_template_str_exprz$AliasPrinter.visit_template_str_expry  s   € Ø�|‰|×$Ñ$Ð%;Ó<Ð<r•   c                 ó   — y)Nú...r    rß   s     r“   Úvisit_ellipsiszAliasPrinter.visit_ellipsis|  s   € Ør•   c                óŽ   — |j                   j                  | «      › d|j                  › d|j                  j                  | «      › �S )Nú )ÚleftrÆ   ÚopÚrightrâ   s     r“   Úvisit_op_exprzAliasPrinter.visit_op_expr  s9   € Ø—&‘&—-‘- Ó%Ð& a¨¯© v¨Q¨q¯w©w¯~©~¸dÓ/CÐ.DÐEÐEr•   c               óT   — |j                   › |j                  j                  | «      › �S r€   )r-  ÚexprrÆ   râ   s     r“   Úvisit_unary_exprzAliasPrinter.visit_unary_expr‚  s#   € Ø—$‘$�˜Ÿ™Ÿ™ dÓ+Ð,Ð-Ð-r•   c               ó4  — |j                   �|j                   j                  | «      nd|j                  �|j                  j                  | «      ndg}|j                  �*|j	                  |j                  j                  | «      «       dj                  |«      S )Nr
  ú:)Úbegin_indexrÆ   Ú	end_indexÚstriderË   rÍ   )r’   rã   Úblockss      r“   Úvisit_slice_exprzAliasPrinter.visit_slice_expr…  sw   € à*+¯-©-Ð*CˆA�M‰M× Ñ  Ô&ÈØ()¯©Ð(?ˆA�K‰K×Ñ˜tÔ$ÀRð
ˆð �8‰8ÐØ�M‰M˜!Ÿ(™(Ÿ/™/¨$Ó/Ô0Ø�x‰x˜ÓÐr•   c                ó>   — d|j                   j                  | «      › �S )NrÀ   )r1  rÆ   râ   s     r“   Úvisit_star_exprzAliasPrinter.visit_star_exprŽ  s   € Ø�1—6‘6—=‘= Ó&Ð'Ð(Ð(r•   c                ó8   — | j                   j                  d«      S r$  r%  râ   s     r“   Úvisit_lambda_exprzAliasPrinter.visit_lambda_expr‘  ó   € à�|‰|×$Ñ$Ð%;Ó<Ð<r•   c                ó8   — | j                   j                  d«      S r$  r%  râ   s     r“   Ú_visit_unsupported_exprz$AliasPrinter._visit_unsupported_expr•  r>  r•   c                ó$   — | j                  |«      S r€   ©r@  râ   s     r“   Úvisit_comparison_exprz"AliasPrinter.visit_comparison_expr™  ó   € Ø×+Ñ+¨AÓ.Ð.r•   c                ó$   — | j                  |«      S r€   rB  râ   s     r“   Úvisit_cast_exprzAliasPrinter.visit_cast_exprœ  rD  r•   c                ó$   — | j                  |«      S r€   rB  râ   s     r“   Úvisit_conditional_exprz#AliasPrinter.visit_conditional_exprŸ  rD  r•   c                ó$   — | j                  |«      S r€   rB  râ   s     r“   Úvisit_list_comprehensionz%AliasPrinter.visit_list_comprehension¢  rD  r•   c                ó$   — | j                  |«      S r€   rB  râ   s     r“   Úvisit_set_comprehensionz$AliasPrinter.visit_set_comprehension¥  rD  r•   c                ó$   — | j                  |«      S r€   rB  râ   s     r“   Úvisit_dictionary_comprehensionz+AliasPrinter.visit_dictionary_comprehension¨  rD  r•   c                ó$   — | j                  |«      S r€   rB  râ   s     r“   Úvisit_generator_exprz!AliasPrinter.visit_generator_expr«  rD  r•   )r¼   ÚASTStubGeneratorrš   r›   )rÎ   r   rš   r˜   )rÎ   zNameExpr | MemberExprrš   r˜   )rÎ   r7   rš   r˜   )rã   r5   rš   r˜   )rÎ   z7StrExpr | BytesExpr | IntExpr | FloatExpr | ComplexExprrš   r˜   )rÎ   r?   rš   r˜   )rÎ   r   rš   r˜   )rÎ   r1   rš   r˜   )rÎ   r(   rš   r˜   )rÎ   r    rš   r˜   )rÎ   r0   rš   r˜   )rÎ   rB   rš   r˜   )rÎ   r4   rš   r˜   )rÎ   r;   rš   r˜   )rã   r#   rš   r˜   )rã   r@   rš   r˜   )rÎ   r%   rš   r˜   )rã   r8   rš   r˜   )rã   rE   rš   r˜   )rã   r<   rš   r˜   )rã   r=   rš   r˜   )rã   r2   rš   r˜   )rã   Úobjectrš   r˜   )rã   r   rš   r˜   )rã   r   rš   r˜   )rã   r!   rš   r˜   )rã   r3   rš   r˜   )rã   r:   rš   r˜   )rã   r$   rš   r˜   )rã   r+   rš   r˜   )$rœ   r�   rž   rŸ   r”   rÒ   rÜ   rà   rä   rè   rë   rï   rñ   ró   rõ   r  r  r  r  r"  r&  r)  r/  r2  r9  r;  r=  r@  rC  rF  rH  rJ  rL  rN  rP  Ú__classcell__©r¾   s   @r“   rº   rº     s·   ø„ ñõ
ó.ó$ó*ó'ð ØKð à	ó ó
.ó4ó.ó.ó.ó"ó LóDóFó.ó=óóFó.ó ó)ó=ó=ó/ó/ó/ó/ó/ó/÷/r•   rº   c                óP   — t        «       }| j                  |«       |j                  S r€   )ÚDefinitionFinderrÆ   Únames©ÚfileÚfinders     r“   Úfind_defined_namesr[  ¯  s    € ÜÓ€FØ‡K�K�ÔØ�<‰<Ðr•   c              #  ó¸   K  — | D ]O  }t        |t        «      r|j                  –— Œ"t        |t        «      sŒ3t	        |j
                  «      E d {  –—†  ŒQ y 7 Œ­wr€   )rÿ   r7   rÏ   rB   Úget_assigned_namesr  )ÚlvaluesÚlvalues     r“   r]  r]  µ  sJ   è ø€ Øò 8ˆÜ�fœhÔ'Ø—+‘+ÓÜ˜¤	Õ*Ü)¨&¯,©,Ó7×7Ñ7ñ	8ð 8ús   ‚5A¸AÁAÁAc                  ó8   — e Zd ZdZdd„Zd	d„Zd
d„Zdd„Zdd„Zy)rV  z:Find names of things defined at the top level of a module.c                ó"   — t        «       | _        y r€   )ÚsetrW  r«   s    r“   r”   zDefinitionFinder.__init__À  s   € ä"›uˆ�
r•   c                óN   — | j                   j                  |j                  «       y r€   ©rW  ÚaddrÏ   râ   s     r“   Úvisit_class_defz DefinitionFinder.visit_class_defÄ  ó   € à�
‰
�‰�q—v‘vÕr•   c                óN   — | j                   j                  |j                  «       y r€   rd  râ   s     r“   Úvisit_func_defzDefinitionFinder.visit_func_defÈ  rg  r•   c                ón   — t        |j                  «      D ]  }| j                  j                  |«       Œ y r€   )r]  r^  rW  re  )r’   rã   rÏ   s      r“   Úvisit_assignment_stmtz&DefinitionFinder.visit_assignment_stmtÌ  s*   € Ü& q§y¡yÓ1ò 	!ˆDØ�J‰J�N‰N˜4Õ ñ	!r•   c                ób   — | j                   j                  |j                  j                  «       y r€   rd  râ   s     r“   Úvisit_type_alias_stmtz&DefinitionFinder.visit_type_alias_stmtÐ  s   € Ø�
‰
�‰�q—v‘v—{‘{Õ#r•   N©rš   r›   ©rã   r   rš   r›   ©rã   r*   rš   r›   ©rã   r   rš   r›   ©rã   rC   rš   r›   )	rœ   r�   rž   rŸ   r”   rf  ri  rk  rm  r    r•   r“   rV  rV  ½  s   „ ÙDó%óóó!ô$r•   rV  c                óP   — t        «       }| j                  |«       |j                  S r€   )ÚReferenceFinderrÆ   ÚrefsrX  s     r“   Úfind_referenced_namesrv  Ô  s    € ÜÓ€FØ‡K�K�ÔØ�;‰;Ðr•   c                óD   — t        | t        «      xr | j                  dk(  S )Nr›   )rÿ   r7   rÏ   )r1  s    r“   Úis_none_exprrx  Ú  s   € Ü�dœHÓ%Ò=¨$¯)©)°vÑ*=Ð=r•   c                  ó`   ‡ — e Zd ZdZd
d„Zdˆ fd„Zdd„Zdˆ fd„Zdd„Zdd„Z	dd„Z
dd	„Zˆ xZS )rt  z1Find all name references (both local and global).c                ó"   — t        «       | _        y r€   )rb  ru  r«   s    r“   r”   zReferenceFinder.__init__ã  s   € ä!›eˆ�	r•   c                ó>   •— |j                   st        ‰| �	  |«       y y r€   ©Úis_unreachabler½   Úvisit_block)r’   Úblockr¾   s     €r“   r~  zReferenceFinder.visit_blockç  s   ø€ Ø×#Ò#Ü‰GÑ Õ&ð $r•   c                óN   — | j                   j                  |j                  «       y r€   )ru  re  rÏ   )r’   Úes     r“   rà   zReferenceFinder.visit_name_exprë  s   € Ø�	‰	�‰�a—f‘fÕr•   c                ón   •— | j                  |j                  j                  «       t        ‰| �  |«       y r€   )Úadd_refÚtyperÏ   r½   Úvisit_instance)r’   Útr¾   s     €r“   r…  zReferenceFinder.visit_instanceî  s$   ø€ Ø�‰�Q—V‘V—[‘[Ô!Ü‰Ñ˜qÕ!r•   c                óT   — |j                   r| j                  |j                   «       y y r€   )rÏ   rƒ  )r’   r†  s     r“   Úvisit_unbound_typez"ReferenceFinder.visit_unbound_typeò  s   € Ø�6Š6Ø�L‰L˜Ÿ™Õ ð r•   c                óH   — |j                   D ]  }|j                  | «       Œ y r€   )r  rÆ   )r’   r†  r  s      r“   Úvisit_tuple_typez ReferenceFinder.visit_tuple_typeö  s!   € à—G‘Gò 	ˆDØ�K‰K˜Õñ	r•   c                ó~   — |j                   D ]  }|j                  | «       Œ |j                  j                  | «       y r€   )Ú	arg_typesrÆ   Úret_type)r’   r†  rÐ   s      r“   Úvisit_callable_typez#ReferenceFinder.visit_callable_typeû  s3   € à—;‘;ò 	ˆCØ�J‰J�tÕð	à	�
‰
×Ñ˜$Õr•   c                ó®   — | j                   j                  |«       d|v r6|j                  dd«      d   }| j                   j                  |«       d|v rŒ5y y )Nú.rù   r   )ru  re  Úrsplit)r’   rÚ   s     r“   rƒ  zReferenceFinder.add_ref  sG   € Ø�	‰	�‰�hÔØ�X‰oØ—‘ s¨AÓ.¨qÑ1ˆHØ�I‰I�M‰M˜(Ô#ð �XŒor•   rn  )r  r   rš   r›   )r�  r7   rš   r›   )r†  rh   rš   r›   )r†  rk   rš   r›   )r†  ri   rš   r›   )r†  rg   rš   r›   )rÚ   r˜   rš   r›   )rœ   r�   rž   rŸ   r”   r~  rà   r…  rˆ  rŠ  rŽ  rƒ  rS  rT  s   @r“   rt  rt  Þ  s.   ø„ Ù;ó$õ'óõ"ó!óó
 ÷$r•   rt  c                  óÚ  ‡ — e Zd ZdZ	 	 	 	 	 d.	 	 	 	 	 	 	 	 	 	 	 d/ˆ fd„Zed0d„«       Zd1ˆ fd„Zd2d„Zd3d„Z	d4d„Z
d5d„Zd6d	„Zd7d
„Zd8d„Zd8d„Zd9d„Zd:ˆ fd„Zd;d„Zd;d„Zd<d„Zd<d„Zd=ˆ fd„Zd>d„Zd?d„Zd?d„Zd@d„ZdAd„Zd?d„ZdAd„ZdBd„ZdCdDd„Z	 dE	 	 	 	 	 	 	 dFd„Z dGd„Z!dHˆ fd „Z"dId!„Z#dJd"„Z$dKd#„Z%	 dL	 	 	 	 	 	 	 dMd$„Z&dNd%„Z'dEdOd&„Z(dPd'„Z)dQd(„Z*dd)œdRd*„Z+dSd+„Z,dTd,„Z-dUˆ fd-„Z.ˆ xZ/S )VrQ  z#Generate stub text from a mypy AST.c                óÂ   •— t         ‰| �  ||||«       g | _        g g| _        t        | _        g | _        || _        t        «       | _	        d| _
        d| _        d| _        y )NFr    )r½   r”   Ú_decoratorsÚ_varsr²   Ú_stateÚ_class_stackÚanalyzedrb  Úmethod_namesÚprocessing_enumÚprocessing_dataclassÚdataclass_field_specifier)r’   Ú_all_rŠ   r˜  r�   r‘   r¾   s         €r“   r”   zASTStubGenerator.__init__  sb   ø€ ô 	‰Ñ˜ °Ð>PÔQØ&(ˆÔà') dˆŒ
äˆŒØ,.ˆÔà ˆŒä&)£eˆÔØ$ˆÔØ$)ˆÔ!Ø:<ˆÕ&r•   c                ó<   — | j                   r| j                   d   S d S )Nrú   )r—  r«   s    r“   Ú_current_classzASTStubGenerator._current_class"  s    € à(,×(9Ò(9ˆt× Ñ  Ñ$ÐC¸tÐCr•   c                óÜ   •— |j                   | _        |j                  | _        | j                  t	        |«      «       t        |«      | _        t        ‰| �!  |«       | j                  «        y r€   )
rÚ   Úmodule_namer¨   Úset_defined_namesr[  rv  Úreferenced_namesr½   Úvisit_mypy_fileÚcheck_undefined_names©r’   rã   r¾   s     €r“   r¤  z ASTStubGenerator.visit_mypy_file&  sT   ø€ ØŸ:™:ˆÔØ—F‘FˆŒ	Ø×ÑÔ1°!Ó4Ô5Ü 5°aÓ 8ˆÔÜ‰Ñ Ô"Ø×"Ñ"Õ$r•   c                óÖ  — d}|j                   D ]Ø  }t        |t        «      sŒ| j                  |j                  j
                  |j                  j                  «      rŒO| j                  |«       |s5| j                  |j                  «       |j                  j                  sŒ”d}Œ—|j                  j                  r| j                  |j                  «       ŒÉ| j                  «        ŒÚ y)zD@property with setters and getters, @overload chain and some others.FTN)r  rÿ   r"   Úis_private_nameÚfuncrÏ   rÚ   Úprocess_decoratorri  Úis_overloadÚclear_decorators)r’   rã   Úoverload_chainr  s       r“   Úvisit_overloaded_func_defz*ASTStubGenerator.visit_overloaded_func_def.  s®   € àˆØ—G‘Gò 	(ˆDÜ˜d¤IÔ.ØØ×#Ñ# D§I¡I§N¡N°D·I±I×4FÑ4FÔGØà×"Ñ" 4Ô(Ù!Ø×#Ñ# D§I¡IÔ.Ø—9‘9×(Ó(Ø%)‘NØ—‘×&Ò&Ø×#Ñ# D§I¡IÕ.ð ×%Ñ%Õ'ñ	(r•   c                óœ   — | j                  ||«      }| j                  ||«      }| j                  |«      }t        |j                  |||«      S r€   )Ú_get_func_argsÚ_get_func_returnÚformat_type_argsrL   rÏ   )r’   Úfunc_defÚctxrÉ   ÚretnameÚ	type_argss         r“   Úget_default_function_sigz)ASTStubGenerator.get_default_function_sigB  sK   € Ø×"Ñ" 8¨SÓ1ˆØ×'Ñ'¨°#Ó6ˆØ×)Ñ)¨(Ó3ˆ	Ü˜8Ÿ=™=¨$°¸ÓCÐCr•   c           
     óD  — g }|j                   t        v}d}t        |j                  «      D �]¤  \  }}|j                  }|j
                  }	|j                   }
t        |j                  t        «      r|j                  j                  |   nd }|dk(  xr |
dk(  }|dk(  xr |
dk(  }d }|r.|s,|s*t        t        |«      t        «      s| j                  |«      }|r|j                  r|dz  }|	j                  «       r,t        d„ |D «       «      s|j!                  t#        d«      «       d}|j$                  rP|s| j'                  |j$                  d¬	«      }| j)                  |j$                  «      \  }}|r.t+        |«      d
k  r |}n|	t,        k(  rd|
› �}
n|	t.        k(  rd|
› �}
|j!                  t#        |
|t1        |j$                  «      |¬«      «       �Œ§ |r|j3                  |t#        d«      «       |j4                  �žt7        d„ |D «       «      rŒt9        |j                   |j4                  j:                  |D �cg c]  }|j                   ‘Œ c}«      }|j                   dk(  r6| j<                  j?                  d«       | j<                  jA                  d«       |�|}|S c c}w )Nr   r’   Úclsrù   c              3  óR   K  — | ]  }|j                   j                  d «      –— Œ! y­w)rÀ   N)rÏ   r  ©r  rÐ   s     r“   r  z2ASTStubGenerator._get_func_args.<locals>.<genexpr>e  s   è ø€ Ò*TÈ¨3¯8©8×+>Ñ+>¸s×+CÑ*Tùs   ‚%'rÀ   r(  F©Úcan_be_incompleteéÈ   rÁ   )ÚdefaultÚdefault_valueú/c              3  óX   K  — | ]"  }|j                   d u xr |j                  du –— Œ$ y ­w)NF)r„  r¿  r»  s     r“   r  z2ASTStubGenerator._get_func_args.<locals>.<genexpr>z  s/   è ø€ ò .
Ø:=ˆC�H‰H˜ÐÒ5 §¡°Ð!5Ó5ñ.
ùs   ‚(*Ú__exit__Útypes)!rÏ   rJ   Ú	enumerateÚ	argumentsÚvariablerÑ   rÿ   Úunanalyzed_typerg   rŒ  rl   rf   Úprint_annotationÚpos_onlyÚis_namedÚanyrË   rK   ÚinitializerÚget_str_type_of_nodeÚget_str_default_of_noder  r   r   r—   ÚinsertÚ
class_infoÚallrX   Úself_varrØ   Ú
add_importrÙ   )r’   rã   r´  rÉ   Úactually_pos_only_argsÚpos_only_marker_positionÚiÚarg_ÚvarrÑ   rÏ   Úannotated_typeÚis_self_argÚ
is_cls_argÚtypenamer¿  Úpotential_defaultÚvalidrÐ   Únew_argss                       r“   r°  zASTStubGenerator._get_func_argsH  sq  € Øˆð "#§¡Ô/JÐ!JÐØ#$Ð Ü  §¡Ó-ó (	‰GˆAˆtØ—-‘-ˆCØ—9‘9ˆDØ—8‘8ˆDô ˜a×/Ñ/´Ô>ð ×!Ñ!×+Ñ+¨AÒ.àð ð ˜q™&Ò3 T¨V¡^ˆKØ˜a™Ò1 D¨E¡MˆJØ#'ˆHÙ¡k¹*ô "¤/°.Ó"AÄ7ÔKØ#×4Ñ4°^ÓD�Há%¨$¯-ª-Ø(¨AÑ-Ð(à�}‰}Œ¤sÑ*TÈtÔ*TÔ'TØ—‘œF 3›KÔ(àˆGØ×ÒÙØ#×8Ñ8¸×9IÑ9IÐ]bÐ8Óc�HØ+/×+GÑ+GÈ×HXÑHXÓ+YÑ(Ð! 5ÙœSÐ!2Ó3°sÒ:Ø/‘GØœÒ!Ø˜4˜&�z‘ØœÒ"Ø˜D˜6�{�à�K‰KÜ�t˜X¬t°D×4DÑ4DÓ/EÐU\Ô]öðM(	ñR $Ø�K‰KÐ0´&¸³+Ô>à�>‰>Ð%¬#ñ .
ØAEô.
ô +
ô .Ø—‘˜#Ÿ.™.×1Ñ1ÈÖ3MÀ°C·H³HÒ3MóˆHð �x‰x˜:Ò%Ø×#Ñ#×.Ñ.¨wÔ7Ø×#Ñ#×0Ñ0°Ô9àÐ#Ø�àˆùò 4Ns   È8Jc                óŒ  — |j                   dk7  rmt        |j                  t        «      rSt        t	        |j                  j
                  «      t        «      ry | j                  |j                  j
                  «      S |j                  t        k(  s|j                   t        v ry t        |j                   «      }|�|S t        |«      st        |«      rÔ| j                  d«      }d}d }d }t        |«      r| j                  d«      x}}nYt        |«      D ]K  \  }}	|j                   �&t#        |j                   «      s| j                  d«      }|	sŒ;| j                  d«      }ŒM t%        |«      r| j                  d«      }|�|€d}|› d|› d|› d|› d�S |�|› d|› d|› d�S |› d|› d�S t%        |«      s|j                  t&        k(  ryy )Nr”   zcollections.abc.Generatorr›   r÷   rü   rÄ   rý   )rÏ   rÿ   rÈ  rg   rl   r�  rf   rÉ  Úabstract_statusr   r}   rY   r_   r`   rÖ   r]   r1  rx  r^   r   )
r’   rã   r´  rµ  Úgenerator_nameÚ
yield_nameÚ	send_nameÚreturn_namer1  Úin_assignments
             r“   r±  z!ASTStubGenerator._get_func_returnŠ  sÇ  € Ø�6‰6�ZÒ¤J¨q×/@Ñ/@Ä,Ô$OÜœ/¨!×*;Ñ*;×*DÑ*DÓEÄwÔOð à×,Ñ,¨Q×->Ñ->×-GÑ-GÓHÐHØ×Ñ¤Ò+¨q¯v©vÔ9RÑ/Rð Ü'¨¯©Ó/ˆØÐØˆNÜ Ô"Ô&?ÀÔ&BØ!Ÿ]™]Ð+FÓGˆNØˆJØ$(ˆIØ&*ˆKÜ(¨Ô+Ø)-¯©Ð7MÓ)NÐN�
™Yä+@ÀÓ+Cò JÑ'�D˜-Ø—y‘yÐ,´\À$Ç)Á)Ô5LØ%)§]¡]Ð3IÓ%J˜
Ú$Ø$(§M¡MÐ2HÓ$I™	ð	Jô
 $ AÔ&Ø"Ÿm™mÐ,BÓC�ØÐ&ØÐ$Ø &�IØ(Ð)¨¨:¨,°b¸¸À2ÀkÀ]ÐRSÐTÐTØÐ&Ø(Ð)¨¨:¨,°b¸¸À1ÐEÐEà(Ð)¨¨:¨,°aÐ8Ð8Ü# AÔ&¨1×+<Ñ+<ÄÒ+LØØr•   c                óä   — |j                   j                   sy |j                   j                   d   }t        |t        «      r0t        |j                  t        «      r|j                  j
                  S y )Nr   )Úbodyrÿ   r'   r1  r?   rç   )r’   rÎ   r1  s      r“   Ú_get_func_docstringz$ASTStubGenerator._get_func_docstring´  sJ   € Ø�y‰y�~Š~ØØ�y‰y�~‰~˜aÑ ˆÜ�dœNÔ+´
¸4¿9¹9ÄgÔ0NØ—9‘9—?‘?Ð"Ør•   c                óŒ  — | j                   xr; | j                  xr- |j                  j                  |j                     j
                  }|ry | j                  |j                  |j                  «      sB| j                  |j                  «      s'| j                  |j                  «      r|j                  s| j                  «        y | j                  «       r)| j                  t        t        fvr| j!                  d«       | j                  «       sLt#        |«      }|D ]<  \  }}}|| j$                  v rŒ| j'                  |||«      }|sŒ,| j!                  |«       Œ> | j(                  rgt+        |j,                  «      r$|j,                  d   j.                  j                  }nd}d }	| j(                  D ]  }
t1        |
j                  ||	¬«      }	Œ nd }	t3        | j4                  |j                  | j7                  |«      |j8                  t:        k7  |	¬«      }| j=                  |j                  «       | j?                  ||«      }| jA                  || jB                  |«      }| jE                  ||jF                  | jH                  |jJ                  ¬«      D ]  }| j!                  |dz   «       Œ | j                  «        t        | _        y )Nú
r   r’   )Úparent)r¡  rÏ   Ú	docstringÚis_abstractrÑ  )Úis_coroutineÚ
decoratorsrî  )&r˜  r›  ÚinforW  rÏ   Úplugin_generatedr¨  rÚ   Úis_not_in_allÚis_recorded_namer«  r¬  Úis_top_levelr–  r²   r³   re  Úfind_self_initializersr™  Úget_initr—  r  rÆ  rÇ  rR   rS   r¡  rê  râ  r   Úrecord_namer·  Úget_signaturesÚsig_generatorsÚformat_func_defrð  r”  rî  )r’   rã   Úis_dataclass_generatedÚ
self_initsÚinitrç   Ú
annotationÚ	init_coderÓ  rÑ  Ú	class_defr´  Údefault_sigÚsigsÚoutputs                  r“   ri  zASTStubGenerator.visit_func_def¼  sU  € à�M‰MÒa˜d×7Ñ7Òa¸A¿F¹F¿L¹LÈÏÉÑ<P×<aÑ<að 	ñ "àà× Ñ  §¡¨¯©Ô4Ø×!Ñ! !§&¡&Ô)Ø×%Ñ% a§f¡fÔ-°a·m²mà×!Ñ!Ô#ØØ×ÑÔ 4§;¡;´u¼d°mÑ#CØ�H‰H�TŒNØ× Ñ Ô"Ü/°Ó2ˆJØ+5ò (Ñ'��e˜ZØ˜4×,Ñ,Ñ,àØ ŸM™M¨$°°zÓB�	ÚØ—H‘H˜YÕ'ð(ð ×ÒÜ�1—;‘;ÔØŸ;™; q™>×2Ñ2×7Ñ7‘à!�Ø+/ˆJØ!×.Ñ.ò T�	Ü& y§~¡~°xÈ
ÔS‘
ñTð ˆJäØ×(Ñ(Ø—‘Ø×.Ñ.¨qÓ1Ø×)Ñ)¬\Ñ9Ø!ô
ˆð 	×Ñ˜Ÿ™Ô à×3Ñ3°A°sÓ;ˆØ×"Ñ" ;°×0CÑ0CÀSÓIˆà×*Ñ*Ø˜qŸ~™~¸$×:JÑ:JÐVY×VcÑVcð +ó 
ò 	$ˆFð �H‰H�V˜d‘]Õ#ð	$ð
 	×ÑÔÜˆ�r•   c                óÒ   — | j                  |j                  j                  |j                  j                  «      ry | j	                  |«       | j                  |j                  «       y r€   )r¨  r©  rÏ   rÚ   rª  ri  râ   s     r“   Úvisit_decoratorz ASTStubGenerator.visit_decoratorö  sE   € Ø×Ñ §¡§¡¨Q¯V©V¯_©_Ô=ØØ×Ñ˜qÔ!Ø×Ñ˜AŸF™FÕ#r•   c                ó¦  — d|j                   _        |j                  D �]0  }|}t        |t        «      r|j
                  }t        |t        t        f«      sŒ9t        |«      }| j                  |«      }|dv r| j                  |d¬«       Œm|dv r%d|j                   _        | j                  |d¬«       Œ–|dk(  r)| j                  |d¬«       t        |j                   _        ŒÄ|dv rƒ|j                  d«      d	   }|s| j                  j!                  d
«       |t#        d«      d }| j                  |d¬«       | j                  |xs d
› d�d¬«       t        |j                   _        �ŒK|t$        v r&| j                  |d¬«       d|j                   _        �Œy|j'                  d«      r| j                  |d¬«       �ŒŸ|t(        v r:t+        | «      }| j,                  j/                  d|j1                  |«      › �«       �Œát        |t        t        f«      s�Œùt+        | «      }| j,                  j/                  d|j1                  |«      › �«       �Œ3 y)zsProcess a series of decorators.

        Only preserve certain special decorators such as @abstractmethod.
        F)zbuiltins.propertyzbuiltins.staticmethodzbuiltins.classmethodzfunctools.cached_propertyT)rÙ   )zasyncio.coroutinezasyncio.coroutines.coroutineztypes.coroutinezabc.abstractmethod)zabc.abstractpropertyzabc.abstractstaticmethodzabc.abstractclassmethodr�  r   Úabczabc.abstractNz.abstractmethod)z.setterz.deleterú@)r©  r«  Úoriginal_decoratorsrÿ   r   rÅ   r7   r5   r×   rÕ   Úadd_decoratorÚis_awaitable_coroutiner   râ  Ú
rpartitionrØ   rÔ  r  rb   r  ra   rº   r”  rË   rÆ   )	r’   rã   Ú	decoratorÚdrÛ   rÚ   Ú
abc_moduleÚbuiltin_decorator_replacementÚps	            r“   rª  z"ASTStubGenerator.process_decoratorü  s6  € ð
 #ˆ�‰ÔØ×.Ñ.ó /	CˆIØˆAÜ˜!œXÔ&Ø—H‘H�Ü˜a¤(¬JÐ!7Ô8ØÜ)¨!Ó,ˆHØ×(Ñ(¨Ó+ˆHØð ñ ð ×"Ñ" 8¸$Ð"Õ?Øð ñ ð
 15�—‘Ô-Ø×"Ñ" 8¸$Ð"Õ?ØÐ1Ò1Ø×"Ñ" 8¸$Ð"Ô?Ü)4�—‘Õ&Øð ñ ð
 &×0Ñ0°Ó5°aÑ8�
Ù!Ø×'Ñ'×2Ñ2°5Ô9Ø08¼¸^Ó9LÐ9NÐ0OÐ-Ø×"Ñ"Ð#@ÈuÐ"ÔUØ×"Ñ" jÒ&9°EÐ%:¸/Ð#JÐY]Ð"Ô^Ü)4�—‘Ö&Øœ^Ñ+Ø×"Ñ" 8¸$Ð"Ô?Ø%)�—‘Ö"Ø×"Ñ"Ð#:Ô;Ø×"Ñ" 8¸%Ð"Ö@ØÔ6Ñ6Ü  Ó&�Ø× Ñ ×'Ñ'¨!¨I×,<Ñ,<¸QÓ,?Ð+@Ð(AÖBÜ˜I¬´*Ð'=Ö>Ü  Ó&�Ø× Ñ ×'Ñ'¨!¨I×,<Ñ,<¸QÓ,?Ð+@Ð(AÖBñ_/	Cr•   c                ó  — | j                   r^t        |t        t        f«      rH|j                  r<t        |j
                  t        «      r|j
                  j                  s|j                  S t        |«      }| j                  |«      S )z"Return the expression's full name.)
r˜  rÿ   r7   r5   rÚ   rÎ   rF   Úis_suppressed_importr×   Úresolve_name)r’   r1  rÏ   s      r“   rÕ   zASTStubGenerator.get_fullname3  s`   € ð �MŠMÜ˜4¤(¬JÐ!7Ô8Ø—’Ü §	¡	¬3Ô/°D·I±I×4RÒ4Rà—=‘=Ð Ü! $Ó'ˆØ× Ñ  Ó&Ð&r•   c                óÞ  •— | j                   j                  |«       t        |j                  j                  «      | _        d }| j                  «       r9| j                  t        k7  r&t        | j                  «      }| j                  d«       | j                  |«      }|D ]#  }| j                  | j                  › d|› d�«       Œ% | j                  |j                  «       | j!                  |«      }|r"|D ]  }| j"                  j%                  |«       Œ | j&                  r|j(                  j*                  rd| _        t/        |j0                  t2        t4        f«      r9|j0                  j7                  t9        | «      «      }|j                  d|z   «       n| j&                  rs|j(                  j:                  r]|j(                  j<                  sG|j                  d«       | j"                  j?                  d«       | j"                  j%                  d«       |rddjA                  |«      › d	�nd
}| jC                  |«      }	| j                  | j                  › d|j                  › |	› |› d�«       | jE                  «        | jF                  rU|jH                  rItJ        jL                  jO                  |jH                  «      }
| j                  | j                  › |
› d�«       t        | j                  «      }| jP                  j                  g «       | j&                  r%tS        |«      x}rd| _*        |jV                  | _,        tZ        ‰| �¹  |«       | j_                  «        | jP                  ja                  «        | jP                  d   j                  |j                  «       t        | j                  «      |k(  rj| j                  tb        k(  r|�d
| j                  |<   | jF                  r|jH                  s"| j                  d   d d dz   | j                  d<   tb        | _        ntd        | _        tg        «       | _        d| _*        d| _,        | j                   ja                  d«       d| _        y )Nrì  r
  Tz
metaclass=zmetaclass=abc.ABCMetar	  rÃ   rÄ   rª   r
  úclass z:
rú   ú ...
Fr    )4r—  rË   Úfind_method_namesÚdefsré  r™  rö  r–  r²   r  Ú_outputre  Úget_class_decoratorsÚ_indentrù  rÏ   Úget_base_typesrØ   rÙ   r˜  rò  Úis_enumrš  rÿ   Ú	metaclassr7   r5   rÆ   rº   rï  Úis_protocolrÔ  rÍ   r²  ÚindentÚ_include_docstringsrî  ÚmypyÚutilÚquote_docstringr•  rI   r›  Úfield_specifiersrœ  r½   rf  ÚdedentÚpoprµ   r´   rb  )r’   rã   Úseprñ  r  Ú
base_typesrþ   ÚmetaÚbasesr¶  rî  r  Úspecr¾   s                €r“   rf  z ASTStubGenerator.visit_class_def?  sc  ø€ Ø×Ñ× Ñ  Ô#Ü-¨a¯f©f¯k©kÓ:ˆÔØˆØ×ÑÔ 4§;¡;´%Ò#7Ü�d—l‘lÓ#ˆCØ�H‰H�TŒNØ×.Ñ.¨qÓ1ˆ
Øò 	.ˆAØ�H‰H˜Ÿ™�~ Q q c¨Ð,Õ-ð	.à×Ñ˜Ÿ™Ô Ø×(Ñ(¨Ó+ˆ
ÙØ"ò 7�Ø×#Ñ#×0Ñ0°Õ6ð7à�=Š=˜QŸV™VŸ^š^Ø#'ˆDÔ Ü�a—k‘k¤H¬jÐ#9Ô:Ø—;‘;×%Ñ%¤l°4Ó&8Ó9ˆDØ×Ñ˜l¨TÑ1Õ2Ø�]Š]˜qŸv™v×1Ò1¸!¿&¹&×:LÒ:LØ×ÑÐ5Ô6Ø×Ñ×*Ñ*¨5Ô1Ø×Ñ×,Ñ,¨UÔ3Ù0:�!�D—I‘I˜jÓ)Ð*¨!Ñ,ÀˆØ×)Ñ)¨!Ó,ˆ	Ø�‰�D—L‘L�> ¨¯© x°	¨{¸5¸'ÀÐEÔFØ�‰ŒØ×#Ò#¨¯ªÜŸ	™	×1Ñ1°!·+±+Ó>ˆIØ�H‰H˜Ÿ™�~ i [°Ð3Ô4Ü�—‘ÓˆØ�
‰
×Ñ˜"ÔØ�=Š=Ô&CÀAÓ&FÐF˜dÐFØ(,ˆDÔ%Ø-1×-BÑ-BˆDÔ*Ü‰Ñ Ô"Ø�‰ŒØ�
‰
�‰ÔØ�
‰
�2‰×Ñ˜aŸf™fÔ%Üˆt�|‰|Ó Ò!Ø�{‰{œkÒ)¨c¨oØ$&�—‘˜SÑ!Ø×,Ò,°·²Ø#'§<¡<°Ñ#3°C°RÐ#8¸8Ñ#C�—‘˜RÑ Ü%ˆD�KäˆDŒKÜ›EˆÔØ$)ˆÔ!Ø)+ˆÔ&Ø×Ñ×Ñ˜bÔ!Ø$ˆÕr•   c           	     óB  — g }t        | «      }|j                  |j                  z   D �]¡  }t        |t        t
        f«      r0| j                  |«      dk7  sŒ/|j                  t        |«      «       ŒJt        |t        «      r!|j                  |j                  |«      «       Œ{t        |t        «      sŒŒ| j                  |«      r²| j                  |«      }t        |j                  d   t        «      sJ ‚|j                  d   j                   }|€"|j                  | j#                  d«      «       �Œ
dj%                  d„ |D «       «      }| j#                  d«      }|j                  |› d|›d|› d	�«       �ŒO| j'                  |«      r"|j                  |j                  |«      «       �Œ‚|j                  | j#                  d«      «       �Œ¤ |j(                  j+                  «       D ]6  \  }	}
|	d
k(  rŒ|
j                  |«      xs d}|j                  |	› d|› �«       Œ8 |S )z%Get list of base classes for a class.zbuiltins.objectr   r÷   rÄ   c              3  ó4   K  — | ]  \  }}d |›d|› d�–— Œ y­w)rÃ   rÄ   rª   Nr    )r  Úfr†  s      r“   r  z2ASTStubGenerator.get_base_types.<locals>.<genexpr>‘  s"   è ø€ Ò*Q¹t¸qÀ!¨Q¨q¨e°2°a°S¸¬?Ñ*Qùó   ‚útyping.NamedTuplerÃ   z, [z])r!  r(  rÂ   )rº   Úbase_type_exprsÚremoved_base_type_exprsrÿ   r7   r5   rÕ   rË   r×   r0   rÆ   r   Úis_namedtupleÚ_get_namedtuple_fieldsrÉ   r?   rç   rÖ   rÍ   Úis_typed_namedtupleÚkeywordsr  )r’   Úcdefr,  r  rþ   Ú	nt_fieldsrÝ  Ú
fields_strÚnamedtuple_namerÏ   rç   Úprocessed_values               r“   r  zASTStubGenerator.get_base_typesu  sç  € à "ˆ
Ü˜ÓˆØ×(Ñ(¨4×+GÑ+GÑGó  	MˆDÜ˜$¤¬:Ð 6Ô7Ø×$Ñ$ TÓ*Ð.?Ó?Ø×%Ñ%Ô&8¸Ó&>Õ?Ü˜D¤)Ô,Ø×!Ñ! $§+¡+¨a£.Õ1Ü˜D¤(Õ+ð ×%Ñ% dÔ+Ø $× ;Ñ ;¸DÓ A�IÜ% d§i¡i°¡l´GÔ<Ð<Ð<Ø#Ÿy™y¨™|×1Ñ1�HØ Ð(à"×)Ñ)¨$¯-©-Ð8NÓ*OÔPÙ Ø!%§¡Ñ*QÀyÔ*QÓ!Q�JØ&*§m¡mÐ4GÓ&H�OØ×%Ñ%¨Ð(9¸¸8¸,ÀcÈ*ÈÐUWÐ&XÖYØ×-Ñ-¨dÔ3Ø×%Ñ% d§k¡k°!£nÖ5ð ×%Ñ% d§m¡mÐ4JÓ&KÖLðA 	MðB  Ÿ=™=×.Ñ.Ó0ò 	;‰KˆD�%Ø�{Ò"ØØ#Ÿl™l¨1›oÒ6°ˆOØ×Ñ   a¨Ð'8Ð9Õ:ð		;ð
 Ðr•   c                ó¦  — g }t        | «      }|j                  D ]´  }| j                  |«      rK|j                  |j	                  |«      «       | j
                  j                  t        |«      «       d| _        | j                  |«      sŒq|j                  |j	                  |«      «       | j
                  j                  t        |«      «       Œ¶ |S )NT)
rº   rñ  Úis_dataclassrË   rÆ   rØ   rÙ   r×   r›  Úis_dataclass_transform)r’   r;  rñ  r  r  s        r“   r  z%ASTStubGenerator.get_class_decorators¡  s²   € Ø "ˆ
Ü˜ÓˆØ—‘ò 	HˆAØ× Ñ  Ô#Ø×!Ñ! !§(¡(¨1£+Ô.Ø×#Ñ#×0Ñ0Ô1CÀAÓ1FÔGØ,0�Ô)Ø×*Ñ*¨1Õ-Ø×!Ñ! !§(¡(¨1£+Ô.Ø×#Ñ#×0Ñ0Ô1CÀAÓ1FÕGð	Hð Ðr•   c                ób   — t        |t        «      r|j                  }| j                  |«      dk(  S )Nzdataclasses.dataclass)rÿ   r   rÅ   rÕ   ©r’   r1  s     r“   rA  zASTStubGenerator.is_dataclass®  s,   € Ü�dœHÔ%Ø—;‘;ˆDØ× Ñ  Ó&Ð*AÑAÐAr•   c                ó¸   — t        |t        «      r|j                  }| j                  |«      t        v ryt        |«      x}�d| _        |j                  | _        yy)NTF)	rÿ   r   rÅ   rÕ   ra   rI   r›  r(  rœ  )r’   r1  r/  s      r“   rB  z'ASTStubGenerator.is_dataclass_transform³  sX   € Ü�dœHÔ%Ø—;‘;ˆDØ×Ñ˜TÓ"Ô&?Ñ?ØÜ1°$Ó7Ð7ˆDÐDØ(,ˆDÔ%Ø-1×-BÑ-BˆDÔ*ØØr•   c                ó>   •— |j                   st        ‰| �	  |«       y y r€   r|  r¦  s     €r“   r~  zASTStubGenerator.visit_block¾  s    ø€ ð ×ÒÜ‰GÑ Õ"ð  r•   c                óê  — g }|j                   D �]Ê  }t        |t        «      rÇt        |j                  t        «      r­| j                  |j                  «      s| j                  |j                  «      r.| j                  ||j                  «       |j                  d«       Œ’| j                  |j                  «      r.| j                  ||j                  «       |j                  d«       ŒÛt        |t        «      rª| j                  |j                  «      r�| j                  |j                  «      st|j                  xr t        |j                   dd «      dk(  }|r | j#                  ||j                  d¬«       �Œk|j                  s| j#                  ||j                  «       �Œ•t        |t$        t&        f«      rM|j(                  }t        |j                  t*        «      r|j                  j(                  }n d gt-        |«      z  }n|g}|j                  g}d}d}t/        ||«      D ]Ÿ  \  }	}
t        |	t        «      sŒ| j1                  |	j                  |j                  |
«      }|sŒAd}|s/| j3                  «       r| j4                  t6        t8        fvrd|z   }d}| j;                  |«       | j=                  |	j                  «       Œ¡ |j                  |«       �ŒÍ t?        |«      rt8        | _        y y )NFrÏ   Ú	TypeAliasT)Úis_explicit_type_aliasrì  ) r^  rÿ   r7   Úrvaluer   r7  r9  Úprocess_namedtuplerË   Úis_typeddictÚprocess_typeddictÚis_alias_expressionr¨  rÏ   rÈ  Úgetattrr„  Úprocess_typealiasrB   r4   r  ri   r  rÇ   rø  rö  r–  r²   r¶   re  rù  rÒ  )r’   rã   Úfoundlr_  rI  r  r   r+  Úfoundr  r   rÿ  s               r“   rk  z&ASTStubGenerator.visit_assignment_stmtÄ  sb  € Øˆà—i‘ió /	!ˆFÜ˜&¤(Ô+´
¸1¿8¹8ÄXÔ0NØ×%Ñ% a§h¡hÔ/°4×3KÑ3KÈAÏHÉHÔ3UØ×+Ñ+¨F°A·H±HÔ=Ø—M‘M %Ô(ØØ×$Ñ$ Q§X¡XÔ.Ø×*Ñ*¨6°1·8±8Ô<Ø—M‘M %Ô(Øä˜6¤8Ô,Ø×,Ñ,¨Q¯X©XÔ6Ø×,Ñ,¨V¯[©[Ô9ð ×%Ñ%ÒV¬'°!·&±&¸&À$Ó*GÈ;Ñ*Vð 'ñ *Ø×*Ñ*¨6°1·8±8ÐTXÐ*ÔYÙà×(Ò(Ø×*Ñ*¨6°1·8±8Ô<Ùä˜&¤9¬hÐ"7Ô8ØŸ™�Ü˜a×/Ñ/´Ô;Ø9:×9JÑ9J×9PÑ9P‘Kà#' &¬3¨u«:Ñ"5‘Kà˜�Ø ×0Ñ0Ð1�ØˆCØˆEÜ$'¨¨{Ó$;ò 	4Ñ ��jÜ˜d¤HÕ-ØŸ=™=¨¯©°A·H±H¸jÓI�DÚØ $˜Ù" t×'8Ñ'8Ô':¸t¿{¹{ÔSXÔZ]ÐR^Ñ?^Ø#'¨$¡;˜DØ"&˜CØŸ™ œØ×(Ñ(¨¯©Õ3ð	4ð �M‰M˜%Ö ð_/	!ôb ˆvŒ;ÜˆD�Kð r•   c                ó>   — | j                  |j                  «      dk(  S )Nzcollections.namedtuple)rÕ   rÅ   rD  s     r“   r7  zASTStubGenerator.is_namedtupleû  s   € Ø× Ñ  §¡Ó-Ð1IÑIÐIr•   c                óD   — | j                  |j                  «      t        v S r€   )rÕ   rÅ   re   rD  s     r“   r9  z$ASTStubGenerator.is_typed_namedtupleþ  s   € Ø× Ñ  §¡Ó-Ô1GÐGÐGr•   c                ó^  — | j                  |«      rÉ|j                  d   }t        |t        «      r+|j                  j                  dd«      j                  «       }nXt        |t        t        f«      rAg }|j                  D ]/  }t        |t        «      s y |j                  |j                  «       Œ1 ny |r#| j                  d«      }|D �cg c]  }||f‘Œ c}S g S | j                  |«      r½|j                  d   }t        |t        t        f«      sy g }t        | «      }|j                  D ]y  }t        |t        «      rt        |j                  «      dk(  s y |j                  \  }}	t        |t        «      s y |j                  |j                  |	j                  |«      f«       Œ{ |S y c c}w )Nrù   rû   r+  r÷   rø   )r7  rÉ   rÿ   r?   rç   ÚreplaceÚsplitr4   rB   r  rË   rÖ   r9  rº   r  rÆ   )
r’   ÚcallÚ
fields_argÚfield_namesÚfieldÚ
incompleteÚ
field_nameÚfieldsr  Ú
field_types
             r“   r8  z'ASTStubGenerator._get_namedtuple_fields  s  € Ø×Ñ˜dÔ#ØŸ™ 1™ˆJÜ˜*¤gÔ.Ø(×.Ñ.×6Ñ6°s¸CÓ@×FÑFÓH‘Ü˜J¬´9Ð(=Ô>Ø �Ø'×-Ñ-ò 4�EÜ% e¬WÔ5Ù#Ø×&Ñ& u§{¡{Õ3ñ4ð
 ÙØ!Ÿ]™]Ð+AÓB�
ØCNÖO°Z˜ ZÒ0ÒOÐOà�	à×%Ñ% dÔ+ØŸ™ 1™ˆJÜ˜j¬8´YÐ*?Ô@ØØ,.ˆFÜ˜TÓ"ˆAØ#×)Ñ)ò H�Ü" 5¬)Ô4¼¸U¿[¹[Ó9IÈQÒ9NÙØ).¯©Ñ&�
˜JÜ! *¬gÔ6ÙØ—‘˜z×/Ñ/°×1BÑ1BÀ1Ó1EÐFÕGðHð ˆMàùò' Ps   ÃF*c           	     óœ  — | j                   t        k(  r| j                  d«       t        |j                  d   t
        «      s| j                  |«       y | j                  |«      }|€| j                  |«       y | j                  d«      }| j                  › d|j                  › d|› d�}t        |«      dk(  r | j                  |› d�«       t        | _         y | j                   t        t        fvr| j                  d«       | j                  |› d�«       |D ])  \  }}| j                  | j                  › d|› d	|› d�«       Œ+ t        | _         y )
Nrì  r   r4  r  rÃ   ú):r  ú    r  )r–  r´   re  rÿ   rÉ   r?   Úannotate_as_incompleter8  rÖ   r  rÏ   r  rµ   r²   )r’   r_  rJ  r^  r.  r  Úf_nameÚf_types           r“   rK  z#ASTStubGenerator.process_namedtuple%  s$  € Ø�;‰;œ%ÒØ�H‰H�TŒNä˜&Ÿ+™+ a™.¬'Ô2Ø×'Ñ'¨Ô/Øà×,Ñ,¨VÓ4ˆØˆ>Ø×'Ñ'¨Ô/ØØ—‘Ð1Ó2ˆà—|‘|�n F¨6¯;©;¨-°q¸¸¸rÐBˆ	Üˆv‹;˜!ÒØ�H‰H˜	�{ &Ð)Ô*Ü%ˆD�Kà�{‰{¤5¬% .Ñ0Ø—‘˜”Ø�H‰H˜	�{ "Ð%Ô&Ø"(ò D‘�˜Ø—‘˜DŸL™L˜>¨¨f¨X°R¸°x¸rÐBÕCðDäˆD�Kr•   c                óD   — | j                  |j                  «      t        v S r€   )rÕ   rÅ   rc   rD  s     r“   rL  zASTStubGenerator.is_typeddict?  s   € Ø× Ñ  §¡Ó-´Ð=Ð=r•   c           
     ó   — | j                   t        k(  r| j                  d«       t        |j                  d   t
        «      s| j                  |«       y t        |j                  «      dkD  r(|j                  d   t        k7  r| j                  |«       y g }d }d }t        |j                  «      dkD  r÷|j                  d   t        k(  rát        |j                  d   t        «      s| j                  |«       y |j                  d   j                  D ]E  \  }}t        |t
        «      s| j                  |«        y |j                  |j                  |f«       ŒG t        |j                   dd  |j                  dd  «      D ]'  \  }}	|dk(  r|	}Œ|dk(  r|	}Œ| j                  |«        y  nlt        |j                   dd  |j                  dd  «      D ]C  \  }}	t        |t"        «      s| j                  |«        y |dk(  r|	}Œ1|j                  ||	f«       ŒE t%        | «      }
t'        d„ |D «       «      rH| j                  | j(                  › |j*                  › d|j-                  |
«      › d�«       t.        | _         y | j1                  d	«      }|�|d
|j-                  |
«      › �z  }|�|d|j-                  |
«      › �z  }| j(                  › d|j*                  › d|› d�}t        |«      dk(  r | j                  |› d�«       t2        | _         y | j                   t4        t        fvr| j                  d«       | j                  |› d�«       |D ]8  \  }}| j                  | j(                  › d|› d|j-                  |
«      › d�«       Œ: t        | _         y )Nrì  r   rø   rù   ÚtotalÚclosedc              3  ór   K  — | ]/  \  }}|j                  «        xs t        j                  |«      –— Œ1 y ­wr€   )ÚisidentifierÚkeywordÚ	iskeyword)r  r!  Ú_s      r“   r  z5ASTStubGenerator.process_typeddict.<locals>.<genexpr>k  s3   è ø€ ÒTÁFÀCÈ�3×#Ñ#Ó%Ð%Ò?¬×):Ñ):¸3Ó)?Ó?ÑTùs   ‚57ú = ztyping_extensions.TypedDictz, total=z	, closed=r  rÃ   ra  r  rb  r  )r–  r´   re  rÿ   rÉ   r?   rc  r  rÊ   r   r   r#   r  rË   rç   rÇ   rÈ   r˜   rº   rÌ  r  rÏ   rÆ   r¶   rÖ   rµ   r²   )r’   r_  rJ  r  rh  ri  Ú	attr_nameÚ	attr_typeÚarg_namerÐ   r  r.  r  r!  Úkey_types                  r“   rM  z"ASTStubGenerator.process_typeddictB  s<  € Ø�;‰;œ%ÒØ�H‰H�TŒNä˜&Ÿ+™+ a™.¬'Ô2Ø×'Ñ'¨Ô/ØÜˆv�{‰{Ó˜aÒ F×$4Ñ$4°QÑ$7¼9Ò$DØ×'Ñ'¨Ô/Øà.0ˆØ#'ˆØ$(ˆÜˆv�{‰{Ó˜aÒ F×$4Ñ$4°QÑ$7¼7Ò$BÜ˜fŸk™k¨!™n¬hÔ7Ø×+Ñ+¨FÔ3ØØ(.¯©°A©×(<Ñ(<ò ;Ñ$�	˜9Ü! )¬WÔ5Ø×/Ñ/°Ô7ÙØ—‘˜iŸo™o¨yÐ9Õ:ð	;ô
 "% V×%5Ñ%5°a°bÐ%9¸6¿;¹;ÀqÀr¸?Ó!Kò ‘�˜#Ø˜wÒ&Ø‘EØ Ò)Ø ‘Fà×/Ñ/°Ô7Ùñô "% V×%5Ñ%5°a°bÐ%9¸6¿;¹;ÀqÀr¸?Ó!Kò 2‘�˜#Ü! (¬CÔ0Ø×/Ñ/°Ô7ÙØ˜wÒ&Ø‘Eà—L‘L (¨C Õ1ð2ô ˜ÓˆÜÑTÈeÔTÔTà�H‰H˜Ÿ™�~ f§k¡k ]°#°f·m±mÀAÓ6FÐ5GÀrÐJÔKÜˆD�Kà—M‘MÐ"?Ó@ˆEàÐ Ø˜8 E§L¡L°£OÐ#4Ð5Ñ5�ØÐ!Ø˜9 V§]¡]°1Ó%5Ð$6Ð7Ñ7�ØŸ<™<˜.¨¨v¯{©{¨m¸1¸U¸GÀ2ÐFˆIÜ�5‹z˜QŠØ—‘˜I˜; fÐ-Ô.Ü)�•à—;‘;¤u¬e nÑ4Ø—H‘H˜T”NØ—‘˜I˜; bÐ)Ô*Ø%*ò Q‘M�C˜Ø—H‘H §¡˜~¨T°#°°b¸¿¹ÈÓ9KÐ8LÈBÐOÕPðQä#�•r•   c                ó–   — | j                  d«      }| j                  | j                  › |j                  › d|› d�«       t        | _        y )Nr÷   r  rì  )rÖ   re  r  rÏ   r¶   r–  )r’   r_  r\  s      r“   rc  z'ASTStubGenerator.annotate_as_incomplete‚  s=   € Ø—]‘]Ð#9Ó:ˆ
Ø�‰�D—L‘L�> &§+¡+ ¨b°°¸BÐ?Ô@Üˆ�r•   Tc                óÌ  ‡ — t        |t        «      r"‰ j                  |j                  «      t        v ryt        |t
        «      r| S t        |t        «      r=|j                  dv ry|j                  dk(  r| S ‰ j                  |j                  «       S t        |t        «      ry‰ j                  rm|xr% t        |j                  t        t        t        f«      xs t        |j                  t        «      xr& ‰ j!                  |j                  j"                  «       S t        |t$        «      �r\t        |j&                  t        «      r%‰ j                  |j&                  j                  «      rit        |j&                  t        «      �r‰ j!                  t)        |j&                  «      «      sÞ‰ j                  |j&                  «      j+                  d«      r´t        |j,                  t.        «      r|j,                  j0                  }n|j,                  g}|j&                  j                  dk(  rIt3        |«      dk(  r;|\  }}t        |t
        «      r|g}n"t        |t4        «      r|j0                  |gz   }nyt7        ˆ fd„|D «       «      S t        |t8        «      rK|j:                  d	k(  r<‰ j=                  |j>                  d¬
«      xr ‰ j=                  |j@                  d¬
«      S y)z©Return True for things that look like target for an alias.

        Used to know if assignments look like type aliases, function alias,
        or module alias.
        T©ÚTrueÚFalseFr›   )z	builtins.ztyping.ztyping_extensions.zcollections.abc.ÚCallablerø   c              3  óD   •K  — | ]  }‰j                  |d ¬«      –— Œ y­w)F©Ú	top_levelN)rN  )r  r×  r’   s     €r“   r  z7ASTStubGenerator.is_alias_expression.<locals>.<genexpr>¶  s!   øè ø€ ÒUÈ�t×/Ñ/°¸UÐ/×CÑUùs   ƒ ú|r{  )!rÿ   r   rÕ   rÅ   rd   r%   r7   rÏ   r¨  r5   r˜  rÎ   r*   r"   r6   rD   Úis_private_memberrÚ   r0   rþ   r×   r  r   rB   r  r  r4   rÒ  r8   r-  rN  r,  r.  )r’   r1  r|  ÚindicesrÉ   Úrets   `     r“   rN  z$ASTStubGenerator.is_alias_expression‡  sG  ø€ ô �dœHÔ%¨$×*;Ñ*;¸D¿K¹KÓ*HÔL_Ñ*_ØÜ˜œlÔ+Ø �=Ð Ü˜œhÔ'Ø�y‰yÐ-Ñ-ØØ—‘˜fÒ$Ø$�}Ð$à×/Ñ/°·	±	Ó:Ð:Ð:Ü˜œjÔ)¨d¯mªmð ò JÜ˜tŸy™y¬7´I¼xÐ*HÓIò3ä˜dŸi™i¬Ó2òAð ×,Ñ,¨T¯Y©Y×-?Ñ-?Ó@Ð@ð	Aô
 ˜œiÕ(Ü˜Ÿ	™	¤8Ô,°T×5IÑ5IÈ$Ï)É)Ï.É.Ô5Yä˜4Ÿ9™9¤jÕ1Ø×.Ñ.Ô/AÀ$Ç)Á)Ó/LÔMØ×%Ñ% d§i¡iÓ0×;Ñ;ØVôô
 ˜$Ÿ*™*¤iÔ0ØŸ*™*×*Ñ*‘àŸ:™:˜,�Ø�y‰y�~‰~ Ò+´°G³ÀÒ0AØ#‘	��cÜ˜d¤LÔ1Ø"˜e‘GÜ ¤hÔ/Ø"Ÿj™j¨C¨5Ñ0‘Gà ÜÓUÈWÔUÓUÐUÜ˜œfÔ%¨$¯'©'°Sª.Ø×+Ñ+Ø—	‘	 Uð ,ó ò Hà×*Ñ*¨4¯:©:ÀÐ*ÓGðHð r•   c                óÌ  — t        | «      }|rX| j                  j                  d«       | j                  | j                  › |j
                  › d|j                  |«      › d�«       n<| j                  | j                  › |j
                  › d|j                  |«      › d�«       | j                  |j
                  «       | j                  d   j                  |j
                  «       y )NrH  z: TypeAlias = rì  ro  rú   )
rº   rØ   rÙ   re  r  rÏ   rÆ   rù  r•  rË   )r’   r_  rJ  rI  r  s        r“   rP  z"ASTStubGenerator.process_typealias¾  s°   € ô ˜ÓˆÙ!Ø×Ñ×,Ñ,¨[Ô9Ø�H‰H˜Ÿ™�~ f§k¡k ]°.ÀÇÁÈqÓAQÐ@RÐRTÐUÕVà�H‰H˜Ÿ™�~ f§k¡k ]°#°f·m±mÀAÓ6FÐ5GÀrÐJÔKØ×Ñ˜Ÿ™Ô%Ø�
‰
�2‰×Ñ˜fŸk™kÕ*r•   c           
     ód  — t        | «      }|j                  j                  }|j                  j                  «       }| j	                  |«      }| j                  | j                  › d|› |› d|j                  |«      › d�«       | j                  |«       | j                  d   j                  |«       y)z7Type aliases defined with the `type` keyword (PEP 695).ztype ro  rì  rú   N)rº   rÏ   rç   r1  r²  re  r  rÆ   rù  r•  rË   )r’   rã   r  rÏ   rJ  r¶  s         r“   rm  z&ASTStubGenerator.visit_type_alias_stmtÊ  s�   € ä˜ÓˆØ�v‰v�{‰{ˆØ—‘—‘“ˆØ×)Ñ)¨!Ó,ˆ	Ø�‰�D—L‘L�>  t f¨Y¨K°s¸6¿=¹=ÈÓ;KÐ:LÈBÐOÔPØ×Ñ˜ÔØ�
‰
�2‰×Ñ˜dÕ#r•   c                óF  •— |j                   d   }t        |t        «      rrt        |j                  d   t        «      rUt        |j                  d   t
        «      r8|j                  d   j                  dk(  rd|j                  d   j                  v ry t        ‰| �%  |«       y )Nr   rù   rœ   Ú__main__)
r1  rÿ   r   Úoperandsr7   r?   rÏ   rç   r½   Úvisit_if_stmt)r’   rã   r1  r¾   s      €r“   r†  zASTStubGenerator.visit_if_stmtÔ  s~   ø€ à�v‰v�a‰yˆä�tœ^Ô,Ü˜4Ÿ=™=¨Ñ+¬XÔ6Ü˜4Ÿ=™=¨Ñ+¬WÔ5Ø—‘˜aÑ ×%Ñ%¨Ò3Ø˜dŸm™m¨AÑ.×4Ñ4Ñ4àÜ‰Ñ˜aÕ r•   c                ó`   — | j                  dd|j                  z  › |j                  › d�«       y )Nzfrom r�  z
 import *
)Úadd_import_lineÚrelativeÚidrâ   s     r“   Úvisit_import_allz!ASTStubGenerator.visit_import_allá  s+   € Ø×Ñ˜u S¨1¯:©:Ñ%5Ð$6°q·t±t°f¸KÐHÕIr•   c                ó¤  — t        «       }g }t        |j                  |j                  «      \  }}| j                  rMt
        j                  j                  | j                  ||| j                  j                  d«      «      \  }}|s|}n|}|dk(  ry |j                  D ]k  \  }}	|dk(  r| j                  t        dg«      «       Œ'| j                  |||	d u«      r| j                  j                  |«       |}	|j!                  ||	f«       Œm | j                  j#                  d|z  |z   |«       | j$                  d   j'                  d„ |D «       «       |D ]  \  }}
| j)                  |
xs |«       Œ | j*                  rN|j                  D ��
cg c]%  \  }}
|| j*                  v r|
€|| j,                  vr|‘Œ' }}}
|j/                  |«       y y c c}
}w )Nz.__init__.pyÚ
__future__Úsix)rŽ  Nr�  rú   c              3  ó.   K  — | ]  \  }}|xs |–— Œ y ­wr€   r    )r  rÏ   Úaliass      r“   r  z5ASTStubGenerator.visit_import_from.<locals>.<genexpr>ü  s   è ø€ ÒL±°°e˜ešm t›mÑLùs   ‚)rb  Útranslate_module_namerŠ  r‰  r¡  r%  r&  Úcorrect_relative_importr¨   r  rW  Úvisit_importr-   Úshould_reexportrØ   ÚreexportrË   Úadd_import_fromr•  Úextendrù  r�  ÚIGNORED_DUNDERSÚupdate)r’   rã   Úexported_namesÚimport_namesr§   r‰  Úfull_moduleÚokrÏ   Úas_namer�  rW  s               r“   Úvisit_import_fromz"ASTStubGenerator.visit_import_fromä  sÁ  € Ü#&£5ˆØˆÜ0°·±°q·z±zÓBÑˆ�Ø×ÒÜ"Ÿi™i×?Ñ?Ø× Ñ  (¨F°D·I±I×4FÑ4FÀ~Ó4Vó‰OˆK˜ñ Ø$‘à ˆKØ�\Ò!ØØŸW™Wò 	1‰MˆD�'Ø�uŠ}à×!Ñ!¤&¨-¨Ó"9Ô:ØØ×#Ñ# D¨+°wÀdÐ7JÔKØ×#Ñ#×,Ñ,¨TÔ2Ø�Ø×Ñ  w Õ0ð	1ð 	×Ñ×+Ñ+¨C°(©N¸VÑ,CÀ\ÔRØ�
‰
�2‰×ÑÑL¸|ÔLÔLØ'ò 	,‰KˆD�%Ø×Ñ˜Uš] dÕ+ð	,ð �:Š:ð $%§7¡7÷á�D˜%Ø˜4Ÿ:™:Ñ%¨%¨-¸DÈ×H\ÑH\Ñ<\ò ðˆEñ ð
 ×!Ñ! %Õ(ð ùós   Æ*Gc                óô   — |j                   D ]i  \  }}| j                  j                  ||«       |€|j                  d«      d   }n|}| j                  d   j                  |«       | j                  |«       Œk y )Nr�  r   rú   )ÚidsrØ   rÔ  rW  r•  rË   rù  )r’   rã   rŠ  Úas_idÚtarget_names        r“   r“  zASTStubGenerator.visit_import	  so   € ØŸ™ò 	*‰IˆB�Ø×Ñ×*Ñ*¨2¨uÔ5Øˆ}Ø Ÿh™h s›m¨AÑ.‘à#�Ø�J‰J�r‰N×!Ñ! +Ô.Ø×Ñ˜[Õ)ñ	*r•   c                óÎ  — || j                   d   v ry| j                  |«      s| j                  |«      ry| j                   d   j                  |«       |�ˆ| j	                  |«      }t        |t        «      rÉ|j                  s½|j                  dk(  r®| j                  j                  j                  d«      | j                  v r}| j                  |«      }|d|› d�z  }nb| j                  r(| j                  |«      \  }}| j                   › |› d|› d�S | j"                  r| j                   › |› d�S | j                  |«      }| j%                  |«      }| j                   › |› d	|› |› d�S )
zReturn initializer for a variable.

        Return None if we've generated one already or if the variable is internal.
        rú   Nr   rü   rý   ro  rì  z = ...
r  )r•  r¨  rô  rË   rÉ  rÿ   rk   rÉ   rÏ   rØ   Ú
module_forÚgetÚTYPING_MODULE_NAMESrÎ  rš  rÏ  r  r›  Úget_assign_initializer)r’   r_  rJ  r   rÝ  Ú	final_argrÍ  rn  s           r“   rø  zASTStubGenerator.get_init  s]  € ð �T—Z‘Z ‘^Ñ#àà×Ñ Ô'¨4×+=Ñ+=¸fÔ+EØØ�
‰
�2‰×Ñ˜fÔ%ØÐ!Ø×,Ñ,¨ZÓ8ˆHä˜:¤{Ô3Ø"ŸšØ—O‘O wÒ.Ø×'Ñ'×2Ñ2×6Ñ6°wÓ?À4×C[ÑC[Ñ[ð !×5Ñ5°fÓ=�	Ø˜a 	˜{¨!Ð,Ñ,‘Ø×!Ò!Ø!×9Ñ9¸&ÓA‰NˆK˜Ø—l‘l�^ F 8¨3¨{¨m¸2Ð>Ð>Ø×&Ò&à—l‘l�^ F 8¨8Ð4Ð4à×0Ñ0°Ó8ˆHØ×1Ñ1°&Ó9ˆØ—,‘,� ˜x r¨(¨°K°=ÀÐCÐCr•   c                ó¾  — | j                   sy| j                   j                  r1| j                   j                  j                  rt        |t        «      sy| j
                  r}t        |t        «      rP| j                  |j                  «      }|| j                  xs t        v rt        | «      }d|j                  |«      › �S t        |t        «      r|j                  syy)z5Does this rvalue need some special initializer value?r
  z = ...ro  )rŸ  rò  Úis_named_tuplerÿ   rA   r›  r   rÕ   rÅ   rœ  rH   rº   rÆ   Úno_rhs)r’   rJ  rÚ   r  s       r“   r¨  z'ASTStubGenerator.get_assign_initializer7  sµ   € à×"Ò"Øð
 ×Ñ×$Ò$Ø×#Ñ#×(Ñ(×7Ò7Ü˜v¤xÔ0àØ×$Ò$Ü˜&¤(Ô+Ø×,Ñ,¨V¯]©]Ó;�Ø × >Ñ >Ò \ÔB\Ñ]Ü$ TÓ*�AØ  §¡¨qÓ!1Ð 2Ð3Ð3Ü˜v¤xÔ0°V·]²]Øð r•   c                óz   — |r| j                   j                  |«       | j                  j                  d|› �«       y )Nr
  )rØ   rÙ   r”  rË   )r’   rÏ   rÙ   s      r“   r  zASTStubGenerator.add_decoratorQ  s3   € ÙØ×Ñ×,Ñ,¨TÔ2Ø×Ñ×Ñ ! D 6 
Õ+r•   c                ó8   — | j                   j                  «        y r€   )r”  Úclearr«   s    r“   r¬  z!ASTStubGenerator.clear_decoratorsV  s   € Ø×Ñ×ÑÕ r•   c                óN   ‡ — |j                  d«      }t        ˆ fd„|D «       «      S )Nr�  c              3  ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr€   )r¨  )r  Úpartr’   s     €r“   r  z5ASTStubGenerator.is_private_member.<locals>.<genexpr>[  s   øè ø€ Ò@°$�4×'Ñ'¨×-Ñ@ùr  )rW  rÌ  )r’   rÚ   Úpartss   `  r“   r~  z"ASTStubGenerator.is_private_memberY  s"   ø€ Ø—‘˜sÓ#ˆÜÓ@¸%Ô@Ó@Ð@r•   r¼  c               ó  — | j                  |«      }t        |t        «      ryt        |t        «      ryt        |t        «      ryt        |t
        «      ryt        |t        «      ryt        |t        «      ra|j                  dv rSt        | j                  |j                  «      t        «      s)t        | j                  |j                  «      t        «      ryt        |t        «      r|j                  dv ry|r| j                  d	«      S y
)NÚintr˜   ÚbytesÚfloatÚcomplex)ú-ú+rv  r—   r÷   r
  )Úmaybe_unwrap_unary_exprrÿ   r1   r?   r   r(   r    r8   r-  r,  r.  r7   rÏ   rÖ   )r’   rJ  r½  s      r“   rÎ  z%ASTStubGenerator.get_str_type_of_node]  sÒ   € Ø×-Ñ-¨fÓ5ˆä�fœgÔ&ØÜ�fœgÔ&ØÜ�fœiÔ(ØÜ�fœiÔ(ØÜ�fœkÔ*ØÜ�fœfÔ%¨&¯)©)°zÑ*AÜ˜$×6Ñ6°v·{±{ÓCÄ[ÔQÔU_Ø×,Ñ,¨V¯\©\Ó:¼KôVð !Ü�fœhÔ'¨F¯K©KÐ;LÑ,LØÙØ—=‘=Ð!7Ó8Ð8àr•   c                óh  — t        |t        «      s|S d}|j                  |v rjt        |t        «      rX|j                  |vs*t        |j                  t        t
        t        t        f«      s	 |S |j                  }t        |t        «      rŒX|S |j                  dk(  r–t        |t        «      r„|j                  dk7  s t        |j                  t        t        f«      s	 |S t        |j                  t        «      r|j                  j                  dvr	 |S |j                  }t        |t        «      rŒ„|S |S )a
  Unwrap (possibly nested) unary expressions.

        But, some unary expressions can change the type of expression.
        While we want to preserve it. For example, `~True` is `int`.
        So, we only allow a subset of unary expressions to be unwrapped.
        )rº  r¹  Únotrv  )	rÿ   rE   r-  r1  r1   r(   r    r7   rÏ   )r’   r1  Úmath_opss      r“   r»  z(ASTStubGenerator.maybe_unwrap_unary_exprv  s
  € ô ˜$¤	Ô*ØˆKð ˆØ�7‰7�hÑÜ˜T¤9Ô-Ø—7‘7 (Ñ*´*Ø—I‘I¤¬´KÄÐKô3ð àˆKð —y‘y�ô ˜T¤9Õ-ð ˆKð �7‰7�eÒÜ˜T¤9Ô-Ø—7‘7˜eÒ#¬:°d·i±iÄ(ÌIÐAVÔ+WØð ˆKô ˜dŸi™i¬Ô2°t·y±y·~±~ÐM^Ñ7^ØàˆKð —y‘y�ô ˜T¤9Õ-ð ˆKð ˆr•   c                ó¾  — t        |t        «      r|j                  dv r|j                  dfS yt        |t        t        f«      r|j
                  › dfS t        |t        «      rGt        |j                  t        t        f«      r&|j                  › |j                  j
                  › �dfS yt        |t        «      rt        |j
                  «      dfS t        |t        «      r*dt        |j
                  «      j                  dd«      z   dfS t        |t        «      rig }|j                  D ]+  }| j                  |«      \  }}|s y|j!                  |«       Œ- t#        |«      dk(  rdnd}d	d
j%                  |«      z   |z   }|dfS t        |t&        «      rWg }|j                  D ]+  }| j                  |«      \  }}|s y|j!                  |«       Œ- dd
j%                  |«      z   dz   }|dfS t        |t(        «      rZg }|j                  D ]+  }| j                  |«      \  }}|s y|j!                  |«       Œ- |rdd
j%                  |«      z   dz   }|dfS yt        |t*        «      ryg }|j                  D ]M  \  }}	|€ y| j                  |«      \  }
}| j                  |	«      \  }}|r|s y|j!                  |
› d|› �«       ŒO dd
j%                  |«      z   dz   }|dfS y)zŽGet a string representation of the default value of a node.

        Returns a 2-tuple of the default and whether or not it is valid.
        )r›   rw  rx  Trî   z\\ú\rù   z,)rª   rÃ   rÄ   rü   rý   r  r  r  )r(  F)rÿ   r7   rÏ   r1   r(   rç   rE   r1  r-  r?   ræ   r   rV  rB   r  rÏ  rË   r  rÍ   r4   r;   r#   )r’   rJ  Úitems_defaultsr�  Ú	e_defaultrß  Úclosingr¿  ÚkÚvÚ	k_defaultÚk_validÚ	v_defaultÚv_valids                 r“   rÏ  z(ASTStubGenerator.get_str_default_of_node˜  s  € ô
 �fœhÔ'Ø�{‰{Ð7Ñ7Ø—{‘{ DÐ(Ð(ðn ôm ˜¤¬)Ð 4Ô5Ø—l‘l�^ dÐ*Ð*Ü˜¤	Ô*Ü˜&Ÿ+™+¬´Ð';Ô<Ø Ÿ)™)˜ V§[¡[×%6Ñ%6Ð$7Ð8¸$Ð>Ð>ðd ôc ˜¤Ô(Ü˜Ÿ™Ó% tÐ+Ð+Ü˜¤	Ô*Øœ˜fŸl™lÓ+×3Ñ3°F¸DÓAÑAÀ4ÐGÐGÜ˜¤	Ô*ØˆNØ—\‘\ò %�Ø#'×#?Ñ#?ÀÓ#BÑ �	˜5ÙØðP ðO ×%Ñ% iÕ0ð	%ô #& nÓ"5¸Ò":™$À�Ø §	¡	¨.Ó 9Ñ9¸GÑC�Ø �}Ð$Ü˜¤Ô)ØˆNØ—\‘\ò %�Ø#'×#?Ñ#?ÀÓ#BÑ �	˜5ÙØð: ð9 ×%Ñ% iÕ0ð	%ð  §	¡	¨.Ó 9Ñ9¸CÑ?�Ø �}Ð$Ü˜¤Ô(ØˆNØ—\‘\ò )�Ø#'×#?Ñ#?ÀÓ#BÑ �	˜5ÙØð& ð% ×%Ñ% iÕ0ð	)ñ "Ø! D§I¡I¨nÓ$=Ñ=ÀÑC�GØ" D˜=Ð(ð ô ˜¤Ô)ØˆNØŸ™ò 
%‘��1Ø�9Øð ð &*×%AÑ%AÀ!Ó%DÑ"�	˜7Ø%)×%AÑ%AÀ!Ó%DÑ"�	˜7Ù¡GØð
 ð	 ×%Ñ%¨¨°2°i°[Ð&AÕBð
%ð  §	¡	¨.Ó 9Ñ9¸CÑ?�Ø �}Ð$Ør•   c                óÒ   •— | j                  ||dz   |z   «      }|s<|| j                  vr.| j                  r|| j                  v r|s|d| j                  z   vryt
        ‰| �  |||«      S )Nr�  )r	  ÚasyncioT)r¨  r£  r�  r˜  r§  r½   r”  )r’   rÏ   rœ  Úname_is_aliasÚ
is_privater¾   s        €r“   r”  z ASTStubGenerator.should_reexportØ  st   ø€ Ø×)Ñ)¨$°¸cÑ0AÀDÑ0HÓIˆ
áØ˜D×1Ñ1Ñ1Ø—Z’Z 4¨4×+?Ñ+?Ñ#?ÙØÐ#5¸×8PÑ8PÑ#PÑPð
 Ü‰wÑ& t¨[¸-ÓHÐHr•   )NFFFF)r�  r°   rŠ   r—   r˜  r—   r�   r—   r‘   r—   rš   r›   )rš   zClassDef | None)rã   r6   rš   r›   )rã   r9   rš   r›   )r³  r*   r´  rS   rš   rL   )rã   r*   r´  rS   rš   zlist[ArgSig])rã   r*   r´  rS   rš   r¯   )rÎ   r*   rš   r¯   rp  )rã   r"   rš   r›   )r1  r&   rš   r˜   ro  )r;  r   rš   r™   ©r1  r&   rš   r—   )rã   r   rš   r›   rq  )r1  r   rš   r—   )rX  r   rš   zlist[tuple[str, str]] | None)r_  r7   rJ  r   rš   r›   )r_  r7   rš   r›   )T)r1  r&   r|  r—   rš   r—   )F)r_  r7   rJ  r&   rI  r—   rš   r›   rr  )rã   r,   rš   r›   )rã   r.   rš   r›   )rã   r/   rš   r›   )rã   r-   rš   r›   r€   )r_  r˜   rJ  r&   r   zType | Nonerš   r¯   )rJ  r&   rš   r˜   )rÏ   r˜   rÙ   r—   rš   r›   rn  )rÚ   r˜   rš   r—   )rJ  r&   r½  r—   rš   r˜   )r1  r&   rš   r&   )rJ  r&   rš   ztuple[str, bool])rÏ   r˜   rœ  r˜   rÌ  r—   rš   r—   )0rœ   r�   rž   rŸ   r”   r±   rŸ  r¤  r®  r·  r°  r±  rê  ri  r  rª  rÕ   rf  r  r  rA  rB  r~  rk  r7  r9  r8  rK  rL  rM  rc  rN  rP  rm  r†  r‹  rŸ  r“  rø  r¨  r  r¬  r~  rÎ  r»  rÏ  r”  rS  rT  s   @r“   rQ  rQ    s«  ø„ Ù-ð #'Ø %ØØ!Ø#(ð=àð=ð ð=ð ð	=ð
 ð=ð !ð=ð 
õ=ð. òDó ðDõ%ó(ó(Dó@óD(óTó8ót$ó5Cón
'õ4%ól*óXóBó
	õ#ó5ónJóHó"óH ó4>ó>$ó@ô
5ðp TYð
+Øð
+Ø(2ð
+ØLPð
+à	ó
+ó$õ!óJó#)óJ*ð JNð"DØð"DØ#-ð"DØ;Fð"Dà	ó"DóHô4,ó
!óAð UYõ ó2 óD>÷@Iñ Ir•   rQ  c                óf  — t        «       }| D ]¡  }t        |t        «      r|j                  |j                  «       Œ/t        |t
        «      r&|j                  |j                  j                  «       Œet        |t        «      sŒv|j                  D ]  }|j                  t        |g«      «       Œ Œ£ |S r€   )rb  rÿ   r*   re  rÏ   r"   r©  r9   r  r™  r  )r  ÚresultÚdefnr  s       r“   r  r  è  s‰   € ä‹U€FØò 9ˆÜ�dœGÔ$Ø�J‰J�t—y‘yÕ!Ü˜œiÔ(Ø�J‰J�t—y‘y—~‘~Õ&Ü˜Ô/Õ0ØŸ
™
ò 9�Ø—‘Ô/°°Ó7Õ8ñ9ð9ð €Mr•   c                  ó   — e Zd Zdd„Zdd„Zy)ÚSelfTraverserc                ó   — g | _         y r€   )Úresultsr«   s    r“   r”   zSelfTraverser.__init__÷  s	   € ØBDˆ�r•   c                ó&  — |j                   d   }t        |t        «      rrt        |j                  t        «      rW|j                  j
                  dk(  r=| j                  j                  |j
                  |j                  |j                  f«       y y y y )Nr   r’   )
r^  rÿ   r5   r1  r7   rÏ   rÕ  rË   rJ  rÈ  )r’   rã   r_  s      r“   rk  z#SelfTraverser.visit_assignment_stmtú  so   € Ø—‘˜1‘ˆä�vœzÔ*Ü˜6Ÿ;™;¬Ô1Ø—‘× Ñ  FÒ*à�L‰L×Ñ §¡¨a¯h©h¸×8IÑ8IÐ JÕKð +ð 2ð +r•   Nrn  rq  )rœ   r�   rž   r”   rk  r    r•   r“   rÓ  rÓ  ö  s   „ óEôLr•   rÓ  c                óP   — t        «       }| j                  |«       |j                  S )znFind attribute initializers in a method.

    Return a list of pairs (attribute name, r.h.s. expression).
    )rÓ  rÆ   rÕ  )ÚfdefÚ	traversers     r“   r÷  r÷    s#   € ô
 “€IØ‡K�K�	ÔØ×ÑÐr•   c                ó®   — t        | t        «      r| j                  S t        | t        «      r$t	        | j
                  «      › d| j                  › �S t        S )Nr�  )rÿ   r7   rÏ   r5   r×   r1  r¸   )rã   s    r“   r×   r×     sD   € Ü�!”XÔØ�v‰vˆÜ	�A”zÔ	"Ü$ Q§V¡VÓ,Ð-¨Q¨q¯v©v¨hÐ7Ð7äÐr•   c                óp   — | D �cg c]&  }|j                   �t        |j                   «      rŒ%|‘Œ( c}S c c}w r€   )r¨   Úis_blacklisted_path)rŒ   r§   s     r“   Úremove_blacklisted_modulesrÝ    s7   € à$öØ¨¯©Ð(;ÔCVÐW]×WbÑWbÕCcŠòð ùò s   …&3¬3c                ó�   — g }g }| D ]:  }t        |j                  «      r|j                  |«       Œ*|j                  |«       Œ< ||fS r€   )r   r¨   rË   )rŒ   Ú
py_modulesÚpyc_modulesÚmods       r“   Úsplit_pyc_from_pyrâ    sP   € Ø€JØ€KØò #ˆÜ�s—x‘xÔ Ø×Ñ˜sÕ#à×Ñ˜cÕ"ð	#ð
 ˜
Ð"Ð"r•   c                ó4   ‡ — t        ˆ fd„t        D «       «      S )Nc              3  ó>   •K  — | ]  }|t        ‰«      d z   v –— Œ y­w)rì  N)Únormalize_path_separators)r  Úsubstrr¨   s     €r“   r  z&is_blacklisted_path.<locals>.<genexpr>)  s!   øè ø€ ÒZÀfˆvÔ3°DÓ9¸DÑ@ÔAÑZùs   ƒ)rÌ  rt   ©r¨   s   `r“   rÜ  rÜ  (  s   ø€ ÜÓZÔPYÔZÓZÐZr•   c                óP   — t         j                  dk(  r| j                  dd«      S | S )NÚwin32rÀ  rÁ  )ÚsysÚplatformrV  rç  s    r“   rå  rå  ,  s#   € Ü&)§l¡l°gÒ&=ˆ4�<‰<˜˜cÓ"ÐGÀ4ÐGr•   c                óN  — | j                   s| j                  r| j                  r9t        | j                  | j                   | j                  | j
                  «      }g }n€t        | j                  | j                   | j                  | j                  «      \  }}nF	 t        | j                  |«      }|D �cg c]"  }t        |j                  |j                   «      ‘Œ$ }}g }t#        |«      }t%        |«      \  }}|||fS # t        $ r}t        t        |«      «      |‚d}~ww xY wc c}w )zsCollect files for which we need to generate stubs.

    Return list of py modules, pyc modules, and C modules.
    N)rn   rŒ   r‚   Úfind_module_paths_using_searchr…   r�   Úfind_module_paths_using_importsrŽ   r�   r   r�   r
   Ú
SystemExitr˜   r¢   r§   r¨   rÝ  râ  )	ÚoptionsÚ	mypy_optsrß  Ú	c_modulesÚsource_listr�  ÚmÚpyc_modÚpy_mods	            r“   Úcollect_build_targetsr÷  0  s  € ð ×Ò˜7Ÿ?š?Ø×ÒÜ7Ø—‘ ×!1Ñ!1°7×3FÑ3FÈ×HYÑHYóˆJð +-‰Iô %DØ—‘ ×!1Ñ!1°7·?±?ÀGÇMÁMó%Ñ!ˆJ™	ð
	,Ü,¨W¯]©]¸IÓFˆKð =HÖH°q”j §¡¨1¯6©6Õ2ÐHˆ
ÐHØˆ	ä+¨JÓ7€JÜ'¨
Ó3�O€GˆVØ�7˜IÐ%Ð%øô !ò 	,ÜœS ›VÓ$¨!Ð+ûð	,üâHs   ÂC< Â3'D"Ã<	DÄDÄDc           	     ó6  — t        «       5 }g }g }t        t        |||«      «      }| |z   } | D �cg c]  }t        |«      rŒ|‘Œ } }| D ]N  }	 t	        |||«      }	|	s|j                  t        |«      «       Œ.|	\  }}|j                  t        |||«      «       ŒP ||fcddd«       S c c}w # t
        $ rX}
t        j                  «       }|rt        j                  j                  |«       |st        ||
j                  |«       Y d}
~
Œ¿d}
~
ww xY w# 1 sw Y   yxY w)zšFind path and runtime value of __all__ (if possible) for modules and packages.

    This function uses runtime Python imports to get the information.
    N)r   Úlistr\   Úis_non_library_modulerV   rQ   Ú	tracebackÚ
format_excrê  ÚstderrÚwriter[   ÚmessagerË   r¢   )rŒ   rn   rŽ   r�   rƒ   rß  rò  rR  rá  rÐ  r�  Útbr¨   r¥   s                 r“   rî  rî  P  s%  € ô 
‹ð %˜GØ')ˆ
Ø&(ˆ	Ü”] 7¨H°gÓ>Ó?ˆØ˜E‘/ˆà"ö
ØÔ*?ÀÕ*DŠCð
ˆð 
ð ò 	FˆCðÜ5°g¸sÀGÓL�ñ Ø× Ñ ¤¨C£Õ1à$*Ñ!��kØ×!Ñ!¤*¨S°$¸Ó"DÕEð	Fð ˜9Ð$÷/%ñ %ùò

øô ò Ü×)Ñ)Ó+�ÙÜ—J‘J×$Ñ$ RÔ(ÙÜ" 3¨¯	©	°2Ô6Üûðú÷%ð %úsN   ‹$D¯B&Á B&ÁDÁB+ÁADÂ&DÂ+	DÂ4ADÄDÄDÄDÄDc                ó’   — | j                  d«      ry| j                  d«      d   j                  d«      ryd| v sd| v sd| v sd	| v ryy
)z0Does module look like a test module or a script?)z.testsz.testz.testingÚ_testsÚ_test_suiteÚ	test_utilÚ
test_utilsÚ	test_basez	.__main__z	.conftestz.setupTr�  rú   Útest_z.tests.z.test.z	.testing.z
.SelfTest.F)r  rW  r  ©r§   s    r“   rú  rú  q  s]   € à‡�ð	
ôð Ø‡|�|�CÓ˜Ñ×'Ñ'¨Ô0Øà�VÑØ�vÑØ˜&Ñ Ø˜6Ñ!àØr•   c                óâ   — t         D ]c  }dD ]\  }|› d|› �}| j                  d|z   «      s| |k(  r
|r|dfc c S d|z   dz   | v sŒ8|dz   | j                  d|z   dz   «      d   z   dfc c S  Œe | |fS )N)z	six.movesrŽ  r�  r   rø   )rs   r  Ú	partition)r§   r‰  ÚpkgÚaltræ  s        r“   r‘  r‘  �  s    € Üò NˆØ%ò 	NˆCØ�u˜A˜c˜U�^ˆFØ�‰˜s V™|Ô,°¸6Ò1AÁhØ˜A�v”Ø�V‰|˜cÑ! VÒ+Ø˜S‘y 6×#3Ñ#3°C¸&±LÀ3Ñ4FÓ#GÈÑ#JÑJÈAÐMÔMñ	NðNð �8ÐÐr•   c                ó¨  — g }t        t        j                  j                  «       |d«      }t	        dt        |«      z   ddt        |«      «      }t        |dd¬«      }| D ]O  }|j                  |«      }	t        |	t        «      rt        ||	«       d}
n|	}
|j                  t        ||
«      «       ŒQ |D ]m  }|j                  |«      }|rt        |t        j                  «       |D �cg c]"  }t        |j                  |j                   «      ‘Œ$ }}|j#                  |«       Œo |D �cg c]  }t%        |j                  «      rŒ|‘Œ }}|S c c}w c c}w )a  Find sources for modules and packages requested.

    This function just looks for source files at the file system level.
    This is used if user passes --no-import, and will not find C modules.
    Exit if some of the modules or packages can't be found.
    N)r�  r    )Úfscacherð  )r   r%  r   Údefault_data_dirr   Útupler   Úfind_modulerÿ   r   rU   rË   r¢   Úfind_modules_recursiveÚ	NOT_FOUNDr§   r¨   r—  rú  )rŒ   rn   r…   r�   rÐ  Útypeshed_pathÚsearch_pathsÚcacher§   Úm_resultÚmodule_pathÚpackageÚp_resultrô  Úsourcess                  r“   rí  rí  š  s7  € ð  "€FÜ$¤T§Z¡Z×%@Ñ%@Ó%BÀIÈtÓT€MÜ˜v¬¨kÓ(:Ñ:¸BÀÄEÈ-ÓDXÓY€LÜ˜L°$ÀÔE€EØò 7ˆØ×$Ñ$ VÓ,ˆÜ�hÔ 4Ô5Ü˜ Ô*Ø‰Kà"ˆKØ�‰”j ¨Ó5Õ6ð7ð ò ˆØ×/Ñ/°Ó8ˆÙÜ˜Ô"6×"@Ñ"@ÔAØ9AÖB°A”:˜aŸh™h¨¯©Õ/ÐBˆÐBØ�‰�gÕðð  ÖG�AÔ'<¸Q¿X¹XÕ'FŠaÐG€FÐGà€Mùò Cùò Hs   Ã''E
Ä'EÅEc                ó~  — t        «       }d|_        d|_        d|_        d|_        | j
                  |_        d|_        t        |_	        d|_
        | j                  |_        t        j                  dd«      }|j                  «       r||_        t        j                   j#                  |j                  «      |_        |S )z4Generate mypy options using the flag passed by user.ÚskipFTÚMYPY_CACHE_DIRr
  )ÚMypyOptionsÚfollow_importsÚincrementalr‰   Úsemantic_analysis_onlyr�   Úpython_versionÚshow_tracebackrZ   Útransform_sourceÚpreserve_astsr‘   ÚosÚgetenvÚstripÚ	cache_dirr¨   Ú
expanduser)Ústubgen_optionsrð  Úenviron_cache_dirs      r“   Úmypy_optionsr.  »  s§   € ä‹m€GØ#€GÔØ€GÔØ €GÔØ%)€GÔ"Ø,×6Ñ6€GÔØ!€GÔÜ=€GÔØ €GÔØ!0×!CÑ!C€GÔô Ÿ	™	Ð"2°BÓ7ÐØ×ÑÔ Ø-ˆÔÜŸ™×*Ñ*¨7×+<Ñ+<Ó=€GÔà€Nr•   c                ó`  — | j                   €J d«       ‚t        | j                   d«      5 }|j                  «       }ddd«       t        j                  j                  «      }t        |«      }t        j                  j                  || j                   | j                  ||d¬«      | _	        | j                  | j                  _
        |j                  «       rM|j                  «       D ]$  }t        j                  j                  |› d�«       Œ& t        j                   d«       yy# 1 sw Y   ŒêxY w)zœParse a source file.

    On success, store AST in the corresponding attribute of the stub source.
    If there are syntax errors, print them and exit.
    Nú Not found module was not skippedÚrbT)Úfnamr§   Úerrorsrð  Úeagerrì  rù   )r¨   ÚopenÚreadr%  r&  Údecode_python_encodingr	   Úparser§   r¦   Ú	_fullnameÚis_blockersÚnew_messagesrê  rý  rþ  Úexit)rá  r.  r2  Údatar¤   r3  rô  s          r“   Úparse_source_filer>  Ñ  s÷   € ð �8‰8ÐÐCÐ!CÓCÐÜ	ˆc�h‰h˜Ó	ð  Ø�v‰v‹xˆ÷ä�Y‰Y×-Ñ-¨dÓ3€FÜ�LÓ!€FÜ�j‰j×ÑØ�S—X‘X c§j¡j¸ÈÐ]að ó €C„Gð Ÿ
™
€C‡G�GÔØ×ÑÔà×$Ñ$Ó&ò 	'ˆAÜ�J‰J×Ñ ˜s "˜XÕ&ð	'ä�‰��ð	 ÷ð ús   ªD$Ä$D-c                ód  — | sy|rt        dt        | «      › d�«       |r| D ]  }t        ||«       Œ y	 t        | D �cg c]  }|j                  ‘Œ c}|«      }| D ]¨  }|j                  |j                     j                  |_
        |j                  �Œ8|j                  j                  j                  |j                     j                  }d|v sŒt|j!                  «       D �	�
cg c]  \  }	}
|
j"                  sŒ|	‘Œ c}
}	|_        Œª yc c}w # t
        $ r}t        d|› �«      |‚d}~ww xY wc c}
}	w )z8Use mypy to parse (and optionally analyze) source files.NzProcessing z	 files...z)Critical error during semantic analysis: Ú__all__)Úprintr  r>  r   r¤   r   rï  Úgraphr§   Útreer¦   r¥   ÚmanagerÚsemantic_analyzerrŒ   rW  r  Úmodule_public)rß  rˆ   r.  rŽ   rá  r§   Úresr�  Ú	mod_namesrÏ   Úsyms              r“   Úgenerate_asts_for_modulesrJ  ç  s  € ñ ØÙÜ�œC 
›OÐ,¨IÐ6Ô7ÙØò 	1ˆCÜ˜c <Õ0ð	1àðQÜ°Ö< v�V—]“]Ò<¸lÓKˆð ò aˆØ—)‘)˜CŸJ™JÑ'×,Ñ,ˆŒà�?‰?Ñ"ØŸ™×5Ñ5×=Ñ=¸c¿j¹jÑI×OÑOˆIØ˜IÒ%Ø9B¿¹Ó9J×"`©I¨D°#Èc×N_ÓN_¢4Ó"`�•ñaùò	 =øÜò QÜÐDÀQÀCÐHÓIÈqÐPûðQüó #as4   µ	D ¾DÁD Ã"D,Ã7D,ÄD Ä	D)ÄD$Ä$D)Fr
  )rˆ   rƒ   rŠ   r�   r‘   r„   c          	     óZ  — |rGt        | j                  || j                  ||||¬«      }	|	j                  «        |	j	                  «       }
nYt        | j                  || ||¬«      }| j                  €J d«       ‚| j                  j                  |«       |j	                  «       }
t        j                  j                  |«      }|r4t        j                  j                  |«      st        j                  |«       t        |dd¬«      5 }|j                  |
«       ddd«       y# 1 sw Y   yxY w)z°Use analysed (or just parsed) AST to generate type stub for single file.

    If directory for target doesn't exist it will created. Existing stub
    will be overwritten.
    )r¡  Úknown_modulesr�  r„   rŠ   r�   r‘   )rŠ   r˜  r�   r‘   Nz5This function must be used only with analyzed modulesÚwzutf-8)Úencoding)rM   r§   r¥   Úgenerate_moduler  rQ  r¦   rÆ   r'  r¨   ÚdirnameÚisdirÚmakedirsr5  rþ  )rá  Útargetrˆ   rƒ   rŠ   r�   r‘   r„   Úall_modulesÚngenr  ÚgenÚsubdirrY  s                 r“   Úgenerate_stub_for_py_modulerX    sü   € ñ" Ü&ØŸ
™
Ø%Ø—/‘/ØØ+Ø#Ø1ô
ˆð 	×ÑÔØ—‘“‰ô Ø�O‰OØ+Ø#�^Ø#Ø1ô
ˆð �w‰wÐ"Ð[Ð$[Ó[Ð"Ø�‰�‰�sÔØ—‘“ˆô �W‰W�_‰_˜VÓ$€FÙ”b—g‘g—m‘m FÔ+Ü
�‰�FÔÜ	ˆf�c GÔ	,ð °Ø�
‰
�6Ô÷÷ ñ ús   ÄD!Ä!D*c                ób  ‡
— t        | «      }t        | |«      \  }}}||z   |z   }t        d„ |D «       «      }t        || j                  || j
                  «       g }||z   D �].  Š
‰
j                  €J d«       ‚‰
j                  j                  dd«      }t        j                  j                  ‰
j                  «      dv r|dz  }n|dz  }t        j                  j                  | j                  |«      }|j                  |«       t        ‰
j                  || j                  | j
                  «      5  t!        ‰
|| j                  | j"                  xs ‰
|v | j$                  | j&                  | j(                  | j*                  |¬	«	       ddd«       �Œ1 |D �]
  Š
t-        ˆ
fd
„|D «       «      r ‰
j                  j                  dd«      dz   }n‰
j                  j                  dd«      dz   }t        j                  j                  | j                  |«      }|j                  |«       t        ‰
j                  || j                  | j
                  «      5  t/        ‰
j                  ||| j*                  | j$                  | j&                  | j(                  ¬«       ddd«       �Œ t1        |«      }	| j2                  s]|	dkD  rWt5        d|	z  «       t1        |«      dk(  rt5        d|d   › �«       yt5        dt7        |«      › �t        j8                  z   «       yyy# 1 sw Y   �ŒÁxY w# 1 sw Y   �ŒšxY w)z!Main entry point for the program.c              3  ó4   K  — | ]  }|j                   –— Œ y ­wr€   r  )r  rô  s     r“   r  z!generate_stubs.<locals>.<genexpr>9  s   è ø€ Ò<¨1˜aŸh�hÑ<ùr3  Nr0  r�  rÁ  )z__init__.pyz__init__.pycz/__init__.pyiz.pyi)rˆ   rƒ   rŠ   r�   r‘   r„   rT  c              3  ón   •K  — | ],  }|j                   j                  ‰j                   d z   «      –— Œ. y­w)r�  N)r§   r  )r  rö  rá  s     €r“   r  z!generate_stubs.<locals>.<genexpr>U  s)   øè ø€ ÒT¸fˆv�}‰}×'Ñ'¨¯
©
°SÑ(8×9ÑTùs   ƒ25)rL  r„   rŠ   r�   r‘   r   zProcessed %d modulesrù   z
Generated zGenerated files under )r.  r÷  ÚsortedrJ  rˆ   rŽ   r¨   r§   rV  r'  ÚbasenamerÍ   r‹   rË   rW   r‰   rX  rƒ   rŠ   r�   r‘   r„   rÌ  rN   r  r�   rA  rT   r+  )rð  rñ  rß  rà  rò  rT  Úall_module_namesr�   rS  Únum_modulesrá  s             @r“   Úgenerate_stubsr`  4  sË  ø€ ä˜WÓ%€IÜ)>¸wÈ	Ó)RÑ&€J�˜YØ˜{Ñ*¨YÑ6€KÜÑ<°Ô<Ó<Ðä˜j¨'×*<Ñ*<¸iÈÏÉÔYØ€EØ˜KÑ'ó ˆØ�x‰xÐ#ÐGÐ%GÓGÐ#Ø—‘×#Ñ# C¨Ó-ˆÜ�7‰7×Ñ˜CŸH™HÓ%Ð)HÑHØ�oÑ%‰Fà�fÑˆFÜ—‘—‘˜g×0Ñ0°&Ó9ˆØ�‰�VÔÜ˜cŸj™j¨&°'×2GÑ2GÈÏÉÓYñ 	Ü'ØØØ"×-Ñ-ØŸ™Ò=¨3°+Ð+=Ø '× 7Ñ 7Ø#×/Ñ/Ø#*×#=Ñ#=ØŸ™Ø,õ
÷	ñ 	ðð. ó ˆÜÓTÈÔTÔTØ—Z‘Z×'Ñ'¨¨SÓ1°OÑC‰Fà—Z‘Z×'Ñ'¨¨SÓ1°FÑ:ˆFÜ—‘—‘˜g×0Ñ0°&Ó9ˆØ�‰�VÔÜ˜cŸj™j¨&°'×2GÑ2GÈÏÉÓYñ 		Ü&Ø—
‘
ØØ.ØŸ™Ø '× 7Ñ 7Ø#×/Ñ/Ø#*×#=Ñ#=õ÷		ñ 		ðô" �kÓ"€KØ�=Š=˜[¨1š_ÜÐ$ {Ñ2Ô3Üˆu‹:˜Š?Ü�J˜u Q™x˜jÐ)Õ*äÐ*Ô+<¸UÓ+CÐ*DÐEÌÏÉÑNÕOð -ˆ=÷A	ñ 	ú÷*		ñ 		ús   Ä0ALÉAL$ÌL!	Ì$L.	z^%(prog)s [-h] [more options, see -h]
                     [-m MODULE] [-p PACKAGE] [files ...]z 
Generate draft stubs for modules.

Stubs are generated in directory ./out, to avoid overriding files with
manual changes.  This directory is assumed to exist.
c           	     óº  — t        j                  dt        t        d¬«      }|j	                  ddd¬«       |j	                  ddd	¬«       |j	                  d
dddd¬«       |j	                  dddd¬«       |j	                  ddd¬«       |j	                  ddd¬«       |j	                  ddd¬«       |j	                  dddd¬«       |j	                  dddd¬«       |j	                  ddd d!¬"«       |j	                  d#dd d$¬"«       |j	                  d%d&dd'd(d)¬*«       |j	                  d+d,d-d.d/g d0¬1«       |j	                  d2d3d-d4d5g d6¬1«       |j	                  d7d8d7d9¬:«       |j	                  d;d<d=t
        j                  j                  z   ¬>«       |j                  | «      }t        j                  d d? }t        j                  |_        |j                  |j                  z   r|j                  r|j!                  d@«       |j"                  r|j$                  r|j!                  dA«       |j&                  r|j(                  r|j!                  dB«       t+        j,                  |j.                  dC¬D«       t1        dQi dE|“dF|j2                  “d|j&                  “dG|j4                  “dH|j6                  j9                  dI«      “dJ|j                  “dK|j:                  “d|j(                  “dL|j<                  “d'|j.                  “d/|j                  “d5|j                  “d7|j                  “dM|j$                  “dN|j"                  “dO|j>                  “dP|j@                  “ŽS )RNr¼   r
  )ÚprogÚusageÚdescriptionÚfromfile_prefix_charsz--ignore-errorsÚ
store_truez7ignore errors when trying to generate stubs for modules)ÚactionÚhelpz--no-importz{don't import the modules, just parse and analyze them (doesn't work with C extension modules and might not respect __all__)z--no-analysisz--parse-onlyrˆ   zŸdon't perform semantic analysis of sources, just parse them (only applies to Python modules, might affect quality of stubs. Not compatible with --inspect-mode))Údestrg  rh  z--inspect-moderƒ   zÍimport and inspect modules instead of parsing source code.This is the default behavior for c modules and pyc-only packages, but it is also useful for pure python modules with dynamically generated members.z--include-privatezqgenerate stubs for objects and members considered private (single leading underscore and no trailing underscores)z--export-lesszQdon't implicitly export all names imported from other modules in the same packagez--include-docstringsz*include existing docstrings with the stubsz-vz	--verbosezshow more verbose messagesz-qz--quietzshow fewer messagesz	--doc-dirÚPATHr
  z…use .rst documentation in PATH (this may result in better stubs in some cases; consider setting this to DIR/Python-X.Y.Z/Doc/library))Úmetavarr¿  rh  z--search-pathzaspecify module search directories, separated by ':' (currently only used if --no-import is given)z-oz--outputr‹   Úoutz2change the output directory [default: %(default)s])rk  ri  r¿  rh  z-mz--modulerË   ÚMODULErŒ   z5generate stub for module; can repeat for more modules)rg  rk  ri  r¿  rh  z-pz	--packageÚPACKAGErn   z7generate stubs for package recursively; can be repeatedr�   rÀ   z-generate stubs for given files or directories)rk  Únargsri  rh  z	--versionÚversionz	%(prog)s )rg  rp  rø   z3May only specify one of: modules/packages or files.z.Cannot specify both quiet and verbose messageszACannot specify both --parse-only/--no-analysis and --inspect-modeT)Úexist_okr�   r‚   r„   r…   r4  r†   r‰   rŠ   rŽ   r�   r�   r‘   r    )!ÚargparseÚArgumentParserÚHEADERÚDESCRIPTIONÚadd_argumentr%  rp  Ú__version__Ú
parse_argsrê  Úversion_infoÚ
executabler†   rŒ   rn   r�   Úerrorr�   rŽ   rƒ   rˆ   r'  rR  r‹   rG   r‚   r„   r…   rW  r‰   rŠ   r�   r‘   )rÉ   ÚparserÚnsr�   s       r“   Úparse_optionsr~  y  sÜ  € Ü×$Ñ$Øœf´+ÐUXô€Fð ×ÑØØØFð ô ð
 ×ÑØØðð ô ð ×ÑØØØØð.ð ô ð ×ÑØØØðXð	 ô ð ×ÑØØðBð ô ð ×ÑØØØ`ð ô ð
 ×ÑØØØ9ð ô ð
 ×Ñ˜˜k°,ÐEaÐÔbØ
×Ñ˜˜i°ÐCXÐÔYØ
×ÑØØØð(ð	 ô ð ×ÑØØØð8ð	 ô ð ×ÑØØØØØØAð ô ð ×ÑØØØØØØØDð ô ð ×ÑØØØØØØØFð ô ð ×ÑØØØØ<ð	 ô ð ×ÑØ˜I¨{¼T¿\¹\×=UÑ=UÑ/Uð ô ð 
×	Ñ	˜4Ó	 €Bä× Ñ   !Ð$€IÜ—^‘^€B„Nà	‡z�z�B—K‘KÒ B§H¢HØ�‰ÐJÔKØ	‡x‚x�B—J’JØ�‰ÐEÔFØ	‡z‚z�b—m’mØ�‰ÐXÔYô ‡K�K�—‘¨Õ-äò Ùðà—,’,ðð —
’
ðð —
’
ð	ð
 —N‘N×(Ñ(¨Ô-ðð —N’Nðð ×&Ò&ðð —=’=ðð ×*Ò*ðð —=’=ðð —
’
ðð —’ðð �hŠhðð —
’
ðð �hŠhðð  —N’Nð!ð" ×0Ò0ð#ð r•   c                ó   — t         j                  j                  d«       dt        j                  v s2dt        j                  v s t        j                  j                  dd«       t        | €t        j                  dd  n| «      }t        |«       y )Nr¼   r
  r�  r   rù   )	r%  r&  Úcheck_python_versionrê  r¨   rÐ  r~  Úargvr`  )rÉ   rð  s     r“   Úmainr‚    s_   € Ü‡I�I×"Ñ" 9Ô-ð ”#—(‘(‰N˜c¤S§X¡X™oÜ�‰�‰˜˜2Ôä¨D¨LœCŸH™H Q R™L¸dÓC€GÜ�7Õr•   r„  )rY  r6   rš   úset[str])r^  zIterable[Expression]rš   zIterator[str]rÎ  )r  zlist[Statement]rš   rƒ  )rØ  r)   rš   z)list[tuple[str, Expression, Type | None]])rã   r&   rš   r˜   )rŒ   úlist[StubSource]rš   r„  )rŒ   r„  rš   ú)tuple[list[StubSource], list[StubSource]])r¨   r˜   rš   r—   )r¨   r˜   rš   r˜   )rð  rG   rñ  r  rš   z;tuple[list[StubSource], list[StubSource], list[StubSource]])
rŒ   r™   rn   r™   rŽ   r—   r�   r—   rš   r…  )r§   r˜   rš   r—   )r§   r˜   r‰  rµ  rš   ztuple[str, int])
rŒ   r™   rn   r™   r…   r™   r�   r–   rš   r„  )r,  rG   rš   r  )rá  r¢   r.  r  rš   r›   )
rß  r„  rˆ   r—   r.  r  rŽ   r—   rš   r›   )rá  r¢   rS  r˜   rˆ   r—   rƒ   r—   rŠ   r—   r�   r—   r‘   r—   r„   r˜   rT  r™   rš   r›   )rð  rG   rš   r›   )rÉ   r™   rš   rG   r€   )rÉ   r°   rš   r›   )»rŸ   r�  r   rr  rl  r'  Úos.pathrê  rû  Úcollections.abcr   r   Útypingr   Ú
mypy.buildr%  Úmypy.mixedtraverserÚ
mypy.parseÚmypy.traverserÚ	mypy.utilÚmypy.versionr   Úmypy.errorsr   r	   Úmypy.find_sourcesr
   r   Úmypy.modulefinderr   r   r   r   r   Úmypy.moduleinspectr   r   Ú
mypy.nodesr   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   Úmypy.optionsrG   r  Úmypy.plugins.dataclassesrH   Úmypy.semanal_sharedrI   Úmypy.sharedparserJ   Úmypy.stubdocrK   rL   Úmypy.stubgencrM   rN   Úmypy.stubutilrO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   Ú
mypy.typesra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   Úmypy.visitorrm   rs   Ú__annotations__rt   r}   r¢   r²   r³   r´   rµ   r¶   r·   r¸   r˜   rº   r[  r]  rÙ  ÚTraverserVisitorrV  rv  rx  ÚmixedtraverserÚMixedTraverserVisitorrt  rQ  r  rÓ  r÷  r×   rÝ  râ  rÜ  rå  r÷  rî  rú  r‘  rí  r.  r>  rJ  rX  r`  rt  ru  r~  r‚  rœ   r    r•   r“   ú<module>r¡     s�  ðò&õP #ã Û Û 	Û Û 
Û ß .Ý ã Û Û Û Û Û Ý ß ,ß C÷õ ÷ :÷5÷ 5÷ 5÷ 5÷ 5÷ 5÷ 5÷ 5÷ 5÷ 5÷ 5÷ 5÷ 5ó 5õl 0Ý ?Ý =Ý 8ß ,ß M÷÷ ÷ ÷ ÷ ó ÷÷ ÷ ó õ %ò ]€�Ó \ò€	ˆ5ó ò	$Ð ˜5ó 	÷,5ñ ,5÷^ ñ  ð8 €€uÓ Ø€€eÓ Ø€€uÓ Ø"€ˆUÓ "Ø€€UÓ Ø €
ˆEÓ  ð
  €ˆeÓ ôS/�;˜sÑ#ô S/óló8ô$�t—~’~×6Ò6ô $ó.ó>ô'$�d×)Ò)×?Ò?ô '$ôT]IÐ(¨$¯.ª.×*IÒ*Iô ]Ió@ôL�D—N’N×3Ò3ô Lóóóó#ó[óHð&Øð&Ø!,ð&à@ó&ð@%Øð%Ø"+ð%Ø6:ð%ØCGð%à.ó%óBó<ðØðØ"+ðØ:CðØP_ðàóóBó,ð,aØ ðaØ.2ðaØBMðaØX\ðaà	óað> ØØ!ØØ$Øñ/Ø	ð/àð/ð ð	/ð
 ð/ð ð/ð ð/ð ð/ð ð/ð ð/ð 
ó/ód7Pðt
=€ð€óHôVð ˆzÒÙ…Fð r•   