
    hi                   0   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
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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 ddl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(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l0Z)ddl1Z)ddl)m2Z2 ddl3m4Z4 ddl5m6Z6m7Z7 ddl8m9Z9 ddl:m;Z;m<Z<m=Z=m>Z>  G d d          Z? e?            Z@deAd<    e$d          ZBe%eBe?f         ZCdeAd<    G d d          ZD eD            ZEdeAd<    e;ejF        ejG        d          ZHdeAd<   dd!ZIdd$ZJ G d% d&eK          ZL G d' d(          ZMdd+ZNdd-ZOedd4            ZPdd8ZQejR        dd:            ZSePT                    e2jU                  dd<            ZVdd?ZW ejX        d@          ZYddEZZddGZ[ddHZ\ddJZ]ePT                    e2j^                  ddKddN            Z_ddOZ`ddSZaddYZbddZZcdd^Zd G d_ d`e#eB                   Ze	 ddddZfddfZgePT                    e2jh                  ddh            ZiePT                    e?          ddi            ZjePT                    e2jk                  ddk            ZlePT                    e2jm                  ddm            ZnePT                    e2jo                  ddo            ZpePT                    e2jq                  ddq            ZrddrZsddtZtddvZuddwZvdd{ZwePT                    e2jx                  dd|            ZyePT                    e2jz                  dd~            Z{ e|h d          Z}deAd<    e|h d          Z~deAd<   ddZddZddZddZddZddZddZ	 dddZi adeAd<   dddZddZ	 dddZddZddZ G d d          Z e|h d          ZdeAd<   dddZddZddZddZedk    r ej         e                       dS dS )ziTests for stubs.

Verify that various things in stubs are consistent with how things behave at runtime.

    )annotationsN)defaultdict)IteratorSet)redirect_stderrredirect_stdout)singledispatch)Path)AnyFinalGenericTypeVarUnion)
get_originis_typeddict)nodes)parse_config_file)UNKNOWNevaluate_expression)Options)FancyFormatterbytes_to_human_readable_repr	is_dunderplural_sc                      e Zd ZdZddZdS )MissingzGMarker object for things that are missing (from a stub or the runtime).returnstrc                    dS )NMISSING selfs    ]/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/mypy/stubtest.py__repr__zMissing.__repr__7   s    y    Nr   r   __name__
__module____qualname____doc__r%   r!   r&   r$   r   r   4   s.        QQ     r&   r   r   r    Tztyping_extensions.TypeAliasMaybeMissingc                      e Zd ZdZddZdS )Unrepresentablez5Marker object for unrepresentable parameter defaults.r   r   c                    dS )N<unrepresentable>r!   r"   s    r$   r%   zUnrepresentable.__repr__D   s    ""r&   Nr'   r(   r!   r&   r$   r0   r0   A   s.        ??# # # # # #r&   r0   UNREPRESENTABLEF
_formattermessager   kwargsr   r   c                R    |                     dd           t          j        | fi |S )z.Wrapper around mypy.util for fancy formatting.colornone)
setdefaultr4   style)r5   r6   s     r$   _styler<   N   s1    
gv&&&G..v...r&   lengthintc                L    t          |           |k    r| d |dz
           dz   S | S )N   ...)len)r5   r=   s     r$   	_truncaterC   T   s0    
7||f|!|$u,,Nr&   c                      e Zd ZdS )StubtestFailureNr)   r*   r+   r!   r&   r$   rE   rE   Z   s        Dr&   rE   c                  @    e Zd ZdddddZddZddZddZdddZdS )ErrorN	stub_descruntime_descobject_path	list[str]r5   r   stub_objectMaybeMissing[nodes.Node]runtime_objectMaybeMissing[Any]rJ   
str | NonerK   r   Nonec                  || _         d                    |          | _        || _        || _        || _        |pt          t          |d|                    | _        |qt          |          }|$t          t          |          d          | _        dS t          j        |          }t          ||          }	t          |	d          | _        dS || _        dS )a  Represents an error found by stubtest.

        :param object_path: Location of the object with the error,
            e.g. ``["module", "Class", "method"]``
        :param message: Error message
        :param stub_object: The mypy node representing the stub
        :param runtime_object: Actual object obtained from the runtime
        :param stub_desc: Specialised description for the stub object, should you wish
        :param runtime_desc: Specialised description for the runtime object, should you wish

        .typeNd   is_async)rL   joinobject_descr5   rN   rP   r   getattrrJ   safe_inspect_signaturerC   reprrK   inspectiscoroutinefunctiondescribe_runtime_callable)
r#   rL   r5   rN   rP   rJ   rK   runtime_sigruntime_is_asyncdescriptions
             r$   __init__zError.__init___   s    * '88K00&,"Tc'+v{*S*S&T&T0@@K"$-d>.B.BC$H$H!!!#*#>~#N#N 7N^___$-k3$?$?!!! ,Dr&   boolc                6    t          | j        t                    S )z@Whether or not the error is for something missing from the stub.)
isinstancerN   r   r"   s    r$   is_missing_stubzError.is_missing_stub   s    $*G444r&   c                    d| j         v S )zOWhether or not the error is for something being (or not being) positional-only.zshould be positionalr5   r"   s    r$   is_positional_only_relatedz Error.is_positional_only_related   s     &55r&   c                    d| j         v S )z6Whether or not the error is related to @disjoint_base.z@disjoint_baserk   r"   s    r$   is_disjoint_base_relatedzError.is_disjoint_base_related   s      4<//r&   Fconcisec                   |r!t          | j        d          dz   | j        z   S d}d}t          | j        t
                    s| j        j        }t          | j        d                   }|	|j	        pd}d}|r|dt          |           z  }|r||rdnd	 | z  }d}d}t          | j        t
                    si	 t          j        | j                  d
         }n# t          t          t           f$ r Y nw xY w	 t          j        | j                  }n# t          $ r Y nw xY wd}|r|dt          |           z  }|r||rdnd	 | z  }t          ddd          t          | j        d          d| j        ddt          |d          dt          | j        dz   dd          dt          |d          dt          | j        dz   dd          g}	d                    |	          S )zxReturns a description of the error.

        :param concise: Whether to return a concise, one-line description

        T)bold Nr    z	 in file :z	 at line    zerror: redr8   rq   
zStub:)dimblue)r8   ry   zRuntime:)r<   r[   r5   rh   rN   r   lineget_stubrL   pathr
   rP   r_   getsourcelinesOSError	TypeErrorSyntaxErrorgetsourcefilerJ   rK   rZ   )
r#   ro   	stub_line	stub_file	stub_nodestub_loc_strruntime_lineruntime_fileruntime_loc_stroutputs
             r$   get_descriptionzError.get_description   sh     	L$*666<t|KK		$*G44 	.(-IT-a011	 !.$I 	:9Y999L 	Ni@ss[M)MMML$-w77 	&5d6IJJ1MY4   &4T5HII     	@?4+=+=???O 	W"F##;VVVVO 9E5554#$///L<T***4>D(DAAA?---4$t+6tDDD
 wwvs$   :C C43C48D 
DD)rL   rM   r5   r   rN   rO   rP   rQ   rJ   rR   rK   rR   r   rS   )r   rf   F)ro   rf   r   r   )r)   r*   r+   re   ri   rl   rn   r   r!   r&   r$   rH   rH   ^   s         !%#'%- %- %- %- %- %-N5 5 5 56 6 6 6
0 0 0 0
8 8 8 8 8 8 8r&   rH   module_nametypes.ModuleTypec           	        t          t          j        d          5 }t          j                    5  t          |          5  t          |          5  t          j        d           t          j	        |           }t          | dg           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |S )Nwignore*)fromlist)openosdevnullwarningscatch_warningsr   r   simplefilter	importlibimport_module
__import__)r   r   runtimes      r$   silent_import_moduler      s   	bj#		 4'$&& 	4 	4(@(@ 	4 	4/RYBZBZ 	4 	4!(+++-k::G {cU3333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	44 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Ns{   CCB-;B	
B-BB-BB-!C-B11C4B15C8CC	CC	CC"CIterator[Error]c              #    K   t          |           }|ut          |                     d          d                   sK| t          j        v rt          t          j        |                    nd}t          | gdt          d|          V  dS 	 t          |           }np# t          $ r  t          $ rY}d}t          |t                    rd}t          | gd	| d
t          |          j         d| |t                    V  Y d}~dS d}~ww xY wt          j                    5  t          j        d           	 t%          ||| g          E d{V  n# t&          $ r}t)          t+          j        |j                            d         d         }|j                            dd          }|dk    s|                    d          d         dk    r t          | gdt          |          j         d| ||ddt+          j                                                    z             V  Y d}~nd}~ww xY wddd           dS # 1 swxY w Y   dS )zTests a given module's stub against introspecting it at runtime.

    Requires the stub to have been built already, accomplished by a call to ``build_stubs``.

    :param module_name: The module to test

    NrU   N/Azfailed to find stubsrK   rs   z7 Maybe install the runtime package or alter PYTHONPATH?zfailed to import.rr   : r   r   r)   __main__mypyzencountered unexpected error, zThis is most likely the fault of something very dynamic in your library. It's also possible this is a bug in stubtest.
If in doubt, please open an issue at https://github.com/python/mypy

rI   )r|   is_probably_privatesplitsysmodulesr^   rH   r    r   KeyboardInterruptBaseExceptionrh   ModuleNotFoundErrorrV   r)   r   r   r   verify	Exceptionlist	tracebackwalk_tb__traceback__	f_globalsget
format_excstrip)r   stubrK   r   enotebottom_framebottom_modules           r$   test_moduler      s      K  D|";#4#4S#9#9"#=>> 	=HCK=W=W4K 8999]bL5wS_      	&{33      a,-- 	MLDMMtMMd1gg6FMM!MMtU\
 
 	
 	
 	
 	 
	 	"	"  h'''	dGk];;;;;;;;;; 	 	 		 1!/ B BCCBGJL(266z2FFM 
**m.A.A#.F.Fq.IV.S.SHa1AHHQHHJ  *,,22445          		                 sV   
B D.ADDH93EH9
H)C	H$H9$H))H99H= H=r   rO   r   rQ   rL   rM   c              #  2   K   t          |d| |          V  dS )zEntry point for comparing a stub to a runtime object.

    We use single dispatch based on the type of ``stub``.

    :param stub: The mypy node representing a part of the stub
    :param runtime: The runtime object corresponding to ``stub``

    zis an unknown mypy nodeN)rH   r   r   rL   s      r$   r   r     s)       6g
F
FFFFFFr&   nodes.MypyFileruntime_all_as_setset[str]c           	   #    K   d|j         v sJ d |j                                         D             }t          ||z
            }t          ||z
            }|s|sd S t          | dgz   dt          t          d| d|           V  d S )N__all__c                &    h | ]\  }}|j         |S r!   )module_public).0mos      r$   	<setcomp>z)_verify_exported_names.<locals>.<setcomp>,  s#    PPP$!QPAPPPr&   znames exported from the stub do not correspond to the names exported at runtime. This is probably due to things being missing from the stub or an inaccurate `__all__` in the stubz/Names exported in the stub but not at runtime: z/Names exported at runtime but not in the stub: )rN   rP   rJ   rK   )namesitemssortedrH   r    )rL   r   r   public_names_in_stubnames_in_stub_not_runtimenames_in_runtime_not_stubs         r$   _verify_exported_namesr   '  s       
""""PP$**:*:*<*<PPP &';>P'P Q Q &'9<P'P Q Q% )B 
yk!p `E^``Y>WYY       r&   symtable.SymbolTable | Nonec                    	 t          j        |           }n# t          t          t          f$ r Y dS w xY w	 t          j        || j        d          S # t          $ r Y dS w xY w)zRetrieve the symbol table for the module (or None on failure).

    1) Use inspect to retrieve the source code of the module
    2) Use symtable to parse the source (and use what symtable knows for its purposes)
    Nexec)r_   	getsourcer   r   r   symtabler)   )r   sources     r$   _module_symbol_tabler   D  s    "7++Y,   tt )96BBB   tts    22A 
AAMaybeMissing[types.ModuleType]c              #    	K   t          t                    rt          |d|           V  d S t          t          j                  st          |d|           V  d S t          d          rSt          j                  }d| j        v rt          || |          E d {V  n t          |dgz   dt                    V  nd }fd| j                                        D             }dd	||n	fdt                    D             }|                    |           |                    t                     t!          |          D ]}|| j        v r| j        |         j        nt          }t          |t$          j                  r?|J 	 t)          |t                    }n# t*          $ r Y gw xY wt-          ||||gz             E d {V  d S )Nis not present at runtimezis not a moduler   is not present in stubc                f    h | ]-\  }}|j         t          |          rt          |          +|.S r!   )module_hiddenr   hasattr)r   r   r   r   s      r$   r   z"verify_mypyfile.<locals>.<setcomp>p  s^       Aq )<A(>(> CJ'STBUBU	  r&   rr   attrr   r   rf   c                   t          | |          }t          |t          j                  rdS t	          |           }|S	 |                    |          }|                                rdS |                                rdS n# t          $ r Y nw xY w	 |j	        }t          |t                    rt          || j        k              S n# t          $ r Y nw xY wdS )zFHeuristics to determine whether a name originates from another module.FNT)r\   rh   types
ModuleTyper   lookupis_importedis_assignedKeyErrorr*   r   rf   r)   r   )r   r   objsymbol_tablesymbolobj_mods         r$   _belongs_to_runtimez,verify_mypyfile.<locals>._belongs_to_runtimev  s   ac5+,, 	5+A..# %,,T22 %%'' ! 5 %%''  4     	3nG '3'' 3Gqz12223  	 	 	D	
 ts#   B 
BBC 
CCc                J    h | ]}t          |           |          | S r!   )r   )r   r   r   r   s     r$   r   z"verify_mypyfile.<locals>.<setcomp>  sN     
 
 
&q))
 $#GQ//

 
 
r&   )r   r   r   r   r   rf   )rh   r   rH   r   r   r   setr   r   r   r    r   dirupdatedifference_updateIGNORED_MODULE_DUNDERSr   noder   MypyFiler\   r   r   )
r   r   rL   r   to_checkruntime_public_contentsentry
stub_entryruntime_entryr   s
    `       @r$   verify_mypyfiler   V  s      '7## K!<dGLLLLLgu/00 K!2D'BBBBB w	"" 	" 11
"" .k4ASTTTTTTTTTTyk13KWV]^^^^^^!   J$$&&  H   F ) 	
 
 
 
 
\\
 
 
  OO+,,,5666!! L L/4
/B/BTZ&++
j%.11 	%%%	#GUG<<MM 	 	 	 H	 *m[E75JKKKKKKKKKKL Ls   F''
F43F4nodes.TypeInfo	type[Any]c           
   #    K   	  G d d|          }n_# t           $ rG | j        s=t          |t          j                  s#t          |d| |t          |                     V  Y nt          $ r Y nw xY w	 t          |dd          }n# t          $ r d}Y nw xY w|r,| j        s't          |d| |t          |                     V  d S d S d S )Nc                      e Zd ZdS )_verify_final.<locals>.SubClassNrF   r!   r&   r$   SubClassr     s        Dr&   r  zIcannot be subclassed at runtime, but isn't marked with @final in the stubrJ   	__final__FzChas `__final__` attribute, but isn't marked with @final in the stub)	r   is_final
issubclassenumEnumrH   r^   r   r\   )r   r   rL   r  runtime_finals        r$   _verify_finalr	    sj     	 	 	 	 	w 	 	 	 	  	 	 	} 	Z%C%C 	[t**          	e<<     
T] 
Q4jj
 
 
 	
 	
 	
 	
 	

 
 
 
s(    AA/#	A/.A/3B BBPt1type[object]t2rf   c                   t           j        dk    r | j        |j        k    p| j        |j        k    S | j        s|j        r | j        |j        k    p| j        |j        k    S | j        }|j        s| j        t
          z   |k    r
|t
          z  }|j        s| j        t
          z   |k    r
|t
          z  }|j        s|j        |k    r
|t
          z  }||j        k    S )znCheck whether two types differ in shape.

    Mirrors the shape_differs() function in typeobject.c in CPython.)r@      )r   version_info__basicsize____itemsize____weakrefoffset__SIZEOF_PYOBJECT__dictoffset__)r  r  t_sizes      r$   _shape_differsr    s     7""2#33Yr"/7YY
 ? 	^bo 	^#r'77]2?bo;]]!# 	&(<(NRX(X(Xo%F  	&R%6%HF%R%Ro%F# 	&(<(F(Fo%F)))r&   typc                f    | t           u rdS | j        }|J d|  d            t          | |          S )zqReturn whether a type is a disjoint base at runtime, mirroring CPython's logic in typeobject.c.

    See PEP 800.TNzType z has no base)object__base__r  )r  bases     r$   _is_disjoint_baser    sI     f}}t<D6S666#t$$$r&   c           	   #  ~  K   t          |          }|r[| j        sT|j                            d          s:| j        s3| j        r| j        s%t          |d| |t          |                     V  d S | j        r|s#t          |d| |t          |                     V  |j                            d          r%t          |d| |t          |                     V  d S | j        r%t          |d| |t          |                     V  d S | j        r.| j        r)t          |d| |t          |                     V  d S d S d S d S )N	__slots__zOis a disjoint base at runtime, but isn't marked with @disjoint_base in the stubr  zOis marked with @disjoint_base in the stub, but isn't a disjoint base at runtimezFis marked as @disjoint_base, but also has slots; add __slots__ insteadzMis marked as @disjoint_base, but also marked as @final; remove @disjoint_basezjis marked as @disjoint_base, but is an enum with members, which is implicitly final; remove @disjoint_base)	r  is_disjoint_base__dict__r   r  is_enumenum_membersrH   r^   )r   r   rL   is_disjoint_runtimes       r$   _verify_disjoint_baser%    s      ,G44 	/%/  $$[11/ 	/
 /
 #'"3/ ]4jj
 
 
 	
 	
 	
 	
 	
 
	 !" 	at**      ,, 	Xt**        ] 	_t**        \ 	d/ 	(t**       5! !2	 	 	 	r&   is_runtime_typeddictc             #  l  K   | j         s| j        s|st          |          }|t          ur!| j        t	          |d| |d|           V  d S |t          u r[| j        Vt
          j                            | j        d          s3t	          |d| || j        j        j         d          V  d S d S d S d S d S d S d S )Nz"is inconsistent, metaclass differsr   rI   )zabc.ABCMetazbuiltins.typezmetaclass mismatch)	is_protocolr"  rV   metaclass_typerH   r   r   is_named_instancefullname)r   r   rL   r&  runtime_metaclasss        r$   _verify_metaclassr-  :  s;       DL 9M  MMD((T-@-H4 13        %%#/ J00#%E  0 $!05>@"       -      &%////r&   is_alias_targetMaybeMissing[type[Any]]r/  c          	   #  j  	K   | j         r<|s:t          |t                    s#t          |d| |t	          |                     V  d S t          |t                    r%t          |d| |t	          |                     V  d S t          |t
                    s%t          |d| |t	          |                     V  d S t          | ||          E d {V  t          | ||          E d {V  | j        d uot          |          }t          | |||          E d {V  d | j        D             }|                    d t          |          D                        | j        r|                    d           |r|                    d	           t!          |          D ]		}	                    d
          r4	                    d
          sd| j                            d           	 }t+          	fd| j        D             t.                    }|J 	 	 t1          ||          }n+# t2          $ r t5          j        ||t.                    }Y nw xY wn# t8          $ r Y w xY w|t.          ur8t          |          |ur't1          |dd           t          |          u rt.          }	dv r1|t.          ur(|t:          urt1          |dd           t:          u rt.          }t          |t                    r+t          |t<          j                  rtA          |d          stC          |||	gz             E d {V  d S )N;is marked as "@type_check_only", but also exists at runtimer  r   zis not a type)r&  c                :    h | ]}|                                 |S r!   )isidentifier)r   names     r$   r   z"verify_typeinfo.<locals>.<setcomp>  s)    CCCt/@/@/B/BCCCCr&   c              3  J   K   | ]}t          |          s|t          v|V  d S N)r   IGNORABLE_CLASS_DUNDERS)r   r   s     r$   	<genexpr>z"verify_typeinfo.<locals>.<genexpr>  sG        (;A(>(>CDLcCcCcCcCcCcCc r&   re   __new_____c              3  N   K   | ]}|j         v |j                  j        V   d S r7  )r   r   )r   tr   s     r$   r9  z"verify_typeinfo.<locals>.<genexpr>  s:      YYqQRQXHXHXqwu~2HXHXHXHXYYr&   __objclass__)__setattr____delattr__Texclude_special)"is_type_check_onlyrh   r   rH   r^   rV   r	  r%  typeddict_typer   r-  r   r   varsr(  discardr   
startswithendswithr5  lstripnextmror    r\   AttributeErrorr_   getattr_staticr   r  r   WrapperDescriptorTyper   r   )
r   r   rL   r/  r&  r   mangled_entrystub_to_verifyruntime_attrr   s
            @r$   verify_typeinforS  `  s)         '7++ 	Mt**      	'7## K!<dGW[\`WaWabbbbbbgt$$ K$4PT::VVVVVVT7K888888888$T7K@@@@@@@@@.d:T|G?T?T g{9M          DCCCCHOO  ==       %$$$ $###!! -S -SD!! 	?%..*>*> 	?>	 0 0 5 5>u>>MYYYYDHYYY[bcc)))	W&w>>! W W W&5g}gVVW 	 	 	 H	 ''WW,,nd;;tG}}LL"L 333G++v%%nd;;vEE"L ~w//	S<)DEE	S ->>>	S
 nlK5'<QRRRRRRRRR[-S -Ss0   H$#I$%I	III
IIc                    t          j        | d                   }| dd          D ]1}	 t          j        ||          }# t          $ r t
          cY c S w xY w|S )Nr   ru   )r   r   r_   rN  rM  r    )rL   static_runtimer   s      r$   _static_lookup_runtimerV    sx    ,[^<<NQRR  	$3NEJJNN 	 	 	 NNNNN		
 s   >AAnodes.FuncBaserU  Iterator[str]c              #    K   | j         dv rd S t          j        |          r@t          t	          |dd           t
                    }|r| j        sdV  |s| j        rdV  d S |t          u rd S t          |t                    r| j        sdV  t          |t                    s| j        rdV  t          |t                    r| j
        sdV  t          |t                    s| j
        rdV  d S d S d S )N)r:  __init_subclass____class_getitem____self__z(runtime is a classmethod but stub is notz(stub is a classmethod but runtime is notz)runtime is a staticmethod but stub is notz)stub is a staticmethod but runtime is not)r5  r_   	isbuiltinrh   r\   rV   is_classr    classmethodstaticmethod	is_static)r   r   rU  rL   probably_class_methods        r$   _verify_static_class_methodsrc    sQ      yIII!!  !+77J+M+Mt T T  	= 	=<<<<$ 	= 	=<<<<  .+.. 9t} 98888nk22 9t} 98888.,// : :9999nl33 : :999999: : : :r&   stub_argnodes.Argumentruntime_arginspect.Parameterfunction_namec              #    K   t          |d          rdS | j        j        |j        k    s(| j        j                            d          |j        k    rdS ddh}|j        |v rdS dd}|j        t
          j        j        k    r || j        j        |j                  rdS | j        j        dk    rdS d| j        j         d|j         dV  dS )z$Checks whether argument names match.TrB  Nr;  r  argsar   br   rf   c                    |                      d          } |                     d          }|                     |          p:|                    |           p%t          |           dk    pt          |          dk    S )Nr<  ru   )r   rH  rB   )rk  rl  s     r$   names_approx_matchz,_verify_arg_name.<locals>.names_approx_match  s]    GGCLLGGCLL||AO!,,q//OSVVq[OCFFaKOr&   _selfstub parameter "z"" differs from runtime parameter "")rk  r   rl  r   r   rf   )r   variabler5  removeprefixkindr_   	ParameterPOSITIONAL_ONLY)rd  rf  rh  nonspecific_namesrn  s        r$   _verify_arg_namerx    s1     
 555  	+"222!..t448HHH!6*,,,P P P P 7,<<<ASAS 0B B< 	((	?8,1 	? 	?+6+;	? 	? 	?    r&   c              #    K   |j         t          j        j        ur|| j                                        rd|j         dV  dS | j        j        }t          |j         |          }| j        j        p| j
        }t          |t          j        j                  r|j        }|H|Ft          |j                   t           ur+|j         dur"t#          ||          sd|j         d| d| V  | j        t'          | j                  }|t(          ur|dur|j         t*          urud}t          |          t          |j                   urd	}n,	 t-          ||j         k              }n# t.          $ r d	}Y nw xY w|s!d|j         d
|j         d|V  dS dS dS dS dS dS | j                                        rd| j        j         dV  dS dS )z6Checks whether argument default values are compatible.runtime parameter "z1" has a default value but stub parameter does nottype_contextN.z" has a default value of type z1, which is incompatible with stub parameter type TFz" has a default value of z1, which is different from stub parameter default rp  z4" has a default value but runtime parameter does not)defaultr_   ru  emptyrt  is_requiredr5  rr  rV   get_mypy_type_of_runtime_valuetype_annotationrh   r   r   TypeVarTypeupper_boundr  is_subtype_helperinitializerr   r   r3   rf   r   is_optional)rd  rf  r|  runtime_type	stub_typestub_defaultdefaults_matchs          r$   _verify_arg_default_valuer    s      '"3"999=$$&& 9	Bk&6 B B B    
 $,1L9#,  L !).J(2JI)TZ%;<< 2%1	(),--V;;'s22),	BB 3R+*: R R3?R RFOR R  
 #/283GHH //$C//#+?BB%)N L))k6I1J1JJJ).3-1,+BU2U-V-VNN( 3 3 3 .3NNN	3
 * _+2B _ _6A6I_ _NZ_ _    + 0/ 0///BB  =$$&& 	28#4#9 2 2 2    	 	s   E! !E0/E0r5  rj  list[nodes.Argument]c                R    |r$| dv r |d         j         j        dk    r
|dd          S |S )N)rZ  r[  r   clsru   rr  r5  )r5  rj  s     r$   maybe_strip_clsr  _  s>     BBB 7 E))8OKr&   c                  f    e Zd ZddZddZedd	            Zedd            Zedd            ZdS )	Signaturer   rS   c                >    g | _         i | _        d | _        d | _        d S r7  )poskwonlyvarposvarkwr"   s    r$   re   zSignature.__init__i  s"    $& $#


r&   r   c                   dddddd	dfd
t          | j                                        fd          }d}|d                    fd| j        D             | j        rd | j                  z   gn| j        rdgng z   fd|D             z   | j        rd | j                  z   gng z             z  }|dz  }|S )Nargr   r   r   c                    t          | t          j                  r| j        S t          | t          j                  r| j        j        S t          r7  )rh   r_   ru  r5  r   Argumentrr  AssertionErrorr  s    r$   get_namez#Signature.__str__.<locals>.get_namep  sC    #w011  x#u~.. )|((  r&   rR   c                    t          | t          j                  rd S t          | t          j                  r t          | j        j        p| j                  S t          r7  )
rh   r_   ru  r   r  r   rr  rV   r  r  r  s    r$   get_typez#Signature.__str__.<locals>.get_typew  sR    #w011 t#u~.. E3<,C0CDDD  r&   rf   c                    t          | t          j                  r| j        t          j        j        uS t          | t
          j                  r| j                                        S t          r7  )
rh   r_   ru  r}  r~  r   r  rt  r  r  r  s    r$   has_defaultz&Signature.__str__.<locals>.has_default~  sY    #w011 B{'*;*AAA#u~.. .x++---  r&   c                d     |           } |           |rd| ndz    |           rdndz   S )Nr   rs   z = ...r!   )r  arg_typer  r  r  s     r$   get_descz#Signature.__str__.<locals>.get_desc  sR    x}}H&.6????B8*{3//788R9r&   c                0     |            |           fS r7  r!   )rk  r  r  s    r$   <lambda>z#Signature.__str__.<locals>.<lambda>  s    kk!nnhhWXkk=Z r&   keyzdef (z, c                &    g | ]} |          S r!   r!   r   r  r  s     r$   
<listcomp>z%Signature.__str__.<locals>.<listcomp>  s!    ///sXXc]]///r&   r   c                &    g | ]} |          S r!   r!   r  s     r$   r  z%Signature.__str__.<locals>.<listcomp>  s!    000xx}}000r&   z**))r  r   r   r   )r  r   r   rR   )r  r   r   rf   )r   r  valuesrZ   r  r  r  )r#   kw_onlyretr  r  r  r  s      @@@@r$   __str__zSignature.__str__o  s_   	! 	! 	! 	!	! 	! 	! 	!	! 	! 	! 	!	 	 	 	 	 	 	 	 ++--3Z3Z3Z3Z3Z[[[tyy////dh///04_hht{+++,,4;B^3%%\^a00000001 15
Bxx
+++,,D
 
 	
 	s

r&   r   nodes.FuncItemSignature[nodes.Argument]c                   t                      }t          | j        | j                  }|D ]}|j                                        r|j                            |           6|j                                        r||j	        |j
        j        <   d|j        t          j        k    r||_        |j        t          j        k    r||_        t           |S r7  )r  r  r5  	argumentsrt  is_positionalr  appendis_namedr  rr  r   ARG_STARr  	ARG_STAR2r  r  )r   stub_sig	stub_argsrd  s       r$   from_funcitemzSignature.from_funcitem  s    .7kk#DIt~>>	! 
	% 
	%H}**,, 	%##H----'')) %:B 1 677%.00"*%/11!)$$r&   	signatureinspect.SignatureSignature[inspect.Parameter]c                   t                      }| j                                        D ]}|j        t          j        j        t          j        j        fv r|j        	                    |           F|j        t          j        j
        k    r||j        |j        <   p|j        t          j        j        k    r||_        |j        t          j        j        k    r||_        t"          |S r7  )r  
parametersr  rt  r_   ru  rv  POSITIONAL_OR_KEYWORDr  r  KEYWORD_ONLYr  r5  VAR_POSITIONALr  VAR_KEYWORDr  r  )r  rb   rf  s      r$   from_inspect_signaturez Signature.from_inspect_signature  s    4=KK$/6688 	% 	%K!1!7$   &&{3333!W%6%CCC7B";#344!W%6%EEE%0""!W%6%BBB$/!!$$r&   nodes.OverloadedFuncDefc                v    t           j        d          }t          t                    }t	          t
           j                  D ]}|
J d            t           j        |j                  }t          |          D ]\  }}|j
        j                            d          sU|j        sN|sL|j
        j                            d          dk    s)|dk    rI|j
        j                            d          d	k    r&||j
        j                                     d           ||j
        j                                     d
           Ōi t	          t
           j                  D ]}|
J d            t           j        |j                  }t          |          D ]N\  }}|j
        j        }||         dhk    rd| }                    |g                               ||f           Odfd}dfd}	d fd}
t#                      }t%          |          D ]}|         d         d         j
        j        }t'          j        t'          j        | |	|                    dd |
|          t-          d |         D                                 }|j                                        r|j                            |           |j                                        r||j        |j
        j        <   |j        t&          j        k    r||_        |j        t&          j        k    r	||_        t@          |S )a  Returns a Signature from an OverloadedFuncDef.

        If life were simple, to verify_overloadedfuncdef, we'd just verify_funcitem for each of its
        items. Unfortunately, life isn't simple and overloads are pretty deceitful. So instead, we
        try and combine the overload's items into a single signature that is compatible with any
        lies it might try to tell.

        TrB  Nz$Failed to resolve decorated overloadr;  r<  r#   r   r  Farg_namer   r   r>   c                B    t          d |          D                       S )Nc              3      K   | ]	\  }}|V  
d S r7  r!   )r   r<  indexs      r$   r9  zISignature.from_overloadedfuncdef.<locals>.get_position.<locals>.<genexpr>  s&      @@Eu@@@@@@r&   )max)r  all_argss    r$   get_positionz6Signature.from_overloadedfuncdef.<locals>.get_position  s%    @@Xh-?@@@@@@r&   mypy.types.ProperTypec                    t           j        j                            d          5  d |          D             }t           j                            d |D                       cd d d            S # 1 swxY w Y   d S )NTc                :    g | ]\  }}|j         j        p|j        S r!   )rr  rV   r  r   r  r<  s      r$   r  zFSignature.from_overloadedfuncdef.<locals>.get_type.<locals>.<listcomp>  s6       AGaCL%<)<  r&   c                    g | ]}||S r!   r!   r   r>  s     r$   r  zFSignature.from_overloadedfuncdef.<locals>.get_type.<locals>.<listcomp>  s    :U:U:UST:U1:U:U:Ur&   )r   statestrict_optional_settypeopsmake_simplified_union)r  	all_typesr  s     r$   r  z2Signature.from_overloadedfuncdef.<locals>.get_type  s    !55d;; W W KST\K]  	 |99:U:Ui:U:U:UVV	W W W W W W W W W W W W W W W W W Ws   ;A..A25A2nodes.ArgKindc                   d |          D             }t           j        |v rt           j        S t           j        |v rt           j        S t          |                    t          j                  k     pt           j        |v pt           j        |v }t           j        |v pt           j        |v }|r|rt           j        nt           j        S |rt           j        nt           j        S )Nc                "    h | ]\  }}|j         S r!   )rt  r  s      r$   r   zESignature.from_overloadedfuncdef.<locals>.get_kind.<locals>.<setcomp>  s    ???&#qSX???r&   )	r   r  r  rB   r   ARG_OPTARG_NAMED_OPTARG_POS	ARG_NAMED)r  kindsis_optis_posr  r   s       r$   get_kindz2Signature.from_overloadedfuncdef.<locals>.get_kind  s    ??HX,>???E~&&~%%''&
 HX&''#dj//9 0=E)0&%/ 
 ]e+Eu}/EF H(.Gu}}E4GG$*?5==?r&   r  c              3  *   K   | ]\  }}|j         V  d S r7  )pos_onlyr  s      r$   r9  z3Signature.from_overloadedfuncdef.<locals>.<genexpr>  s(      KKfc1S\KKKKKKr&   )r  r  rt  r  )r  r   r   r>   )r  r   r   r  )r  r   r   r  )!r   r5  r   r   map _resolve_funcitem_from_decoratorr   r  r  	enumeraterr  rH  r  r   addr:   r  r  r   r   r  Varallrt  r  r  r  r  r  r  r  r  r  )r   assume_positional_onlyis_arg_pos_onlyfuncrj  r  r  r5  r  r  r  sigr  example_arg_namer  s   `             @r$   from_overloadedfuncdefz Signature.from_overloadedfuncdef  s    "+49d!K!K!K7B37G7G8$*EE 	B 	BD##%K###"49dn==D'oo 
B 
B
sL%0066	B|	B .	B |(..s33v==

s|'8'>'>s'C'Cu'L'L#CL$56::4@@@@#CL$56::5AAAA
B AC8$*EE 	C 	CD##%K###"49dn==D'oo 
C 
C
s |("4(TF22'<<D##D"--44c5\BBBB
C	A 	A 	A 	A 	A 	A	W 	W 	W 	W 	W 	W	@ 	@ 	@ 	@ 	@ 	@ 	@& *3x\::: 	% 	%H'1!4Q7@E.	*HHX,>,>?? $ Xh''KK8JKKKKK  C x%%'' 	%s####""$$ %03
3<,--U^++ 

U_,,		$$
r&   Nr   rS   r'   )r   r  r   r  )r  r  r   r  )r   r  r   r  )	r)   r*   r+   re   r  r`  r  r  r  r!   r&   r$   r  r  h  s        $ $ $ $' ' ' 'R    \     \$ _ _ _ \_ _ _r&   r  r  r  warn_runtime_is_object_initc              #  4  K   t          | j        |j                  D ]\  }}t          |||          E d {V  t          ||          E d {V  |j        t
          j        j        k    r|j        s|j	        j
                            d          sq|j	        j
                            d          dk    rN|j	        j
                            d          dk    r+t          |d          sd|j	        j
         d|j
         d	V  |j        t
          j        j        k    r|j        s|j	        j
                            d          r|j
                            d          si|j	        j
                            d          dk    rF|j	        j
                            d          dk    r#t          |d          sd|j	        j
         d
V  t          | j                  t          |j                  k    r|j        | j        t          |j                  d          D ]P}|j	        j
        |j        vr)d|j	        j
         d}|j        |dz  }n|r|dz  }|V  >d|j	        j
         dV  Q| j        d| j        j	        j
         dV  nt          | j                  t          |j                  k     r\|j        t          | j                  d          D ]:}|j
        | j        vrt%          |          sd|j
         dV  -d|j
         dV  ;t          | j                  t          |j                  k    s|j        E| j        |j        d|j        j
         dV  | j        |j        d| j        j	        j
         dV  t'          t)          | j                  t)          |j                  z            D ]I}| j        |         |j        |         }}t          |||          E d {V  t          ||          E d {V  J|j        9t)          |j                                      t)          | j                            st'          t)          | j                  t)          |j                  z
            D ]\}|d |j        D             v r6|d |j        t          | j                  d          D             vrd| dV  Kd| d}|r|dz  }|V  ]t'          t)          |j                  t)          | j                  z
            D ]t}|d | j        D             v r=|j        -|d | j        t          |j                  d          D             v sd| dV  Rt%          |j        |                   sd| dV  u| j        f|j        _d | j        D             }t)          |j                                      t)          | j                  |z            sd|j        j
         dV  | j         |j        d| j        j	        j
         dV  d S d S d S )Nr;  r<  r#   r  TrB  rp  z," should be positional-only (add "/", e.g. "z, /")z." should be positional or keyword (remove "/")z!runtime does not have parameter "rq  z7. Maybe you forgot to make it keyword-only in the stub?z>. You may need to write stubs for __new__ instead of __init__.z" is not keyword-onlyz'runtime does not have *args parameter "zstub does not have parameter "rz  z$stub does not have *args parameter "c                    h | ]	}|j         
S r!   r5  r   rf  s     r$   r   z$_verify_signature.<locals>.<setcomp>t  s    GGGK{'GGGr&   c                    h | ]	}|j         
S r!   r  r  s     r$   r   z$_verify_signature.<locals>.<setcomp>v  s    ```K{/```r&   c                &    h | ]}|j         j        S r!   r  r   rd  s     r$   r   z$_verify_signature.<locals>.<setcomp>  s    CCCh8$)CCCr&   c                &    h | ]}|j         j        S r!   r  r  s     r$   r   z$_verify_signature.<locals>.<setcomp>  s    ```xH-2```r&   c                &    h | ]}|j         j        S r!   r  r  s     r$   r   z$_verify_signature.<locals>.<setcomp>  s    JJJX(+0JJJr&   z'stub does not have **kwargs parameter "z*runtime does not have **kwargs parameter ")zipr  rx  r  rt  r_   ru  rv  r  rr  r5  rH  r   r   rB   r  r  r  _is_private_parameterr   r   issubset)	r   r   rh  r  rd  rf  msgr  stub_pos_namess	            r$   _verify_signaturer    s8      "%TXw{!;!;  +#Hk=IIIIIIIII,X{CCCCCCCCC 1 AAA% B%*55d;; B !&,,S11V;;!&,,S11U::mTBBB ;;8#4#9 ; ;#.#3; ; ;  
  1 AAA" B&.&7&<&G&G&M&M B$//55 B !&,,S11V;;!&,,S11U::mTBBB ;8#4#9      48}}s7;''''
 >! HS%5%5%7%78 [ [ $)??Wh>O>TWWWC}0XX4 `__IIIIZX->-CZZZZZZZ{&\@T@Y\\\\\\	TXW[))	)	)";s48}}7 	T 	TKt{22,[99 ON;;KNNNNNNSK,<SSSSSSS 48}}GK((((GN,B;7>#=O9LOOOOOO;"w~'=XDK<P<UXXXXXX c$+&&W^)<)<<== D D $C 0'.2E+#Hk=IIIIIIIII,X{CCCCCCCCCC }C$7$7$@$@T[AQAQ$R$R #dk**S-@-@@AA 		 		CGG7;GGGGG``7;sSWS[}}C_`````JJJJJJJ@#@@@. \[[C				c'.))C,<,<<== 
> 
>CC$(CCCCC &``48CPWP[L\L\L^L^C_`````CCCCCCC()<== >=s====== zgm7 KJJJJ7>""++C,<,<~,MNN 	RQGM<NQQQQQQz'-"7V4:;N;SVVVVVVVV "7"7r&   r  c                    | j                             d          o2| j                             d           o| j        t          j        j        uS )Nr<  r;  )r5  rH  r}  r_   ru  r~  r  s    r$   r  r    sJ    C   	7##D)))	7Kw066r&   r  c              #    K   t          |t                    rt          |d| |          V  d S t          |          s%t          |d| |          V  t	          |          sd S t          |          }t          | t          j                  rOt          | |          D ]}t          ||| |          V  t          | ||          D ]}t          ||| |          V  t          | |||          D ]}t          |d|z   | |          V  t          |          }t          j        |          }|rUt                              |           }t                              |          }	t#          ||          }
t%          |          }nd\  }
}|r| j        st          |d| |||
          V  |sd S t)          ||	| j        |t,          j        u           D ]}t          |d|z   | ||
	          V  d S )
Nr   is not a functionis inconsistent, rX   )NNz:is an "async def" function at runtime, but not in the stubrI   rh  r  r   )rh   r   rH   is_probably_a_functioncallablerV  r   FuncDef_verify_abstract_status_verify_final_methodrc  r]   r_   r`   r  r  r  ra   r   is_coroutiner  r5  r  re   )r   r   rL   rU  
error_textr5   r  runtime_is_coroutiner  rb   runtime_sig_descrJ   s               r$   verify_funcitemr    s      '7## K!<dGLLLLL!'** K!4dGDDDDD   	F ,K88N$&& @1$@@ 	@ 	@JZw??????.tWnMM 	@ 	@JZw??????/g~{[[ O OK!4w!>gNNNNNN&w//I"6w?? 1**40066yAA4YI]^^^MM		&0#)
  
D$5 
H)
 
 
 	
 	
 	
  $i$+v$>	   
 
 '))
 
 
 	
 	
 	
 	

 
r&   c              #  H   K   |t           u rd S t          |d| |          V  d S )Nr   )r    rH   r   s      r$   verify_missingr    s9       '
5tW
E
EEEEEEr&   	nodes.Varc              #    K   t          |t                    r)t          |          dk    rt          |d| |          V  d S | j        r1t          |          r"| j        s| j        st          |d| |          V  t          || j	                  }|| j	        t          || j	                  sd}t          |t          j                  rt          |j                  }|t          || j	                  rd}t          j                            | j	                  }t          |t          j        j                  r|j	        j        t          j        j        v rd}|rt          |d| | |          V  d S d S d S d S d S )N   r   +is read-only at runtime but not in the stubr{  TFz#variable differs from runtime type )rh   r   rB   rH   is_initialized_in_classis_read_only_propertyis_settable_propertyis_propertyr  rV   r  r  r  valuer   r   get_proper_typeInstancer+  ELLIPSIS_TYPE_NAMES)r   r   rL   r  should_errorproper_types         r$   
verify_varr&    s      '7## {q  %@$PPPPP 	$_!'**_ &_ /3.>_
 K!NPTV]^^^^^1'	RRRL I!!,	:: "  gty)) 
	%9'-HHL',=lDI,V,V'$*44TY??K;
(;<<%$-1OOO$ 	Q<QQSWY`      ) 	! !!!!$	 	r&   r  c              #    K   t          |t                    rt          |d| |          V  d S | j        r%t	          |          rt          |d| |          V  d S t          |          s%t          |d| |          V  t          |          sd S | j        d         }t          |t          j	                  r3|j
        r,t          |j        |          D ]}t          ||| |          V  t          |          }t          | |||          D ]}t          |d|z   | |          V  t          |          }|sd S t                               |           }t                               |          }	t'          ||	| j        |t*          j        u           D ]M}d|v r|dz  }t          |d|z   | |t/          | j                  d	| z   d
t/          |          z             V  Nd S )Nr   r  r	  r   r
  r  zhas a default value of typezc. This is often caused by overloads failing to account for explicitly passing in the default value.z
Inferred signature: def rI   )rh   r   rH   r  r  r  r  r   r   	Decoratoris_overloadr  r  rV  rc  r]   r  r  r  r  r5  r  re   r   rV   )
r   r   rL   
first_partr  rU  r5   r  r  rb   s
             r$   verify_overloadedfuncdefr,    sg     
 '7## K!<dGLLLLL  )) 	c%RTXZabbbbb!'** K!4dGDDDDD   	F AJ*eo.. 9:3I 9*:?GDD 	9 	9CS$888888 ,K88N/g~{[[ O OK!4w!>gNNNNNN
 'w//I //55H229==K$i$+v$>	   
 
 )G33(G ')49~~)L()L)LL#i..0
 
 
 	
 	
 	
 	

 
r&   nodes.TypeVarExprc              #     K   t          |t                    r#| j        dk    rd S t          |d| |          V  d S t          |t                    st          |d| |          V  d S d S )N_NTr   zis not a TypeVar)rh   r   r5  rH   r   r   s      r$   verify_typevarexprr0  \  s       '7##  9FK!<dGLLLLLgw'' K!3T7CCCCC r&   nodes.ParamSpecExprc              #  :  K   t          |t                    rt          |d| |          V  d S t          t          dd           t          t
          dd           f}t          d |D                       }|rt          ||          st          |d| |          V  d S d S )Nr   	ParamSpecc              3     K   | ]}||V  	d S r7  r!   r  s     r$   r9  z'verify_paramspecexpr.<locals>.<genexpr>w  s"      NN!ANNr&   zis not a ParamSpec)rh   r   rH   r\   typingtyping_extensionstuple)r   r   rL   maybe_paramspec_typesparamspec_typess        r$   verify_paramspecexprr:  l  s       '7## K!<dGLLLLLT**!;55 NN'<NNNNNO *Wo"F"F K!5tWEEEEE r&   c                    t          |           j        dk    rdS 	 t          | j                  S # t          $ r Y dS w xY w)Ncached_propertyF)rV   r)   rf   r  r   r   s    r$   _is_django_cached_propertyr>  }  sU    
 G}}!222uGL!!!   uus   0 
>>nodes.Decoratorc              #    K   | j         j        sJ t          |t                    r(t	          | j         |j        t                    E d {V  d S t          |t          j                  r(t	          | j         |j         t                    E d {V  d S t          |          r(t	          | j         |j         t                    E d {V  d S t          j        |          rd S t          |          }t          | j         j        t          j        j                  r| j         j        j        nd }||t%          ||          rd S dV  d S )NzGis inconsistent, cannot reconcile @property on stub with runtime object)r  r  rh   propertyr  fgetr    	functoolsr<  r>  r_   isdatadescriptorr  rV   r   r   CallableTyperet_typer  )r   r   r  	func_types       r$   _verify_readonly_propertyrH    sb     9    '8$$ '	7<IIIIIIIII'9455 '	7<IIIIIIIII!'** '	7<IIIIIIIII((  2'::L#-dindj>U#V#V`	\`  	 !lI66 " 	
SSSSSSr&   nodes.FuncDefc              #     K   | j         t          j        k    }t          |dd          }|r|s| j        rdnd}d| dV  d S d S d S )N__isabstractmethod__FrA  methodzis inconsistent, runtime z is abstract but stub is not)abstract_statusr   IS_ABSTRACTr\   r  )r   r   stub_abstractruntime_abstract	item_types        r$   r  r    s      (E,==Mw(>FF R R"&"2@JJ	Q)QQQQQQQQR R R Rr&   c              #     K   | j         rd S t          |dd          s|t          urt          |dd          rdV  d S d S d S )Nr  Fz8is decorated with @final at runtime, but not in the stub)r  r\   r    )r   r   rU  s      r$   r  r    sh       } wU++ Ig%%'.+u*U*U%HHHHHH 	&%%%r&   decnodes.OverloadPartnodes.FuncItem | Nonec                     t           t          j                  r S  j        j        rdS d	 fd} j        } j        D ]} |||          }| dS |}|S )
zReturns a FuncItem that corresponds to the output of the decorator.

    Returns None if we can't figure out what that would be. For convenience, this function also
    accepts FuncItems.
    N	decoratornodes.Expressionr  r  r   rU  c                   t          | t          j                  r>t          | j        t          j                  r| j        j        t          j        j        v r|S t          | t          j                  sd S | j        sd S | j        dv sH| j        t          j        j	        v s0| j        t          j        j
        v s| j        t          j        j        v r|S | j        dk    rr|j        d         j        j        dvr/t          d|j        d         j        j        dj                   t!          j        |          }|j        dd          |_        |S d S )N)zbuiltins.staticmethodzabc.abstractmethodzbuiltins.classmethodr   )r  mcsmetaclsz unexpected class parameter name z in ru   )rh   r   CallExprcalleeRefExprr+  r   r   DEPRECATED_TYPE_NAMESOVERLOAD_NAMESOVERRIDE_DECORATOR_NAMESFINAL_DECORATOR_NAMESr  rr  r5  rE   copy)rW  r  r  rS  s      r$   apply_decorator_to_funcitemzE_resolve_funcitem_from_decorator.<locals>.apply_decorator_to_funcitem  sW    y%.11	9+U];;	  )TZ-MMMK)U]33 	4! 	4"QQQ!TZ%>>>!TZ%HHH!TZ%EEEK!777~a ).6OOO%)t~a7H7Q7V ) ),) )  
 )D//CM!""-CMJ tr&   )rW  rX  r  r  r   rU  )rh   r   FuncItemr  r  original_decorators)rS  rd  r  rW  resulting_funcs   `    r$   r  r    s     #u~&& 

x t" " " " " "H 8D,  	44YEE!44Kr&   c           	   #    K   | j         j        r:t          |t                    s#t	          |d| |t          |                     V  d S t          |t                    rt	          |d| |          V  d S | j         j        rUt          | |          D ]}t	          ||| |          V  t          | j         |          D ]}t	          ||| |          V  d S t          |           }|t          |||          E d {V  d S d S )Nr2  r  r   )r  rD  rh   r   rH   r^   r  rH  r  r  r   )r   r   rL   r5   r  s        r$   verify_decoratorri    s]      y#  '7++ 	Mt**      	'7## K!<dGLLLLLy 0w?? 	= 	=GWdG<<<<<<.ty'BB 	= 	=GWdG<<<<<<+D11D$55555555555 r&   nodes.TypeAliasc           	   #    K   t           j                            | j                  }d| }t	          |t
                    rt          |d| ||          V  d S t          |          p|}t	          |t           j        j                  rt	          |t                    st          |d| ||          V  d S |j	        }	 |j
        }n&# t          $ r t          |dt                    }Y nw xY wt	          |t                    rut          |dt                    }t	          |t                    rJ|dk    s
|dk    r|d	v rd
}| d| }	t          j        dt          j        |j                   |	          rd S t'          |||d          E d {V  d S t	          |t           j        j                  rX|t*          urMt,          j        dk    rt	          |t          j                  s#t          |d| |t          |                    V  d S t	          |t           j        j                  r0t2          t          |dd          vrt          |d| ||          V  d S t	          |t           j        j                  r+|t6          j        j        urt          |d| ||          V  d S t	          |t           j        j                  rd S t          |d| ||          V  d S )NzType alias for r   r  z&is inconsistent, runtime is not a typer)   r*   zcollections.abcre>   MatchPatternr5  rU   z_?Tr.  r@   
   zis not a Union__mro__r!   zis not a subclass of tuplez is not a type alias for Callablezis not a recognised type alias)r   r   r!  targetrh   r   rH   r   r"  rV   r+   rM  r\   r    r   rl  	fullmatchescaper+  rS  	UnionTyper   r   r  	TupleTyper7  rE  collectionsabcCallableAnyType)
r   r   rL   stub_targetrJ   runtime_originstub_originruntime_nameruntime_moduleruntime_fullnames
             r$   verify_typealiasr    se      *,,T[99K/+//I'7## K!<dGW`aaaaaa((3GN+tz233 ".$// 	8#      F!&	H)6LL 	H 	H 	H">:wGGLLL	HlC(( 
	%,^\7%S%SN.#.. !%666"d**|?S/S/S%-N&4#E#E|#E#E < Gbi0D&E&E G GIYZZ F
 #;]abbbbbbbbbb+tz344 &&!W,,GU_1U1U,%5tWPST_P`P`aaaaaa+tz344 	2>>>>94T]      	+tz677 !999?wZc      	+tz122 
=tWXa
b
b
bbbbbbs   ?C  C*)C*>   r,   __file__r)   __path____spec__
__author__
__cached__
__loader____getattr____package____version____annotate____builtins____copyright____annotations____warningregistry__r   >.   __cmp____div__r,   __args__r!  __hash__r  r  
__origin__
__reduce__r  __nonzero__r@  __unicode____weakref__r  __ctype_be____ctype_le____getstate____setstate____reduce_ex____slotnames____getnewargs____new_member____orig_bases____parameters____pyx_vtable__r  __firstlineno____getinitargs____subclasshook____annotate_func____classdictcell____instancecheck____subclasscheck____protocol_attrs____text_signature____abstractmethods____dataclass_fields____dataclass_params____vectorcalloffset____annotations_cache____static_attributes____ctypes_from_outparam____non_callable_proto_members____callable_proto_members_only__r8  c                L    |                      d          ot          |            S )Nr<  )rH  r   r  s    r$   r   r     s"    ??37	$$77r&   c                   t          | t          j        t          j        t          j        t          j        f          pKt          j        |           ot          |           p(t          | t          j	                  ot          |           S r7  )
rh   r   FunctionTypeBuiltinFunctionType
MethodTypeBuiltinMethodTyper_   ismethoddescriptorr  MethodWrapperTyper=  s    r$   r  r    s|    ") '		
 	
 
	P &w//EHW4E4E
	P w 788NXg=N=Nr&   r  c                >    t          | t                    o| j        d u S r7  )rh   rA  fsetr=  s    r$   r  r    s    gx((AW\T-AAr&   inspect.Signature | Nonec                   t          | d          r>| j        dk    r2t          | d          r!| j        dk    rt          | d          rt          | j        d          r| j        j        	 t	          j        | j                  }t          j        j        }|j        r^t          t          |j                                                            }|j        t          j        j        k    rt          j        j        }|                    t	          j        d|          g|j                                                  S # t          $ r Y nw xY wt          | d          r| j        dk    rt          | d          rp| j        d	k    rdt          | d
          rSt          | j        d          r=| j        j        0d}t          | j        d          r4t          | j        j        d          r| j        j        j        | j        u rd}|s	 t	          j        | j                  }t          j        j        }|j        r^t          t          |j                                                            }|j        t          j        j        k    rt          j        j        }|                    t	          j        d|          g|j                                                  S # t          $ r Y nw xY w	 	 t	          j        |           S # t$          $ r t          | d          rd| j        v r| j                            dd          }t	          j        t          j        | |          }t+          |t          j                  sJ d |j                                        D             }|                    |          cY S  w xY w# t          $ r Y d S w xY w)Nr)   re   r  z($self, /, *args, **kwargs)r?  r#   )r  r:  z($type, *args, **kwargs)r\  FTr  r2   rA   c                Z    g | ](}|j         d u r|                    t                    n|)S ).)r}  )r}  replacer3   )r   	parameters     r$   r  z*safe_inspect_signature.<locals>.<listcomp>  sQ        " %,33 "))/)BBB&	  r&   )r   r)   r  r?  r_   r  ru  r  r  rK  iterr  rt  rv  r  r   r\  re   
ValueError_signature_fromstrr  rh   )r   sparameter_kindfirst_parameterhas_initr  
new_paramss          r$   r]   r]     s   $$
**G122 +&*GGGG^,, HG(*>?? H  3?	!'"677A5<5F5\N| G"&tAL,?,?,A,A'B'B"C"C"'7+<+LLL%,%6%FN99#-fnEE^H[H[H]H]^      	 	 	D	 	$$$	))G122 *&*DDDGZ(( EG$&:;; E /; G$j11	(1>BB	  )6':JJJH 	%g&677!(!2!H< K&*40C0C0E0E+F+F&G&GO&+w/@/PPP)0):)Jyy ' 1% H Ha1<K^K^K`K`a !       	$W--- 	 	 	!566'7+EEE 0889LeTT01BGSQQ!#w'899999  &)^%:%:%<%<  
 {{j{99999)	*    
 ttsQ   .CE   
EECK 
K+*K+0L B3N;7N> 9N;;N> >
OOr  r  rY   c                   |rdnd d|  S )Nzasync rs   r(  r!   )r  rY   s     r$   ra   ra   /  s    "*hh;;	;;;r&   leftmypy.types.Typerightc                   t           j                            |           } t           j                            |          }t          | t           j        j                  rEt          | j        t                    r+| j        dv r"t           j                            |d          rdS t          |t           j        j                  r"t           j                            | d          rdS t           j	        j	        
                    d          5  t           j                            | |          cddd           S # 1 swxY w Y   dS )z2Checks whether ``left`` is a subtype of ``right``.)r   ru   zbuiltins.boolTzbuiltins.dictN)r   r   r!  rh   LiteralTyper   r>   r*  TypedDictTyper  r  subtypes
is_subtype)r  r  s     r$   r  r  3  sU   :%%d++DJ&&u--E4/00tz3'' J&  J((@@ ! t%122 tz7S7So8 8  t			-	-d	3	3 5 5}''e445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s    D55D9<D9module	type_namemypy.nodes.SymbolNode | Nonec                b    t          |           }|d S ||j        vrd S |j        |         j        S r7  )r|   r   r   )r  r  r   s      r$   get_mypy_node_for_namer  J  s;    FD|t
""t:i %%r&   r|  mypy.types.Type | Nonec                   | t           j                                        S t          | t                    rdS ddt          | t          j        t          j        t          j        t          j        f          rt          d          }|J |j
        d         j        }t          |t          j                  sJ t           j                            |             g          }t          |           }|rg }g }g }|j                                        D ]}	|                                            |                    |	j        t(          j        j        k    rdn|	j                   |	j        t(          j        j        u }
|	j        t(          j        j        k    r.|                    |
rt          j        nt          j                   |	j        t(          j        j        k    r.|                    |
rt          j        nt          j                   |	j        t(          j        j        k    r/|                    |
rt          j        nt          j                   G|	j        t(          j        j         k    r!|                    t          j!                   |	j        t(          j        j"        k    r!|                    t          j#                   tH          n0                          g}t          j!        t          j#        g}ddg}t           j        %                    |||             |d          S d	}|rt           j        &                    |          }t          |t           j        j%                  r&t          |j'        t           j        j(                  rd}t          |t           j        j)                  r&t          |j*        t           j        j(                  rd}t          | tV                    r|sdd}tY          | j-        | j.                  }t          |t          j                  rbd}t           j/        0                    ||          }t           j1        2                    |          rt           j3        4                    |          }|S tY          tW          |           j-        tW          |           j.                  }|dS t          |t          j5                  r|j+        S t          |t          j                  sdS t          | tl                    rcd | D             }fd|D             }t           j                            |             g          }t           j        7                    ||          S t           j                            |fd|j8        D                       }t          | tr          j:                  r"t          | j        tv                    r| j        }nLt          | tx                    rt{          |           }n't          | t|          t~          tv          f          r| }n|S t           j        @                    ||          S )zReturns a mypy type object representing the type of ``runtime``.

    Returns None if we can't find something that works.

    Nr   mypy.types.AnyTypec                 h    t           j                            t           j        j        j                  S r7  )r   r   rz  	TypeOfAnyunannotatedr!   r&   r$   anytypez/get_mypy_type_of_runtime_value.<locals>.anytypea  s     z!!$*"6"BCCCr&   builtinsfunctionT)rF  fallbackis_ellipsis_argsFr5  r   mypy.types.Instancec                |   |                      dd          }t          |d         |d                   }t          |t          j                  sJ t
          j                            t
          j        j        j	                  }t
          j        
                    ||gt          |j        j                  z            S )NrU   ru   )maxsplitr   )rsplitr  rh   r   TypeInfor   r   rz  r  special_formr"  rB   defn	type_vars)r5  partsr   any_types       r$   _named_typez3get_mypy_type_of_runtime_value.<locals>._named_type  s    KKaK00E)%(E!H==DdEN33333z))$**>*KLLH:&&thZ#di>Q:R:R-RSSSr&   c                ,    g | ]}t          |          S r!   )r  )r   vs     r$   r  z2get_mypy_type_of_runtime_value.<locals>.<listcomp>  s!    MMM8;;MMMr&   c                ,    g | ]}||n	             S r7  r!   )r   ir  s     r$   r  z2get_mypy_type_of_runtime_value.<locals>.<listcomp>  s'    MMMq}!!''))MMMr&   c                $    g | ]}             S r!   r!   )r   r<  r  s     r$   r  z2get_mypy_type_of_runtime_value.<locals>.<listcomp>  s    .V.V.VQwwyy.V.V.Vr&   )r   r  )r   r  )r5  r   r   r  )Ar   r   NoneTyperh   rA  r  r  r  r  r|   r   r   r   r  r"  r]   r  r  r  rt  r_   ru  rv  r5  r}  r~  r  r  r  r  r  r  r  r  r  r  r  rE  r!  rF  r  TypeTypeitemrV   r  r*   r)   r  type_object_type	checkexpris_type_type_context	erasetypeerase_typevarsr  r7  rv  r  r  r  r   bytesr   rf   r>   r  )r   r|  r  	type_infor  r  	arg_types	arg_kinds	arg_namesr  
no_defaultskip_type_object_typer  resultoptional_itemsr   r   r  s                    @r$   r  r  S  s    z""$$$'8$$ tD D D D 		U68H%Jab  ,
 J''###N:.3	)U^44444:&&y7799+>>*733	 	%III +2244 ) )  +++  H(9(IIIDDsx   ![G,=,CC
8w0@@@$$j%SU]]emTTTTX!2!HHH$$j%SU]]emTTTTX!2!???$$
%[U__H[\\\\X!2!AAA$$U^4444X!2!>>>$$U_5555((#)& !GGII.I9ItIz&&WYY! ' 
 
 	
 " - z11,??lDJ$;<< 	-,/1GHH -(,%lDJ$788 	-,+TZ-CDD -(,%'4   )> 	T 	T 	T 	T +7+=w?OPP	i00 	-1F\229kJJF~22<@@ ? 66v>>M 'tG}}'?gAWXXIt)UY'' ~i00 t'5!! 5MMWMMMMMMMnMMM:&&y7799+>>z##E8444z""9.V.V.V.V)BU.V.V.VWWH '49%% *W\3*G*G 	GU	#	# ,W55	GdC-	.	. :!!!AAAr&   zdict[str, nodes.MypyFile]
_all_stubsr   optionsr   find_submodulesc           	     T   t           j                                        }t           j                            g ||          }t           j                            |d|          }g g }| D ]1}                    |           |s`|                    |          }t          |t                    sE|                    t           j        
                    ||d                     z|                    |          }	|                    |	                               fd|	D                        	 t          |          }
                    fdt          j        |
j        |
j        dz             D                        # t$          $ r  t&          $ r Y /w xY w|r	 t           j                            ||          }n/# t           j        j        $ r}t-          d|           |d}~ww xY w|j        r*t-          dd	                    |j                  z             |j        aS )
a  Uses mypy to construct stub objects for the given modules.

    This sets global state that ``get_stub`` can access.

    Returns all modules we might want to check. If ``find_submodules`` is False, this is equal
    to ``modules``.

    :param modules: List of modules to build stubs for.
    :param options: Mypy options for finding and building stubs.
    :param find_submodules: Whether to attempt to find submodules of the given modules as well.

    N)fscacher  c              3  8   K   | ]}|j         v|j         V  d S r7  r  )r   r  all_moduless     r$   r9  zbuild_stubs.<locals>.<genexpr>  s2      ^^A!(R]B]B]qxB]B]B]B]^^r&   c              3  8   K   | ]}|j         v|j         V  d S r7  r  )r   r   r  s     r$   r9  zbuild_stubs.<locals>.<genexpr>  s>       # #v[00 F0000# #r&   rU   )sourcesr  zfailed mypy compile:
zmypy build errors:
rx   )r   builddefault_data_dirmodulefindercompute_search_pathsFindModuleCacher  find_modulerh   r   BuildSourcefind_modules_recursiveextendr   pkgutilwalk_packagesr  r)   r   r   errorsCompileErrorrE   rZ   filesr  )r   r  r	  data_dirsearch_pathfind_module_cacher  r  module_pathfound_sourcesr   resr   r  s                @r$   build_stubsr%    s|    z**,,H#88WhOOK)99T7 :   KG  6""" 	+77??Kk3// NN4,88fdSSTTTT-DDVLLMNN=)))^^^^^^^^^^
.v66"" # # # #$273CWEUX[E[\\# # #    
 %         		G*""7G"DDCC{' 	G 	G 	G!">1">">??QF	G: 	R!"8499SZ;P;P"PQQQ Y
s+   /AFFF!G G-G((G-nodes.MypyFile | Nonec                6    t                               |           S )z?Returns a stub object for the given module, if we've built one.)r  r   r  s    r$   r|   r|     s    >>&!!!r&   custom_typeshed_dirrR   r  tuple[int, int] | Nonec                8   t           j                            |           t          j        dd         dfd}| rt          |           }n.t          t           j                                                  d	z  }|d
z  }t                      }|	                    d          D ]r}|j
        dk    r|j        }d                    |                    |          j        dd         |j
        fz             } ||          r|                    |           s|S )zJReturns a list of stdlib modules in typeshed (for current Python version).Nr   r  r  r   r   rf   c                    J |                      d          }t          t          |          dd          D ]@}d                    |d |                   }|v r|         \  }}|k    o	|d u p|k    c S AdS )NrU   r   r   F)r   rangerB   rZ   )r  r  r  current_moduleminvermaxverstdlib_py_versionsr  s         r$   exists_in_versionz6get_typeshed_stdlib_modules.<locals>.exists_in_version&  s    '''S!!s5zz1b)) 	] 	]A XXeBQBi00N!333!3N!C#v-\6T>3[\U[E[\\\ 4 ur&   typeshedstdlibz*.pyire   rU   r   )r  r   r   rf   )r   r  load_stdlib_py_versionsr   r  r
   r  r  r   rglobstemparentrZ   relative_tor  r  )	r(  r  r1  typeshed_dir
stdlib_dirr   r}   r  r0  s	    `      @r$   get_typeshed_stdlib_modulesr;    s6    *BBCVWW'!,        H/00DJ7799::ZG(JG  ))    9
"";D$**:66<SbSATYLPQQV$$ 	 KKNr&   c                    t           j        dk    rt           j        } nt          t           j                  } t          t                    }t          j                    D ]K}t          |j	        t          j        j                  r%||j	                                     |j                   L|                                D ]<\  }}dt!          |j                  j        vrddh|z  r|                     |           =t                      }| D ]}|t(          v r	 t+          |          }|                    |           n# t,          $ r Y >w xY w	 |j        }|j        }	n# t2          $ r Y ^w xY wt          j        ||	dz             D ]s}
|
j        }|                    d          s|                    d          r4	 t+          |           |                    |           Z# t:          $ r  t<          $ r Y pw xY w|S )z0Return all importable stdlib modules at runtime.ro  zsite-packages_queuequeuerU   z	.__main__)zidlelib.ztest.)r   r  stdlib_module_namesr   builtin_module_namesr   r  iter_modulesrh   module_finderr   	machinery
FileFinderr  r5  r   r
   r}   r  r   ANNOYING_STDLIB_MODULESr   ImportErrorr  r)   rM  r  rI  rH  r   r   )all_stdlib_modulesmodules_by_finderr   findermodule_groupimportable_stdlib_modulesr   r   runtime_pathr~  	submodulesubmodule_names               r$   get_importable_stdlib_modulesrO  @  sp    7"" 4 !9::S^_bScSc%'' 	? 	?A!/9+>+IJJ ?!!/266qv>>>$5$;$;$=$= 	8 	8 FLtFK'8'8'>>> w',6 ? #)),777*-%%) /> />111	7*;77G &))+6666  	 	 	H	
	"+L"+LL 	 	 	H	 !.|\C=OPP 	> 	>I&^N &&{33 ~7P7P%8 8  
>$^444 *--n==== %    !   5	>> %$s6   D==
E
	E
E
E*)E*:GG65G6allowlist_filec              #     K   dd}t          |           5 }|D ]} ||          }|r|V  	 d d d            d S # 1 swxY w Y   d S )Nr  r   r   c                    	 | d |                      d                                                   S # t          $ r |                                 cY S w xY w)N#)r  r   r  )r  s    r$   strip_commentsz-get_allowlist_entries.<locals>.strip_comments  s[    	^qwws||^$**,,, 	 	 	7799	s   .1 AA)r  r   r   r   )r   )rP  rT  fr{   r   s        r$   get_allowlist_entriesrV    s          
n		  	 	D"N4((E 	                 s   ;??c                      e Zd ZU ded<   ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   ded<   dS )
_ArgumentsrM   r   rf   ro   ignore_missing_stubignore_positional_onlyignore_disjoint_bases	allowlistgenerate_allowlistignore_unused_allowlistrR   mypy_config_filer(  check_typeshedr   versionshow_tracebackpdbN)r)   r*   r+   r  r!   r&   r$   rX  rX    s         MMM    !!!!    ####LLLIIIIIr&   rX  >   thisr   antigravity_ios_supportrE  use_builtins_fixturesc                \   d | j         D             }d |D             }t                      }| j        }| j        re| j        r"t	          t          ddd          d           dS t          | j                  }t                      }t          ||z  t          z
            }|s"t	          t          ddd          d	           dS t                      }d
|_        | j        |_        |j        r)t          j                            |j                  |_        | j        |_        ||_        | j        |_        | j        |_        |j        r0d#d}	t-          ||	|j        t.          j        t.          j                   d$d}
d%d}|                    |
           |                    |
|           |                                 	 t;          ||| j                   }n;# t<          $ r.}t	          t          ddd          d|            Y d}~dS d}~ww xY wd}d}|D ]}t?          |          D ]}| j         r|!                                r| j"        r|#                                r:| j$        r|%                                rV|j&        |v rd||j&        <   jd
}|D ]+}||         '                    |j&                  r	d||<   d} n,|rd}| j(        r|)                    |j&                   tU          |+                    | j,                             |dz  }| j-        sA|D ]>}||         s4||         '                    d          sd}|dz  }t	          d|            ?| j(        r$t          |          D ]}t	          |           d}n| j,        s|rTt	          t          d| dt]          |           dt_          |           dt]          |           d 	dd                     n?t	          t          d!t_          |           dt]          |           d"d                     |S )&z.This is stubtest! It's time to test the stubs!c                8    i | ]}t          |          D ]}|d S r   )rV  )r   rP  r   s      r$   
<dictcomp>ztest_stubs.<locals>.<dictcomp>  sI       *>::   	u   r&   c                8    i | ]}|t          j        |          S r!   )rl  compile)r   r   s     r$   rj  ztest_stubs.<locals>.<dictcomp>  s$    IIIe
5 1 1IIIr&   error:rv   Trw   z7cannot pass both --check-typeshed and a list of modulesru   zno modules to checkFr   rS   c                     d S r7  r!   r!   r&   r$   set_strict_flagsz$test_stubs.<locals>.set_strict_flags  s    Fr&   r  r   typing.NoReturnc                n    t          t          ddd          |            t          j        d           d S )Nrm  rv   Trw   ru   )printr<   r   exitr  s    r$   error_callbackz"test_stubs.<locals>.error_callback  s2    fXU666<<<r&   c                F    t          t          ddd          |            d S )Nzwarning:yellowTrw   )rr  r<   rt  s    r$   warning_callbackz$test_stubs.<locals>.warning_callback  s'    fZxd;;;SAAAAAr&   )ru  )ru  rx  )r	  znot checking stubs due to Nr   )ro   rs   znote: unused allowlist entry zFound z errorz
 (checked z moduler  zSuccess: no issues found in greenr  )r  r   r   rp  )r  r   r   rS   )0r\  r   r   r`  rr  r<   r;  r(  rO  r   rE  r   incrementalr   r}   abspathabs_custom_typeshed_dirr_  config_filerg  rb  rc  r   r   stdoutstderrprocess_error_codesprocess_incomplete_featuresprocess_strict_bytesr%  rE   r   rY  ri   rZ  rl   r[  rn   r[   rs  r]  r  
safe_printr   ro   r^  r   rB   )rj  rg  r\  allowlist_regexesgenerated_allowlistr   typeshed_modulesruntime_modulesr  ro  ru  rx  stubtest_failure	exit_codeerror_countr  erroris_allowlistedr   r   s                       r$   
test_stubsr    s    "n  I
 JIyIII %%lG 	Y< 	xu4888I   16t7OPP799*_<@WWXX fXU6668MNNNqiiGG"&":G" W*,'//':U*V*V'/G$9G!!0G(GK b	 	 	 	 	'#3W5H#*VYV`aaa   B B B B ~>>>''%8H (      """gwDDW@WXXX   85t444;)9;;	
 	
 	
 qqqqq IK   (( 	 	E' E,A,A,C,C * u/O/O/Q/Q ) e.L.L.N.N  I--/3	%+,"N  $Q'11%2CDD #'IaL%)NE   I& #''(9:::u,,T\,BBCCC1KK5	: ' ; 	; 	;A Q< ;(9!(<(F(Fr(J(J ;	q 9a99:::  +,, 	 	A!HHHH		\  	K[ K K0E0E K K!$WK K6>w6G6GK K K	      [3w<<[[QXHYHY[[!     s    G 
H##HHtextrS   c                    t           j        j        }|,|                     |d                              |d          } t          |            dS )zBPrint a text replacing chars not representable in stdout encoding.Nr  )r  )r   r~  encodingencodedecoderr  )r  out_encodings     r$   r  r  9	  sN    
 :&L {{<	{::AA,W`Aaa	$KKKKKr&   c                B   t          j        d          }|                    ddd           |                    ddd	
           |                    ddd
           |                    ddd
           |                    ddd
           |                    ddddg d           |                    dddd
           |                    dddd
           |                    ddd           |                    d d!d"           |                    d#dd$
           |                    d%d&d't          j        j        z   (           |                    d)dd*
           |                    d+d,dd-
           |                    | t                      .          S )/Nz8Compares stubs to objects introspected from the runtime.)rd   r   r   zModules to test)nargshelpz	--concise
store_truez8Makes stubtest's output more concise, one line per error)actionr  z--ignore-missing-stubzAIgnore errors for stub missing things that are present at runtimez--ignore-positional-onlyzLIgnore errors for whether an argument should or shouldn't be positional-onlyz--ignore-disjoint-basesz1Disable checks for PEP 800 @disjoint_base classesz--allowlistz--whitelistr  FILEzUse file as an allowlist. Can be passed multiple times to combine multiple allowlists. Allowlists can be created with --generate-allowlist. Allowlists support regular expressions.)r  metavarr}  r  z--generate-allowlistz--generate-whitelistz:Print an allowlist (to stdout) to be used with --allowlistz--ignore-unused-allowlistz--ignore-unused-whitelistzIgnore unused allowlist entriesz--mypy-config-filezFUse specified mypy config file to determine mypy plugins and mypy path)r  r  z--custom-typeshed-dirDIRzUse the custom typeshed in DIRz--check-typeshedz$Check all stdlib modules in typeshedz	--versionra  z	%(prog)s )r  ra  z--pdbzInvoke pdb on fatal errorz--show-tracebackz--tbzShow traceback on fatal error)	namespace)argparseArgumentParseradd_argumentr   ra  r  
parse_argsrX  )rj  parsers     r$   parse_optionsr  F	  sk   $N  F 	3DEEE
G    
 P    
 "[     !@    
 +     I	     ##.	     V    
 5U     <6\     I{T\=U/U     ;VWWW
F<>]     TZ\\:::r&   c                     t           j                            d           t          t	          t
          j        dd                              S )Nstubtestru   )r   utilcheck_python_versionr  r  r   argvr!   r&   r$   mainr  	  s8    I"":...mCHQRRL11222r&   r   )r5   r   r6   r   r   r   )r5   r   r=   r>   r   r   )r   r   r   r   )r   r   r   r   )r   rO   r   rQ   rL   rM   r   r   )rL   rM   r   r   r   r   r   r   )r   r   r   r   )r   r   r   r   rL   rM   r   r   )r   r   r   r   rL   rM   r   r   )r  r  r  r  r   rf   )r  r  r   rf   )r   r   r   r  rL   rM   r   r   )
r   r   r   r   rL   rM   r&  rf   r   r   )
r   r   r   r0  rL   rM   r/  rf   r   r   )rL   rM   r   rQ   )
r   rW  r   r   rU  rQ   rL   rM   r   rX  )rd  re  rf  rg  rh  r   r   rX  )rd  re  rf  rg  r   rX  )r5  r   rj  r  r   r  r   )
r   r  r   r  rh  r   r  rf   r   rX  )r  rg  r   rf   )r   r  r   rQ   rL   rM   r   r   )r   r   r   rQ   rL   rM   r   r   )r   r  r   rQ   rL   rM   r   r   )r   r  r   rQ   rL   rM   r   r   )r   r-  r   rQ   rL   rM   r   r   )r   r1  r   rQ   rL   rM   r   r   )r   r   r   rf   )r   r?  r   r   r   rX  )r   rI  r   r   r   rX  )r   rI  r   r   rU  rQ   r   rX  )rS  rT  r   rU  )r   r?  r   rQ   rL   rM   r   r   )r   rj  r   rQ   rL   rM   r   r   )r5  r   r   rf   )r   r  r   rf   )r   r   r   r  )r  r  rY   rf   r   r   )r  r  r  r  r   rf   )r  r   r  r   r   r  r7  )r   r   r|  r  r   r  )r   rM   r  r   r	  rf   r   rM   )r  r   r   r&  )r(  rR   r  r)  r   r   )r   r   )rP  r   r   rX  )rj  rX  rg  rf   r   r>   )r  r   r   rS   )rj  rM   r   rX  )r   r>   )r,   
__future__r   r  collections.abcrw  rc  r  rC  r   importlib.machineryr_   r   r  rl  structr   r   r   r   r5  r6  r   r   r   r   AbstractSet
contextlibr   r   r	   pathlibr
   r   r   r   r   r   r   r   
mypy.buildr   mypy.checkexprmypy.checkmembermypy.erasetypemypy.modulefinder
mypy.nodes
mypy.state
mypy.typesmypy.versionr   mypy.config_parserr   mypy.evalexprr   r   mypy.optionsr   	mypy.utilr   r   r   r   r   r    r  r-   r.   r0   r3   r~  r  r4   r<   rC   r   rE   rH   r   r   r   r   	lru_cacher   registerr   r   r	  calcsizer  r  r  r%  r-  r  rS  rV  rc  rx  r  r  r  r  r  re  r  r  r  r&  OverloadedFuncDefr,  TypeVarExprr0  ParamSpecExprr:  r>  rH  r  r  r  r)  ri  	TypeAliasr  	frozensetr   r8  r   r  r  r]   ra   r  r  r  r  r%  r|   r;  rO  rV  rX  rE  r  r  r  r  r)   rs  r!   r&   r$   <module>r     s
     # " " " " "                     				  				   



            # # # # # # 8 8 8 8 8 8 8 8 7 7 7 7 7 7 7 7 $ $ $ $ $ $       6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6                                           0 0 0 0 0 0 6 6 6 6 6 6 6 6             W W W W W W W W W W W W            GCLL,1!W*,= = = = =# # # # # # # # )** * * * * #N3:sz5AA
 A A A A/ / / /   	 	 	 	 	i 	 	 	n n n n n n n nl	 	 	 	5 5 5 5p G G G G   :    "   ]L ]L ]L ! ]L@$
 $
 $
 $
N "&/#&&* * * *,% % % %5 5 5 5p# # # #L    "eS eS eS eS eS ! eSP
 
 
 
: : : ::" " " "JD D D DN   t t t t t
 t t tv ).	uW uW uW uW uWp      ?
 ?
 ?
 ! ?
D F F F F ( ( ( (V ())A
 A
 A
 *)A
H "##   $# $%%   &% 
 
 
 
T T T T:R R R RI I I I5 5 5 5p !!6 6 6 "!6> !!Dc Dc Dc "!DcX !*	  ! !     . "+9 9 9;" ;"  ; ; ; ;|8 8 8 8    B B B B_ _ _ _D< < < <5 5 5 5.& & & & :>~B ~B ~B ~B ~BL )+
 * * * *: : : : :z" " " " MQ    DJ% J% J% J%Z          $ "++^+^+^!_!_  _ _ _ _F F F F FR
 
 
 
E; E; E; E;P3 3 3 3
 zCHTTVV r&   