ML i^dZddlmZddlZddlZddlZddlZddlZddlZ ddl m Z ddl m Z mZddlmZmZddlmZddlmZdd lmZmZmZmZmZmZmZmZmZm Z dd l!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'dd l(m)Z)Gd d e%Z*Gdde%Z+ddZ, ddddd ddZ-GddZ.ej^ddZ0Gdde"Z1d dZ2d!dZ3 d" d#dZ4y)$zTStub generator for C modules. The public interface is via the mypy.stubgen module. ) annotationsN)Mapping) FunctionType ModuleType)AnyCallable)parse_type_comment) is_c_module) ArgSig FunctionSigSigfind_unique_signatures!infer_arg_sig_from_anon_docstringinfer_prop_type_from_docstring&infer_ret_type_sig_from_anon_docstring!infer_ret_type_sig_from_docstringinfer_sig_from_docstringparse_all_signatures)BaseStubGenerator ClassInfoFunctionContextSignatureGeneratorinfer_method_arg_typesinfer_method_ret_type)quote_docstringcPeZdZ d ddZeddZ d dZd dZy) ExternalSignatureGeneratorNc0|xsi|_|xsi|_y)z Takes a mapping of function/method names to signatures and class name to class signatures (usually corresponds to __init__). N) func_sigs class_sigs)selfrr s S/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mypy/stubgenc.py__init__z#ExternalSignatureGenerator.__init__-s#b$*c8g}g}tj|dD]<}t|5}t|j\}}ddd|z }|z }>t t |}t t |} t || S#1swYIxYw)z+Instantiate from a directory of .rst files.z/*.rstN)globopenr readlinesdictrr) clsdoc_dirall_sigsall_class_sigspathfloc_sigsloc_class_sigssigsr s r" from_doc_dirz'ExternalSignatureGenerator.from_doc_dir7s!$&II 01 -Dd Oq+? +N(. O  H n ,N  - *8450@A )$ ;;  O Os BB cb|jr|jdvr|j|jvrx|jj|jvrVt |jt |j|jjt |jgS|j|jvryt |jt |j|jdg}|jr&|j||jjS|S)N__new__r#nameargsret_type) class_infor8rr r rrremove_self_typeself_var)r! default_sigctxinferreds r"get_function_sigz+ExternalSignatureGenerator.get_function_sigEs NN33.##t6:4??3>>K^K^;_`2388<  884>> ) XX6t~~chh7OP   >>((3>>3J3JK KOr$cyN)r! default_typer?s r"get_property_typez,ExternalSignatureGenerator.get_property_typegsr$)NN)rdict[str, str] | Noner rGreturnNone)r+strrHrr>r r?rrHzlist[FunctionSig] | NonerE str | Noner?rrHrM)__name__ __module__ __qualname__r# classmethodr3rArFrDr$r"rr,sY[_+.+CX+ + < < & -<  ! Dr$rc(eZdZ ddZddZy)DocstringSignatureGeneratorct|j|j}|r1|jJt|j|jr|d=|jr|sd|jdk(rUt|jj|jj}|r|Dcgc]}|j d}}|j ||jjS|Scc}w)Nr#r8)r docstringr8)is_pybind11_overloaded_function_docstringr;_replacer<r=)r!r>r?r@sigs r"rAz,DocstringSignatureGenerator.get_function_sigls,CMM388D ==, ,,8QRL >>J 63CNN4L4LcnnNaNabIQR# * =RHR((3>>3J3JK KO Ss+C.c|jTt|j}|r|St|j|j}|r|St |j}|Sy)z:Infer property type from docstring or docstring signature.N)rWrrr8r)r!rEr?r@s r"rFz-DocstringSignatureGenerator.get_property_typesT == $=cmmLH8QH5cmmDHOr$NrKrL)rNrOrPrArFrDr$r"rSrSks$&-< !( r$rSc*|j|dS)Nz((*args, **kwargs) Overloaded function.  startswith)rWr8s r"rXrXs   4&(S T UUr$Finclude_private export_lessinclude_docstringscxtjj|}|r4tjj|stj|t ||||||}|j |j} t|dd5} | j| dddy#1swYyxYw)aGenerate stub for C module. Signature generators are called in order until a list of signatures is returned. The order is: - signatures inferred from .rst documentation (if given) - simple runtime introspection (looking for docstrings and attributes with simple builtin types) - fallback based special method names or "(*args, **kwargs)" If directory for target doesn't exist it will be created. Existing stub will be overwritten. r_wzutf-8)encodingN) osr.dirnameisdirmakedirsInspectionStubGeneratorgenerate_moduleoutputr'write) module_nametarget known_modulesr+r`rarbsubdirgenrlfiles r"generate_stub_for_c_modulerts,WW__V $F bggmmF+ F !'-  C ZZ\F fcG , 6s B00B9cJeZdZdZdddZedd dZedd dZd dZy) CFunctionStubzR Class that mimics a C function in order to provide parseable docstrings. c.||_||_||_yrC)rN__doc____abstractmethod__)r!r8doc is_abstracts r"r#zCFunctionStub.__init__s  "-r$cRt|j|jdd|SN)rvr8 format_sig)r*rZr{s r" _from_sigzCFunctionStub._from_sigs#SXXs~~'7'z+CFunctionStub._from_sigs..s#JcCNN$4Sb$9#Js)rvr8join)r*r2r{s r" _from_sigszCFunctionStub._from_sigss- GLL$))#JT#JJK  r$cy)z This exists to make this object look like a method descriptor and thus return true for CStubGenerator.ismethod() NrD)r!s r"__get__zCFunctionStub.__get__s r$N)F)r8rJrzrJr{boolrHrI)rZr r{rrHrv)r2list[FunctionSig]r{rrHrvrHrI) rNrOrPrxr#rQrrrrDr$r"rvrvs;. KK   r$rv_MissingVALUEceZdZdZ d d fd Zd!dZd"dZd#dZd$dZd%dZ d&d Z d'd Z d(d Z d)d Z d%d Zd*dZd*dZd+dZed%dZed*dZed,dZd%dZd-dZdd d.dZd/dZ d0dZ d1 d2dZd3dZd4dZ d1 d5dZd6dZxZ S)7rjzStub generator that does not parse code. Generation is performed by inspecting the module's contents, and thus works for highly dynamic modules, pyc files, and C modules (via the CStubGenerator subclass). Nc J||_|tj||_n||_t |j|_||_|j|_t |!||||||_ |jr |jjdgdiyy)Ntyping) rrClassVarDictIterableIteratorListLiteral NamedTupleOptionalTupleUnion) r+ importlib import_modulemoduler rpresort_memberssuperr#rn known_importsupdate) r!rnrpr+_all_r`rarbr __class__s r"r#z InspectionStubGenerator.__init__s >#11+>DK DK&t{{3*".. >PQ&       % %   r$c d}js tj|}||jSt |j t|j |jjt|j St |j tdtdgdS|j|j|j}|j}|j |j }|j"d fd g d fd }dfd }|||r%j%td ||n|rj%td dfd } ||| |r$j%td |||jft'd DrTt)|j |jjD cgc]} | j s| j c} } | | dxst|j } t |j | S#t$rY7wxYwcc} w)Nr7*argsrV**kwargsrHcd|vry|}|yt|tsj|S|S)NrI) isinstancerJget_type_fullname)keyargtyperr!s r"get_annotationzHInspectionStubGenerator.get_default_function_sig..get_annotation0s@+%!#&Ggs+--g66Nr$c Pt|D]\}}|||}|tjurT|vr|}n, j|}|dk(r j d}|d}j t ||duj t | |dy)NrI_typeshed.Incompletez | NoneT)defaultF) enumeraterrget_type_annotationadd_nameappendr ) r9get_default_valueiarg default_valuer incompleterarglistrr!s r"add_argszBInspectionStubGenerator.get_default_function_sig..add_args=s$D/ T3 1!S 9  6k)"-c"2"&":":="I"f,*.7M)NJ)3 G&.get_pos_defaultRsAATS]!::SYX%> ?@@~~%r$*c:r |vr|StjSrC)rr)_irkwonlydefaultss r"get_kw_defaultzHInspectionStubGenerator.get_default_function_sig..get_kw_defaultas"#"7%c**~~%r$z**c3XK|]"}|jduxr|jdu$yw)NF)typer)rrs r"rzCInspectionStubGenerator.get_default_function_sig..ns/. :=CHH  5!5 5. s(*)rrJrHrM)r9 list[str]rz'Callable[[int, str], object | _Missing]rHrI)rintrrJrHAny | _Missing)rrrrJrHr)r inspectgetfullargspec TypeErrorr;r r8infer_c_method_argsr=rr r9rvarargsvarkwr kwonlyargsrrallr)r!funcr?argspecrkwargsrrrrrnew_argsr:rrr9rrrs` @@@@@@r"get_default_function_sigz0InspectionStubGenerator.get_default_function_sigs> !006 ?~~)",SXXs~~7N7NO2388<# g.J0GH!||##//)) ''  // !# T T0W T  T T* & '  NN6AgY-1HI J  NN6#; ' & ^,  NN6Bvh-1GH I >> %#. AH. + .#..113\SVS[S[CHH3\H#"!(+N/DSXX/N388Wh77I  |4]sI6I' I'  I$#I$c|jsgStg}|jr/|jdtj |j|SNr)r rSr+insertrr3)r!sig_generatorss r"get_sig_generatorsz*InspectionStubGenerator.get_sig_generatorszsKI8S8U7VN||%%a)C)P)PQUQ]Q])^_! !r$cd|jg}t|dddd}|J||j||j|S)aStrips unnecessary module names from typ. If typ represents a type that is inside module or is a type coming from builtins, remove module declaration from it. Return stripped name of the type. Arguments: typ: name of the type builtinsrN)rnr print_annotationrp)r! type_name local_modules parsed_types r"strip_or_importz'InspectionStubGenerator.strip_or_importsU$T%5%56 (Aq$?B &1 1&$$[$2D2DmTTr$ct|ddS)z!Return module name of the object.rONgetattrr!objs r"get_obj_modulez&InspectionStubGenerator.get_obj_modulessL$//r$cN|j|}|duxs||jk(S)z|j%|} | sS|jj| |dfg|j'|| ds|jj||j)|Dchc]\}}t j |r|c}}|jrg} g} g} ng} | x} x} } |D]i\}}|j+|r|j-||| ,t j.|r|j1||| V|j3||| kg|_|jr| D] }|j4j#|dz"| D]g}|jd r6|j4r*|j4d r|j4j#d|j4j#|dzi|j4r| r|j4j#d| D] }|j4j#|dz"nt7 D]\}}|j4rW|jd rF|j4d jd rct| |dzkDr| |dzjd s;|j4rJ|j4d jd r,|jd s|j4j#d|j4j#|dz|j9ycc}}w) Nc |dSrrDxs r"z9InspectionStubGenerator.generate_module..s !r$r.rF) name_is_alias)rlrclassrU def) get_membersrrsortedrismodulerNrpr^rnrsplitrimport_trackeradd_import_fromreexport add_importrrrshould_reexportset_defined_names is_functiongenerate_function_stubisclassgenerate_class_stubgenerate_variable_stub_outputrcheck_undefined_names)r! all_itemsitemsr8rrnpkg_namemod_name rel_moduleobj_module_name functionstypes variablesrlliners r"rkz'InspectionStubGenerator.generate_modules$$T[[1   yn=I" ;ID#$9K9K)K!ll ))$*:*:S*@A)4););C)C&Hh!)#d.>.>*?*A!B!IcJ''77 hPTEUDVW''006''22;E''006**3/8H8H8M dC[)#'"5"5c":"''774QU,X++D/QV+W++44T:- ;0 i]swGWGWX[G\]^   #%I!E#%I "F,2 2I 2  IID#$++D#i+H%((s5(A++D#i+H  I   ! 1 ##D4K0 1 1??7+ bAQLL''- ##D4K0 1||  ##D)! 1 ##D4K0 1%V, 14LL0 LL,77@K!a%/F1q5M4L4LV4TLL R(33E: OOE2LL''- ##D4K0 1 ""$_ ^s 0R R cr|dvxs2||jvxs"t|xstj|S)N) r__getattribute____str____repr__rx__dict__rO __weakref____annotations____firstlineno____static_attributes__ __annotate__)IGNORED_DUNDERSis_pybind_skipped_attributekeyword iskeyword)r!attrs r"is_skipped_attributez,InspectionStubGenerator.is_skipped_attributesM    't+++ ' +40! '"  &% r$ct|d}g}|D]4}|j|r t||}|j||f6|S#t$rYDwxYw)Nr)rr"rAttributeError)r!robj_dictresultsr8values r"rz#InspectionStubGenerator.get_memberssq&-c:&> .D((. .T*e}- . "  s A  AAc2| |tdurytj|rd|j|dSt |t r|j dSt |tr|j ddS|jt|S) z Given an instance, return a string representation of its type that is valid to use as a type annotation. NrIztype[]ztyping.Callableztypes.ModuleTypeF)require)rrrrrrrrrs r"rz+InspectionStubGenerator.get_type_annotations ;#d+ __S !411#67q9 9 \ *==!23 3 Z (==!3U=C C))$s)4 4r$cn|jrtj|Stj|SrC)r r isbuiltin isfunctionrs r"rz#InspectionStubGenerator.is_functions-   $$S) )%%c* *r$c|jrltj|xsUt|ttj ttj ttjfvStj|SrC) r rismethoddescriptorrrJindex__add__r6r-r!r;r8rs r" is_methodz!InspectionStubGenerator.is_method$sj   --c2d3iSYYS[[!S[[!D7 %%c* *r$c|jr.tj|xst|jdvStj |S)N)rQclassmethod_descriptor)r rr,rrNismethodr2s r"is_classmethodz&InspectionStubGenerator.is_classmethod/sM   $$S)T#Y-?-?D.  ##C( (r$c|y|jr8t|jd}|j||}t |t St t j|j|t S)NFr)r rr*getr staticmethodrgetattr_static)r!r;r8r raw_lookup raw_values r"is_staticmethodz'InspectionStubGenerator.is_staticmethod8s_     ,3JNNJ,OJ"tS1Ii6 6g44Z^^TJLY Yr$ct|ddS)NryFr)rs r"is_abstract_methodz*InspectionStubGenerator.is_abstract_methodBss0%88r$cHtj|xs t|dS)Nfget)risdatadescriptorhasattr)r;r8rs r" is_propertyz#InspectionStubGenerator.is_propertyFs'',DV0DDr$c:t|dxr|jduS)Nfset)rDrG)props r"is_property_readonlyz,InspectionStubGenerator.is_property_readonlyJstV$:d)::r$cJ|jrt|jdvSy)z=For c-modules, whether the property behaves like an attribute)pybind11_static_propertyStaticPropertyF)r rrNrs r"is_static_propertyz*InspectionStubGenerator.is_static_propertyNs$   9%%)WW Wr$ct|D]~\}}|jD]/}|j|j|j|_1|jQ|j |j|j||<y)N)r:)rr9rrr:rY)r!r@rrZrs r"process_inferred_sigsz-InspectionStubGenerator.process_inferred_sigsVs~) XFAsxx >88'#33CHH=CH >||'!llD4H4H4VlW  Xr$)r;ct|dd}t|tsd}t|j|||j ||}|j ||js|j|ry|j|j|j||}|j||j|}|j|g} t|dkDr/| j!dj#|j%d|j&r/| j!dj#|j%d||j)|||r| j!dn|D]Z} | j*r| j*d jd vs+| j*j-d t/|j0 \|d j*r0|d j*d jd k(r| j!d |j2r|j5|j2nd}|j7|j9|| ||j;|||y)a(Generate stub for a single function or method. The result (always a single line) will be appended to 'output'. If necessary, any required names will be added to 'imports'. The 'class_name' is used to find signature of __init__ or __new__ in 'class_sigs'. rxNrWr{r;rz@{}ztyping.overloadzabc.abstractmethodz @staticmethodr)r!r*rVr*z @classmethod) decoratorsrW)rrrJrrnr@is_private_namefullname is_not_in_all record_namer8rget_signaturesrrOrrformatrr{r>r9rr r=rW_indent_docstringextendformat_func_def _fix_iter) r!r8rrlr;rWr?r>r@rRrZs r"rz.InspectionStubGenerator.generate_function_stub^s !i6 )S)I    //4!     cll 3t7I7I$7O  "33C= &&{D4G4GM ""8, x=1    ell4==9J+KL M ??   ell4==9M+NO P  !##Jc:!!/2#MC88sxx{'7'7'N6z7J7J+KLMA;## (8(8(;(@(@E(I%%n5=@]]D**3==9PT  d**8 V_*`a sHf-r$c|jd}|jdzt|dkDrFtfd|Ds2t |ddD]!\}}|j s|z||dz<#|dj dr+t|dkDr|jn |ddd|d<d j|S) zQFix indentation of docstring extracted from pybind11 or other binding generators.Tkeependsrrc3fK|](}|jxs|j *ywrC)r^strip)rrindents r"rz.s+Uttv.Bdjjl2BBUs.1NrUr) splitlines_indentrrrraendswithrr)r!rWlinesrrrbs @r"rYz)InspectionStubGenerator._indent_docstrings$$d$3& u:>UuUU(qr35GAtzz|'-}a!e 5 9  d #5zA~ V$!"IcrNb wwu~r$c|jr|jj|jdk(rd|jjjvrsd}|D]9}|js|jdj dk(s-|j }n|ytdd|d}|jd|||jyyyyy) zqEnsure that objects which implement old-style iteration via __getitem__ are considered iterable. N __getitem____iter__rUrz&def __iter__(self) -> typing.Iterator[z] rlr;) r;r*r8rr9rr:rvr)r!r?r@rl item_typerZrs r"r\z!InspectionStubGenerator._fix_iters NN"".M)#.."4"4"="==$(I 88 1 1U : # I  DYKsSC  ' ' CSVSaSa ' b>*/ r$c t|dd}t|dd} | rt| dd} | r |r |d| zz }n| r| }t|j||d|} |j|| js|j |ry|j | j|j|} |j|} | r!|j|j|}n|j|| }|j}|j||j| }||j|}| rS|j!d}| rdnd }||j!d }|j#|j$|d |d |d |y| r| j&r|j)| j&nd}|j#|j$dt+|t-dg||}|j#|j/|j$|j0y||j!d }|j#|j$|d |y)aGenerate property stub using introspection of 'obj'. Try to infer type from docstring, append resulting lines to 'output'. raw_obj : object before evaluation of descriptor (if any) obj : object after evaluation of descriptor rxNrBrFrQtyping.ClassVarz # read-onlyrcr: [] = ...z @propertyr!)rW)rbrb)rrrnrSrTrUrVr8rMrIrrrr:rFrrrrerWrYr r r_include_docstrings)r!r8raw_objrstatic_properties rw_properties ro_propertiesr;rWrB alt_docstrr?staticreadonlyr:r> inferred_typeclassvartrailing_commentrZs r"generate_property_stubz.InspectionStubGenerator.generate_property_stubsI$GY5 w-  y$7JiTJ.. &    diUWa    cll 3t7I7I$7O  "((1,,W5 #'#7#78P8PQT8U#VH77EK"++H..x9L9LcR  $ 00?M }}%67H2: $ $ .D E  $ $<<.b !M?'JZI[\ EH]]D223==AX\ $$ ~Y%?@!$(8-S\]$$NN#||@X@X# !($(MM2H$IM$$ ~dV2m_%MNr$c|turyt|d|j}|j|}|y|dk7r|d|}|S)z,Given a type, return a string representationrrPrrr)rrrNr)r!typtypenamerns r"rz)InspectionStubGenerator.get_type_fullnamesV #:3 =))#.  * * $%az2Hr$cFtj|}|dtur|d=|r|djdk(r|d=|dd}g}|D](t fd|Dr|j *|Dcgc]"}|j |j|$c}Scc}w)NrUpybind11_objectrc36K|]}t|ywrC) issubclass)rbbases r"rz9InspectionStubGenerator.get_base_types.. s:qz!T*:s)rmroobjectrNanyrrr)r!r all_basesbasesrs `r"get_base_typesz&InspectionStubGenerator.get_base_typessHHSM R=F ""  2//3DD" abM  #D:E:: T" #PUUt$$T%;%;D%ABUUUs4'Bc t|d}|j|}|jrt|d}|Dchc]}|d }}g} g} g} g} g} g}|j ||j t |dt|dd||}|D]\}}|j||}|j|||s|j|||r_|d k(rd |vrId }|j|||rd|_ n"|j|||rd |_ nd |_ |j||| | |j|||r|j|||| | | |tj |r(|j#|r|j%||| ||j'||f|D]d\}}|dk(r||j)|j+|}|j-d}| j'|j.|d|d|df|j1|j3|}|rddj5|z}nd}|j6rT|j8rHt;|j=|j6}d|j.|}|j?d}ng}|s | s| s| s| s| r|j'|j.d||d|jA|| D]l}|rW|drR|djCjEds0|jCjEdr|j'd|j'|n|jA| |jA| |jA| |jA| y|j'|j.d||dycc}w)zGenerate stub for a single class using runtime introspection. The result lines will be appended to 'output'. If necessary, any required names will be added to 'imports'. rct|dSr)method_name_sort_keyrs r"rz=InspectionStubGenerator.generate_class_stub../s0DQqT0Jr$rrrcrxN)parentr6r#r*r!rk) parent_class__hash__rnrorprqz(%s)z, rFr^zclass :rUrz: ...)#rrrrrVrbrr9r3r7r>r=rrEr}rrrrrrrrrededentrrrWrrrrYrdrZrar^)r! class_namer*rlrr<r rnamesmethodsrrtrurvattrsr;r!r'r=prop_type_namer{r bases_strrzrWrs r"rz+InspectionStubGenerator.generate_class_stub$s)0Z(@   %   5&JKE$%!1%%')#% #% ') $  GCD93| !# ,KD%"tU3I~~j$6$:M:MD%;9$!U*!%D'' D%@*,J'((T5A*/J'*0J'++D%T^+_!!*dI>++%!!'D,E,Ee,L((ue*(U dE]+G# ,J! bKD%z!em!11$2J2J52QRN}}%67H  $ $ ~dV2hZqHXX_%` a  b ##C( 5!11II   D$<$<!$"8"89M9M"NOCse,C6II !2mwR_ MMT\\N& YKqI J MM) $ $r "2J,,.99'B //8MM"% d# $ MM+ , MM- ( MM' " MM- ( MMT\\N& YKuM Ny&s Oc|j||jd|s|j|ry|j||j |j |}|j |d|y)zGenerate stub for a single variable using runtime introspection. The result lines will be appended to 'output'. If necessary, any required names will be added to 'imports'. rNro)rSrnrUrVrrr)r!r8rrltype_strs r"rz.InspectionStubGenerator.generate_variable_stubsw   )9)9(:!D6&B CtGYGYZ^G_  ''(@(@(EF b +,r$)rcNFFFN)rnrJrprr+rJrlist[str] | Noner`rrarrbrrzModuleType | NonerHrI)rrr?rrHr )rHzlist[SignatureGenerator])rrJrHrJ)rrrHrM)rrrHrrr!rJrHr)rrrHzlist[tuple[str, Any]])rrrHrJ)r;rr8rJrrrHr)r;ClassInfo | Noner8rJrrrHr)rHrrHr)r@rrHrI) r8rJrrrlrr;rrHrI)rWrJrHrJ)r?rr@rrlrrHrIrC)r8rJrsrrrrtrrurrvrr;rrHrI)rrrHrJ)rrrHr) rrJr*rrlrrrrHrI)r8rJrrrlrrHrI)!rNrOrPrxr#rrrrrrkr"rrrr3r7r>r:r@rErIrMrOrrYr\r}rrrr __classcell__)rs@r"rjrjs+"& %!#($())!) )  )  ))!)") )Vj8X" U0< L%\ , 5 + +)Z99EE;;X\`1.1.$1.1:1.HX1. 1.f$c"c.?cIRc c@(,FOFOFO FO % FO ! FO!FO%FO FOP V&_chOhO$(hO2;hOK[hO hOT -r$rjcf|dvrd|fS|jdr|jdrd|fSd|fS)ziSort methods in classes in a typical order. I.e.: constructor, normal methods, special methods. r5r__r)r^rfrVs r"rrs?  &&$w tt!4$w d7Nr$c$|jdS)N__pybind11_module_local_r])r!s r"rrs ??5 66r$c&d}|jdrB|jdr0|dd}|dvrg}n#|dk(rtdg}n|dk(rtdtd g}n|d vrtd g}n|d k(rtd td g}n|dk(rg}n|dk(rtdg}n|dvrtdd g}n|dvrtdg}n|dvrg}nz|dk(rtdtdg}n\|dk(rtdtd g}n>|dk(rtdg}n+|dk(r&tddtd dtd d!g}|t|||}nt|g|z}|td"td#g}|S)$Nrr)hashiternextsizeofcopydeepcopyreduce getinitargsrfloattrunccomplexrabsbytesdirrreversedroundr0entergetitemr0rVsetitemr)delattrrr8setattrr'getstatesetstatestate)eqneltlegtgeother)r8r)(addraddsubrsubmulrmulmodrmodfloordiv rfloordivtruedivrtruedivdivmodrdivmodpowrpowxorrxororrorandrandlshiftrlshiftrshiftrrshiftcontainsdelitemiaddiand ifloordivilshiftimodimulioripowirshiftisubitruedivixor)negposinvertr9instanceownerset reduce_exprotocolexitrztype[BaseException] | NonezBaseException | None tracebackztypes.TracebackType | Nonerr)r^rfr r)r8r= arg_namesr9s r"rrs!%D tt!4Abz   .D Y ()D Y (&h*?@D + +'(D Y 'W)=>D Z D Z ()D 9 9h78D ) ) T()D - -D U] +V-ABD U] +V-ABD [  +,D V^F)EFG*@AK.JKD  |%dHi@H%&- |G$f*&=> Kr$)rWrJr8rJrHr)rc)rnrJrorJrprr+rJr`rrarrbrrHrI)r8rJrHztuple[int, str]r)r!N)r8rJr=rJrrrHz list[ArgSig])5rx __future__renumr&rrros.pathrfcollections.abcrrrrrrrmypy.fastparser mypy.moduleinspectr mypy.stubdocr r r rrrrrrr mypy.stubutilrrrrrr mypy.utilrrrSrXrtrvEnumrrjrrrrDr$r"rs@ # #* -*   &<!3<~!"4!HV & "$&& && &  &&& &R  8 499Z )} -/} -@ 7 FJk kk2Bkkr$