ML iƂUdZddlmZddlZddlZddlZddlZddlm Z ddl m Z ddl m Z mZmZddlmZddlmZmZdd lmZddlZdd lmZdd lmZmZdd lmZm Z m!Z!m"Z"m#Z#dd l$m%Z%m&Z&ddl'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/dZ0dddddddddddddddZ1de2d<Gdde3Z4 d6 d7dZ5d8dZ6 d9dZ7e d: d;d Z8dd"Z:ed?d#Z;ed@d$Z;dAd%Z;dBd&Z<Gd'd(e,Z=Gd)d*Z>Gd+d,Z?dCd-Z@ dD dEd.ZAed/Gd0d1ZBGd2d3ZCed/Gd4d5ZDy)FzDUtilities for mypy.stubgen, mypy.stubgenc, and mypy.stubdoc modules.) annotationsN)abstractmethod) defaultdict)IterableIteratorMapping)contextmanager)Finaloverload) mypyc_attr)ModuleNotFoundReason) InspectError ModuleInspect)PARAM_SPEC_KINDTYPE_VAR_TUPLE_KINDClassDefFuncDef TypeAliasStmt)ArgSig FunctionSig)AnyTypeNoneTypeTypeTypeListTypeStrVisitor UnboundType UnionType UnpackType builtins.strzbuiltins.tuplez builtins.listz builtins.dictz builtins.setzbuiltins.frozensetz builtins.type)z typing.Textz typing.Tuplez typing.Listz typing.Dictz typing.Setztyping.FrozenSetz typing.Typeztyping_extensions.Textztyping_extensions.Tupleztyping_extensions.Listztyping_extensions.Dictztyping_extensions.Setztyping_extensions.FrozenSetztyping_extensions.Typer TYPING_BUILTIN_REPLACEMENTSceZdZddZy) CantImportc ||_||_yN)modulemessage)selfr&r's S/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mypy/stubutil.py__init__zCantImport.__init__:s  N)r&strr'r,returnNone__name__ __module__ __qualname__r*rr+r)r#r#9sr+r#c#K|D]}|tvrt|d|rtd|d |j|}|j|jr t||j|Ed{w|jEd{y#t$rC|r3t j }t jj|t|YwxYw7k7Xw)aIterates through all packages and sub-packages in the given list. This uses runtime imports (in another process) to find both Python and C modules. For Python packages we simply pass the __path__ attribute to pkgutil.walk_packages() to get the content of the package (all subpackages and modules). However, packages in C extensions do not have this attribute, so we have to roll out our own logic: recursively find all modules imported in the package that have matching names. z: Skipped (blacklisted)Trying to import  for runtime introspectionN)NOT_IMPORTABLE_MODULESprintget_package_propertiesr traceback format_excsysstderrwritereport_missingname is_c_module walk_packages subpackages)inspectpackagesverbose package_nameproptbs r)rArA?s!( 1 1 \N"9: ;   %l%55OP Q 11,?Dii   $Wd.>.>H H H'' ' ''( ))+   $ < (    I 'sG.C&B4C&6C"7C& C$ C&A CC&CC&$C&c4|jdddztjj|jdddf}|D]N}|D]G}tjj||}tjj |sC|ccSPy)N./z.pyz __init__.py)replaceospathjoinisfile)r&sys_pathrelative_candidatesbase relative_pathrNs r)find_module_path_using_sys_pathrU`ssC 5(  V^^C-}=0 M77<<m4Dww~~d#   r+cR|tvr t|d|rtd|d |j|}|jry|j|jfS#t$r@}t |t j}|t|t|||dfcYd}~Sd}~wwxYw)zFind module and determine __all__ for a Python 3 module. Return None if the module is a C or pyc-only module. Return (module_path, __all__) if it is a Python module. Raise CantImport if import failed. r4r5N) r6r#r7r8rrUr;rNr,r@fileall)rCr&rEmoderNs r)find_module_path_and_all_py3r\ms''$$ !&+EFG,,V4  88SWW  .vsxx@ <VSV,! 3Tz sA B&&5B!B&!B&Tc#K|rtd| d|rtd|yy#t$r*}|s|td|tjYd}~yd}~wwxYww)zTIgnore or report errors during stub generation. Optionally report success. z Processing NzCreated zStub generation failed for)rX)r7 Exceptionr;r<)rZtarget ignore_errorsrEr[s r)generate_guardedrasl C5!" '   HVH% &  FG .#** E E Fs*A *A  A AA AA c2|rd|z}t|d|y)Nz with error: z: Failed to import, skipping)r7)rZr'r9s r)r>r>s#!G+ SE-gY 78r+c|tjurd}n|tjurd}nd|d}td|d|)Nz(consider using --search-path)z5(module likely exists, but is not PEP 561 compatible)z(unknown reason 'z')zCan't find module 'z' )r NOT_FOUNDFOUND_WITHOUT_TYPE_HINTS SystemExit)rZreason clarifications r) fail_missingrisQ %///8 '@@ @O +F826 *3%r-A BBr+cyr%rsources r)remove_misplaced_type_commentsrms2 $Cjj&G#{+0I0IU0R Qwiq>* 7#  $ yy~r+NN)rBaseStubGeneratorrlist[str] | Nonerrr-r.)rrr-r,)rrr-r,)rrr-r,)rrr-r,)rrr-r,)rrr-r,)rzIterable[Type]r-r,) r0r1r2__doc__r*rrrrrrr __classcell__)rs@r)rrs` $+/*. ;" ;( ;( ;  ; "H-C, r+rc2eZdZ d ddZy) ClassInfoNcJ||_||_||_||_||_yr%)r?self_var docstringclsparent)r(r?rrrrs r)r*zClassInfo.__init__Gs'   " r+)NNN) r?r,rr,r str | Nonerz type | NonerClassInfo | Noner-r.r/rr+r)rrFsL !%#'       !   r+rcDeZdZ d ddZeddZy)FunctionContextNcX||_||_||_||_||_d|_yr%)rr?r is_abstract class_info _fullname)r(rr?rrrs r)r*zFunctionContext.__init__Ws0' "&$%)r+c|j|jrg}|j}|*|j|j|j}|*dj t |}|jd|d|j|_|jS|jd|j|_|jS)NrJ)rrrr?rrOreversedr)r(parentsr namespaces r)rzFunctionContext.fullnamefs >> !/3  ,NN:??3!+!2!2J!, HHXg%67 $($4$4#5Qyk499+!N~~%)$4$4#5Qtyyk!B~~r+)NFN) rr,r?r,rrrboolrrr-r.r-r,)r0r1r2r*propertyrrr+r)rrVs` !%!'+ * * * *  * % *  *  r+rc|jdr0|jdr|dd}|dvr|S|dvry|dvry|d vry |d vry y )z,Infer return types for known special methods__)floatrrsintcomplexr,)eqneltlegtgecontainsr)r length_hintindexhashsizeoftruncfloorceilr)formatreprr,)initsetitemdeldelitemr.N)rendswithr?s r)infer_method_ret_typervse tt!4Abz F FK E E ` ` ' ' : : r+cLd}|jdry|jdrh|rt|dk\r |ddk(r|dd}|dd}|dk(rA|gd }t|d k(r-gd }t||Dcgc]\}}t || }}}|t | g|zSycc}}w)z.Infer argument types for known special methodsNrr{rr(rrexit)rvaluer9r)ztype[BaseException] | NonezBaseException | Noneztypes.TracebackType | None)r?rr)rrrzipr)r?r arg_namesr arg_typesarg_namearg_types r)infer_method_arg_typesrs!%D tt!4 Y1,11G!!" IAbz 6> : 9~" /2)Y.G*(x8 H%&--  s3B )allow_interpreted_subclassescTeZdZdZ ddZe ddZeddZy) SignatureGeneratorzLAbstract base class for extracting a list of FunctionSigs for each function.c|rE|D]@}|js|jdj|k(s-d|jd_B|S)z-Remove type annotation from self/cls argumentrN)rr?r)r(inferredr signatures r)remove_self_typez#SignatureGenerator.remove_self_typesL % 6 >> ~~a(--915 q). 6r+cy)zReturn a list of signatures for the given function. If no signature can be found, return None. If all of the registered SignatureGenerators for the stub generator return None, then the default_sig will be used. Nr)r( default_sigctxs r)get_function_sigz#SignatureGenerator.get_function_sigs r+cy)z%Return the type of the given propertyNr)r( default_typers r)get_property_typez$SignatureGenerator.get_property_types r+N)r list[FunctionSig] | Nonerr,r-r)rrrrr-r)rrrrr-r)r0r1r2rr rrrrr+r)rrsbV 0 z,ImportTracker.import_lines..#s/T=O=O8O4--a0!4VWY[U\r+)keyz as zimport  rJzfrom z import r) rlistrrrrrrrrO)r(result module_mapr?mrlr&r!s` r) import_lineszImportTracker.import_liness /:$.?    \  6D 4??*%A}4---"0067tD6BDT^^+"V4v.D1 $$T*4---!//5FMMGF84vR"@AT^^+d?*?MMGD6dV2">?MMGD6"457 6<$J$4$4$67 PMFE MME&$))F5M2J1K2N O P r+r-r.F)r&r,r!zlist[tuple[str, str | None]]rrr-r.NF)r&r,r"rrrr-r.r?r,r-r.)r- list[str]) r0r1r2rr*r#rrr+r6rr+r)rrsJ:)6QV99">9IM9 9 /(& !.r+rcneZdZUhdZded<dZded<hdZded< d! d"d Zd#d Zd$d Z d%d&d Z d'd Z d(dZ d(dZ d(dZd)dZd*dZd+dZd+dZd,dZd-dZd.dZd+dZ d/dZ d0dZ d1 d2dZd3dZ d4 d5dZd-dZd6d7dZd8d Zy)9r>__all____str____uri____file__r0__path____repr____spec__ __about__ __email__ __slots__ __title__ __author__ __cached__ __loader__ __license__ __package__ __summary__ __builtins__ __getstate__ __setstate__ __copyright__r IGNORED_DUNDERS)typingtyping_extensionsTYPING_MODULE_NAMES>pyasn1_modules.rfc2437.univpyasn1_modules.rfc2459.charpyasn1_modules.rfc2459.univEXTRA_EXPORTEDNc ||_||_||_||_g|_g|_d|_g|_t|_ t|_ |j|_ d|_dggddgddgd|_y)NrW Incomplete)AnyTypeVar NamedTuple TypedDict Generator ParamSpec TypeVarTuple) _typeshedrSzcollections.abcrT)_all__include_private_include_docstrings export_less _import_lines_output_indent_toplevel_namesrrr defined_namesget_sig_generatorssig_generatorsr known_imports)r(rdinclude_privaterginclude_docstringss r)r*zBaseStubGenerator.__init__gs /#5 &(*"$  *,+o'*u"557 "'C +}"-~!>  r+cgSr%rrs r)rmz$BaseStubGenerator.get_sig_generatorss r+cZd|vr^|jjj|}|jjj||}|L||jvr>d}n;|j dd\}}|jjj||}||}|S|d|}|S)z:Return the full name resolving imports and import aliases.rJrr{)rrgetrrlsplit)r(r? real_module real_short name_module resolved_names r)rzBaseStubGenerator.resolve_names d?--88<>tTJJ"z9K9K'K( &*jja&8 #K--;;?? [YK&1&9 CNaPZ|?\ r+c|jdd\}}||jvrd|znd}||jvrd|z}||jvr|dk7s|r!|jj|||fg||xs|S)zAdd a name to be imported and return the name reference. The import will be internal to the stub (i.e don't reexport). rJr{_Nrr)r(rlrr#)r(rrr&r?r"s r)rzBaseStubGenerator.add_names  sA. "d&8&88d dt)))%KEt))) Z 5    / /$QX / Y}r+cX||jvr|jj|yy)zDAdd a line of text to the import section, unless it's already there.N)rhr)r(lines r)add_import_linez!BaseStubGenerator.add_import_lines) t)) )    % %d + *r+cd}|jr|dj|jz }|dj|jjz }|S)z*Return the import statements for the stub.rW)rhrOrr6)r(importss r) get_importszBaseStubGenerator.get_importssP    rwwt112 2G2774..;;=>>r+c g}|jx}r|j||jx}r|j||jr*|jdj |jdj |S)zReturn the text for the stub.rWr1)rrget_dunder_allrirO)r(piecesr dunder_alls r)outputzBaseStubGenerator.outputsv&&( (7 ( MM' ",,. .: . MM* % << MM"''$,,/ 0yy  r+c<|jrd|jdSy)z%Return the __all__ list for the stub.z __all__ = r1rW)rdrs r)rz BaseStubGenerator.get_dunder_alls! ::   ~R0 0r+c:|jj|y)zAdd text to generated stub.N)rir)r(strings r)r%zBaseStubGenerator.adds F#r+c |jdk(S)z*Are we processing the top level of a file?rWrjrs r) is_top_levelzBaseStubGenerator.is_top_levels||r!!r+c.|xjdz c_y)zAdd one level of indentation.z Nrrs r)indentzBaseStubGenerator.indents  r+c,|jdd|_y)z Remove one level of indentation.Nrrs r)dedentzBaseStubGenerator.dedents||CR( r+c\|jr|jj|yy)zbMark a name as defined. This only does anything if at the top level of a module. N)rrkrr)s r) record_namezBaseStubGenerator.record_names)      ' ' - r+cB|jxr||jvS)z'Has this name been recorded previously?)rrkr)s r)is_recorded_namez"BaseStubGenerator.is_recorded_names!  "Ctt/C/C'CCr+c||_|jxsdD]}|jj||jj D]$\}}|D]}|j |d|d&y)NrrJFr)rlrdrr+rorr)r(rlr?pkgrrs r)set_defined_namesz#BaseStubGenerator.set_defined_namess*JJ$" /D    ( ( . /!..446 ;LC ; QqclE : ; ;r+c|jxsgDcgc]}||jvs|}}|rT|jr|jd|jdt |D]}|jd|dyycc}w)Nr1z'# Names in __all__ with no definition: z# )rdrkrir%r)r(r?undefined_namess r)check_undefined_namesz'BaseStubGenerator.check_undefined_namess,0JJ,<"aDDL`L`@`4aa || HH? @/ *4vR) * bs BBcF|D]}|j||}|s|cS|gSr%)r)r(default_signaturernfunc_ctxsig_genr s r)get_signaturesz BaseStubGenerator.get_signaturess9 & G//0A8LH """r+cD|D]}|j||}|s|cS|Sr%)r)r(rrnrrr s r)rz#BaseStubGenerator.get_property_types5 & G00xHH r+c g}|g}|D]`}|D]!}|j|j|#|j|j|j|||jb|S)N)ris_asyncrrq)rrj format_sigrf)r(sigs is_coroutine decoratorsrlinesr decos r)format_func_defz!BaseStubGenerator.format_func_defs  J I" 6  ~dV45 6 LL$$<<)''+'?'? %   r+cH|jsyt|g}|jD]}|jtk(rd}n|jtk(rd}nd}|j rd|j j }n7|jr)ddjfd|jDd}nd}|jrd |jj }nd}|j||j||d dj|zd zS) NrWz**rz: z: (rc3@K|]}|jywr%)r).0vps r) z5BaseStubGenerator.format_type_args..;s1W!!((1+1Ws)z = rr) type_argsrkindrr upper_boundrvaluesrOdefaultrr?)r(otype_args_listtype_argprefixbound_or_valuesrrs @r)format_type_argsz"BaseStubGenerator.format_type_args,s{{ d #$&  XH}}/"55##$&x';';'B'B1'E&F"G$' 1Wx1W(W'XXY"Z"$ 0 0 7 7 :;<  ! !VHX]]OO;LWI"V W# X$TYY~..44r+c>t|||}|j|Sr%)rr)r(rrrprinters r)print_annotationz"BaseStubGenerator.print_annotationEs! $D-Gxx  r+c|j|ry|jr |jxr||jvSyr9)is_private_namerdrr)s r) is_not_in_allzBaseStubGenerator.is_not_in_allNs:    % ::$$&A4tzz+A Ar+c d|vry|jry||jvry|dk(ry|jdsy|jr||jvry|jdr|j dr||j vSy)Nz__mypy-TFr{r)rerYrrdrrR)r(r?rs r)rz!BaseStubGenerator.is_private_nameUs     t** * 3;s# ::$$**, ??4 T]]4%84/// /r+c||s+|jr|jdz|z|jvry|ry|jry|jsy|j||dz|z}|ry|j dd}|jj ddd}||d|zfvry|j r||j vSy)NrJTFrr{r{)rrYrgrrurd)r(r? full_module name_is_alias is_private top_levelself_top_levels r)should_reexportz!BaseStubGenerator.should_reexportfs  !!C'$.43F3FF    ))$ c0AD0HI %%c*1- ))//Q7: ^S>-AB B ::4::% %r+)NFFF) rdrrprrgrrqrr-r.)r-list[SignatureGenerator])r?r,r-r,)T)rr,rrr-r,)r}r,r-r.r)rr,r-r.)r-rr7r:)r?r,r-r)rlzset[str]r-r.)rrrnrrrr-list[FunctionSig])rrrnrrrr-r)FNN) rrrrrrrrr-r;)rz"TypeAliasStmt | FuncDef | ClassDefr-r,r)rrrrrrr-r,r%)r?r,rrr-r)r?r,rr,rrr-r)r0r1r2rR__annotations__rUrYr*rmrrr~rrrr%rrrrrrrrrrrrrrrrr+r)rrDsOU0"A@NE#' %!#(      !    B  ,  !$").D ;* #& #1 #" #  #   1 "    #'+ $ %     458+/*. ! !(!( ! !"r+rr8)rCrrDr;rErr-z Iterator[str])r&r,rQr;r-r)rCrr&r,rErr-z*tuple[str | None, list[str] | None] | None)TF) rZr,r_r,r`rrErr-zIterator[None])rWrW)rZr,r'rr9r,r-r.)rZr,rgr r-r.)rlrsr-rs)rlr,r-r,)rl str | bytesr-r)rr;r-r,)r?r,r-r)r(N)r?r,rr,rrr-zlist[ArgSig] | None)Er __future__ros.pathrMrur;r9abcr collectionsrcollections.abcrrr contextlibr rSr r mypy_extensionsr mypy.optionsrmypy.modulefinderr mypy.moduleinspectrr mypy.nodesrrrrr mypy.stubdocrr mypy.typesrrrrrrrrr6r!rr^r#rArUr\rar>rirmrrrrrrrrrrr+r)rsJ" #77%"&2:]],    "$"" ,",/--+#7-!&U(BG( (&/(:>((B  $'26/8GL' ''*.'@D''',9 C ? ? ; ;< ``F   @&FJ 2B8 .  / >}}@ .zz/zr+