ML i UdZddlmZddlZddlZddlZddlmZmZm Z m Z ddl m Z ddl mZddlmZmZmZmZddlZddlmZmZdd lmZdd lmZdd lmZmZm Z m!Z!m"Z"dd l#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;mm?Z?m@Z@ddlAmBZBddlCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLddlmMZMddlNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkddllmmZmddlnmoZompZphdZqderd<e'de&de$de%de(de)diZsderd<ddd d!d!d"d#d$d%d& Ztderd'<hd(Zuderd)<d*Zvd*ZwGd+d,ZxdXd-Zy dYd.Zz dZ d[d0Z{d\d1Z|Gd2d3emZ}d]d4Z~d^d5Z d_ d`d6Z d_ d`d7Zd/d8dad9Zdbd:ZdZdcd;Zdbd<Zddd=Zded>Z df dgd?Z dZ dhd@ZdidAZdjdBZdidCZdkdDZdldEZdmdFZdndGZdodHZdpdIZdJdKiZdLerdM<dqdNZdrdOZdsdPZ dtdQZ dudRZ dtdSZ dvdTZd/dUdwdVZdxdWZy)yaFacilities for generating error messages during type checking. Don't add any non-trivial message construction logic to the type checker, as it can compromise clarity and make messages less consistent. Add such logic to this module instead. Literal messages, including those with format args, should be defined as constants in mypy.message_registry. Historically we tried to avoid all message string literals in the type checker but we are moving away from this convention. ) annotationsN) CollectionIterableIteratorSequence)contextmanager)dedent)AnyCallableFinalcast) errorcodesmessage_registry) erase_type) ErrorCode) ErrorInfoErrors ErrorWatcherIterationDependentErrorsIterationErrorWatcher) ARG_NAMED ARG_NAMED_OPTARG_OPTARG_POSARG_STAR ARG_STAR2 CONTRAVARIANT COVARIANTSYMBOL_FUNCBASE_TYPESArgKindCallExprClassDefContext ExpressionFuncDef IndexExprMypyFileNameExpr ReturnStmtStrExpr SymbolNode SymbolTableTypeInfoVar get_func_defreverse_builtin_aliases) op_methodsop_methods_to_symbols)Options) IS_CLASS_OR_STATIC IS_CLASSVARIS_EXPLICIT_SETTER IS_SETTABLEIS_VAR find_memberget_member_flags is_same_type is_subtype)separate_union_literals)AnyType CallableType DeletedType FunctionLikeInstance LiteralTypeNoneType Overloaded Parameters ParamSpecType PartialType ProperType TupleTypeType TypeAliasType TypedDictType TypeOfAnyTypeStrVisitorTypeTypeTypeVarLikeTypeTypeVarTupleType TypeVarType UnboundTypeUninhabitedType UnionType UnpackTypeflatten_nested_unionsget_proper_typeget_proper_types)TypeTraverserVisitor)plural_sunmangle> typing.Any typing.Set typing.Dict typing.List typing.cast typing.Tuple typing.Uniontyping.TypeVartyping.Callabletyping.Iteratortyping.Optionaltyping.Iterabler TYPES_FOR_UNIMPORTED_HINTSArg DefaultArgNamedArgDefaultNamedArgVarArgKwArgARG_CONSTRUCTOR_NAMESzset.pyiz tuple.pyizbool.pyiz exception.pyizisinstancelist.pyiz property.pyizclassmethod.pyiztyping-medium.pyi) z builtins.setbuiltins.tuplez builtins.boolzbuiltins.Exceptionzbuiltins.BaseExceptionzbuiltins.isinstancezbuiltins.propertyzbuiltins.classmethodtyping._SpecialFormSUGGESTED_TEST_FIXTURES> numbers.Realnumbers.Numbernumbers.Complexnumbers.Integralnumbers.RationalUNSUPPORTED_NUMBERS_TYPES c eZdZUdZded<ded<ded<ddZd d d d d  dd Zdd ZeddZ ddZ ddZ ddddddd ddZ dddd ddZ ddddd ddZ ddd ddZ d ddZej$d ddZddZddZdd Z dd!Z dd"Z d dd#Z dd$Zdd%Z dd&Zdd'Zdd(Z dd)Zdd*Z dd+Z!dd, dd-Z" dd.Z#dd/Z$dd0Z%dd1Z&dd2Z'dd dd3Z( dd4Z)dd5Z*dd6Z+dd7Z,dd8Z- dd9Z. dd:Z/ dd;Z0dd d< dd=Z1 dd>Z2dd?Z3 dd@Z4ddAZ5 ddBZ6 ddCZ7ddDZ8ddEZ9ddFZ:ddGZ;ddHZddKZ?ddLZ@ddMZAddNZBdddOZCdddPZDddQZEddRZFddSZGddTZHddUZI ddVZJ ddWZK ddXZL ddYZMddZZNdd[ZOdd\ZP dd]ZQdd^ZRdd_ZSdd`ZTddaZUddbZVddcZW dddZXddeZYddfZZ ddgZ[ ddhZ\ddiZ]ddjZ^ddkZ_ddlZ`ddmZa ddnZbddoZcddpZdddqZeddrZf ddsZgddtZhdduZiddvZjddwZkddxZlddyZm d ddzZndd{Zodd|Zpdd}Zq dd~ZrddZs d ddZtddZu ddZv ddZwddZxddZyddZzddZ{ddZ|ddZ} ddZ~ddZddZ ddZ ddZ ddZddZddZddZd dZd dZd dZ d dZ d dZ d dZd d d ddZdd ddZ d ddZddZ ddZddZddZddZddZddZy(MessageBuilderaHelper class for reporting type checker error messages with parameters. The methods of this class need to be provided with the context within a file; the errors member manages the wider context. IDEA: Support a 'verbose mode' that includes full information about types in error messages and that may otherwise produce more detailed error messages. rerrorsdict[str, MypyFile]modulesz list[bool]_disable_type_namescP||_|j|_||_g|_yN)r~optionsrr)selfr~rs S/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mypy/messages.py__init__zMessageBuilder.__init__s# ~~  #% TF filter_errorssave_filtered_errorsfilter_deprecatedfilter_revealed_typec6t|j||||S)Nr)rr~)rrrrrs rrzMessageBuilder.filter_errorss$ KK'!5/!5   rcH|D]}|jj|y)z'Add errors in messages to this builder.N)r~add_error_info)rr~infos r add_errorszMessageBuilder.add_errorss# -D KK & &t , -rc#K|jjd d|jjy#|jjwxYww)NT)rappendpoprs rdisable_type_namesz!MessageBuilder.disable_type_namessF   ''- +   $ $ ( ( *D $ $ ( ( *sA>AAAcTt|jdkDxr|jdS)Nr)lenrrs rare_type_names_disabledz&MessageBuilder.are_type_names_disableds(4++,q0QT5M5Mb5QQrc6|jjS)zShould we generate simple/fast error messages? If errors aren't shown to the user, we don't want to waste cycles producing complex error messages. )r~prefer_simple_messagesrs rrz%MessageBuilder.prefer_simple_messagess {{1133rNr)codefileoriginoffsetsecondary_context parent_errorc :dd} | | |} n | | |} nd} | | Jtj| | |} |jj|r |jnd|r |j nd||||| |r |j nd|r |jnd||  S)zReport an error or note (unless disabled). Note that context controls where error is reported, while origin controls where # type: ignore comments have effect. ct|ttfr#t|j|jdzSt|t s |jgSt|j|j xs |jdzS)a`This determines where a type: ignore for a given context has effect. Current logic is a bit tricky, to keep as much backwards compatibility as possible. We may reconsider this to always be a single line (or otherwise simplify it) when we drop Python 3.7. TODO: address this in follow up PR ) isinstancer"r%rangeliner$end_line)ctxs rspan_from_contextz0MessageBuilder.report..span_from_contextse#'23SXXsxx!|44Z0z!SXX (@A'EFFrNr)severityrr origin_spanr end_columnrr)rr#returnz Iterable[int]) itertoolschainr~reportrcolumnrr) rmsgcontextrrrrrrrrrs rrzMessageBuilder.reports& G"  +F3K  +G4KK  (* **#//+7HIZ7[\K{{!!#GLL%GNN2 #)0W%%b-4w))"%"  rrrrc0|j||d|||S)z*Report an error message (unless disabled).errorrr)rrrrrrs rfailzMessageBuilder.fail%s({{ '4K\  r)rrrc 8|j||d|||||| y)z Report a note (unless disabled).note)rrrrrrNr) rrrrrrrrrs rrzMessageBuilder.note3s0   /%  r)rc ^|jD]}|j||d||||y)z?Report as many notes as lines in the message (unless disabled).r)rrrrN) splitlinesr)rmessagesrrrrrrs rnote_multilinezMessageBuilder.note_multilineLsB&&( C KK"3   rc t|}t|}t|tr2|jj |r|j d|d|y|dk(rJ|j dt ||jd|tjtjS|tjvrGtjD]/\}}||k(s |j|||tjcSy|dk(rJ|j d t ||jd|tjtjS|d k(rJ|j d t ||jd|tjtjS|d k(rJ|j d t ||jd|tjtjS|dk(rt|trF|jr6|j dj!t ||j|y|j dt ||jd|tj"tj"S|dk(rU|j dj!t ||j|tj"tj"S|dk(rt|trK|jj$dk(r2|j d|tjtjS|j t&j(j!t ||j|tjtjSd}|dk(rd}n|dk(rd}|j+sd} t|tr|jj,rr|U||vrQ||j.sB|j t ||jdd|d |tj0d} nt3|jj,j5} |3| |jD chc]\} } | j.s| c} } z} | j7|t8j;|gD cgc] } | | vs|  }} |j=t?|| d!"|dk(r|dgk(rg}|rT|j d#j!t ||j|tA|d$||tj0d} | sG|j d%j!t ||j|||tj0tj0St|tBrtE|||j&\}}|d'k(rtGd(|jDrd)}|j d*j!|||||tjHtjHSt|tJrt|jL}t|tBrvtE|||j&\}}t ||j}|j d+j!||||||tjHtjHSy|j d%j!t ||j|||tj0tj0Scc} } wcc} w),a0Report a missing or non-accessible member. original_type is the top-level type on which the error occurred. typ is the actual type that is missing the member. These can be different, e.g., in a union, original_type will be the union and typ will be the specific item in the union that does not have the member attribute. 'module_symbol_table' is passed to this function if the type for which we are trying to get a member was originally a module. The SymbolTable allows us to look up and suggests attributes of the module since they are not directly available on original_type If member corresponds to an operator, use the corresponding operator name in the messages. Return the error code that was produced, if any. zMember "z" is not assignableN __contains__z'Unsupported right operand type for in ()r__neg__z&Unsupported operand type for unary - (__pos__z&Unsupported operand type for unary + ( __invert__z Unsupported operand type for ~ ( __getitem__z,The type {} is not generic and not indexablezValue of type z is not indexable __setitem__z.Unsupported target for indexed assignment ({})__call__zbuiltins.functionz$Cannot call function of unknown type__iter__z (not iterable) __aiter__z (not async iterable)FT module_namesz' does not explicitly export attribute ""nz%{} has no attribute "{}"; maybe {}?{}orz{} has no attribute "{}"{}rz"object"c3@K|]}t|tk(ywr)typerD).0items r z-MessageBuilder.has_no_attr..s4/3DJ(*4sz"None"z%Item {} of {} has no attribute "{}"{}zIItem {} of the upper bound {} of type variable {} has no attribute "{}"{})'rYrrBrhas_readable_memberr format_typercodesOPERATORr1valuesitemsunsupported_left_operandrA is_type_objformatINDEXfullnamer NOT_CALLABLErnames module_public ATTR_DEFINEDsetkeysdiscardCOMMON_MISTAKESgetextend best_matches pretty_seqrVformat_type_distinctlyany UNION_ATTRrS upper_bound)r original_typetypmemberrmodule_symbol_tableopmethodextrafailed alternativeskvmmatches typ_formatorig_type_formatboundtyp_fmt bound_fmtoriginal_type_fmts r has_no_attrzMessageBuilder.has_no_attrjs0( 6 c" mX .=3E3E3Y3YZ`3a II(;> ! z((* *)..0 * FV#11"mWM >>) *JCy II8]TXT`T`9a8bbcd^^   >> ! y II8]TXT`T`9a8bbcd^^   >> ! | # II2;}dll3[2\\]^^^   >> ! } $-6=;T;T;V BII#M4<<@   $[ %M$NN_` {{" } $ II@GG t||<[[  ;;  z !-2""++/BB @'PUP^P^ _~~% $1188]TXT`T`9ab ~~%E#);&///1mX6=;M;M;S;S+7"&99 3F ; I I *=$,,UYZ[\<rN from_errorrrrs r not_callablezMessageBuilder.not_callable_s? "//66{3 7UVX_`y++,,rct|xsd}|jd|d|tjt t j S)Nz (unknown)zCall to untyped function z in typed contextr) callable_namerrNO_UNTYPED_CALLr>rNr)rcalleernames runtyped_function_callz$MessageBuilder.untyped_function_callcsNV$3  'v-> ? &&  y++,,rc t|}d} t|} | | } |t||j} n t | } | j dr4|j ||j|dz | |tjS| j dr|dk(r4|j ||j|dz | |tjSt||j|dz |j\} }d| d |d }tjj|}|j|j||j S| j d rt#j$D]\}}|d |d dzfD]q}| j d|ds|dk(s||k7r(|j'||| |tj(ccS|j'|| ||tj(ccSd| d} d}tj*}g}| dk(rf| dd} |dz}t||jd|j\}}dj-| j/|||}tj0}nv| dk(rYt3t|j|dz t4r/| dd} |dz}t7t4|j$\}}t7t4|j|j$\}}t9||r-t||j}t||j}nt|||j\}}t9||r-t||j}t||j} nt|||j\}} dj-| j/||||| }tj:}n| dk(rSt||j|dz |j\}} dj-|dz || }tj:}n| dk(rJt=t>t||jd|j\}}dj-||}np| dk(rJt=t>t||jd|j\}}dj-||}n!| dk(rGt||j|dz |j\}}dj-|dk(rd nd!||}n| d"k(r}%t3|tbst3|%tbs%te|||%}tg|||%}@t|}t3|tPrtjh}ntjj}|j|||}&|r|D]}'|jm|'|||&S#tB$r|jd}!YwxYw)+aReport an error about an incompatible argument type. The argument type is arg_type, argument number is n and the callee type is 'callee'. If the callee represents a method that corresponds to an operator, use the corresponding operator name in the messages. Return the error code that used for the argument (multiple error codes are possible). rNz"__getitem__" ofrrz"__setitem__" ofrz (expression has type z, target has type rz"____rrz" ofinzto  zrrz0{} item {} has incompatible type {}; expected {}z9{} entry {} has incompatible type {}: {}; expected {}: {}zzDList comprehension has incompatible type List[{}]; expected List[{}]zzASet comprehension has incompatible type Set[{}]; expected Set[{}]zzT{} expression in dictionary comprehension has incompatible type {}; expected type {}KeyValuez z4Generator has incompatible item type {}; expected {}zArgument has incompatible typeT)barer***z3Value of "{}" has incompatible type {}; expected {}z3Argument {} {}has incompatible type {}; expected {})7rYrrr extract_type startswithinvalid_index_type arg_typesrrrr INCOMPATIBLE_TYPES_IN_ASSIGNMENTwith_additional_msgrvaluerr2rrrMISCrtitle LIST_ITEMrrJr r< DICT_ITEMmap strip_quotesr IndexErrorrrrr!r arg_namesrM arg_kindsr&indexr*quote_type_stringrVlistrZrBappend_invariance_notesappend_numbers_notesTYPEDDICT_ITEMARG_TYPEr)(rrrrarg_typearg_kind object_typer outer_contexttarget callee_namerbase arg_type_strcallee_type_strr error_msgrrvariantrrnotesactual_type_strexpected_type_strkey_type value_typeexpected_key_typeexpected_value_type key_type_strexpected_key_type_strvalue_type_strexpected_value_type_str expected_type arg_labelarg_nameexpected_typesrrnote_msgs( rincompatible_argumentz$MessageBuilder.incompatible_argumentlsl*#8,#F+  "D&"; =#D)12..f..q1u5tW5;;/!34622 &"2"21q5"94u{{35K &"2"21q5"94<<51L/1>PQ`Paabc)II]]^bc 99Y__gINN9SS'"7"="="? "JFB#)56!":+=#= "??Qwit+<=!TzW->'+'E'E$&$enn(F("!"(,'E'E$&henn(F("!" " "4&]Fzz ( "q$D FA1G&**1-t||2 .O.EKK a2CC??D H $ F,,QU3 4i* q$D FA#' 8#<#B#B Hj59)VEUEUVWEX5Y5_5_ 2 2($56*8T\\B (34Et||(T%6L/73 3*&9:!,Z!F*56I4<<*X':P 3T\\;7 7NTT %' C??D H $6L&**1q514<<7 3N3QWWA~'>C??D 2 214&x1A1A!1Ddll[2 .O.Y__!2C1 114&x1A1A!1Ddll[2 .O.V\\!2C8 81G&**1q514<<2 .O.#fa1fU'?DUV M )1G&**1-t||2 .O.IOO!2C**,69$*$4$4QU$;M3Im$ 3/ /x'#&#5L*#',#6L F mX63}?V?V;W[\;\,66q1u=H+&'zO  )"8];S!1!122((Q/;((Q/9<%//A6H#///6L x0-dTXT`T`73L"3#$H:QImY7J!''=PVV%++11),7)*;<C PVV!),7)*;< C !0 > mY7%)-*=*=%>N&3_N,^<LD!(H5*T8:T 7x N 4UHd KL*+6K+}5++~~ #wT 2 ! 8 (G$ 7 8 "9$*$4$4R$8M9s3`%%aac@|jryt|tttt t frt|tr+|jjr|j||||t|trY|jD]J}t|}t|ts|jjs6|j||||Lt|t r@t|tr0td||d}|r|j||||jt|trF|jjr0td||d}|r|j||||j|j!||||jy)NrrT) is_operatorr)rrrBrJrMrPr?r is_protocolreport_protocol_problemsrVrrYr9 note_callrmaybe_note_concatenate_pos_args)roriginal_caller_type callee_typerrrcalls rincompatible_argument_notez)MessageBuilder.incompatible_argument_noteMso  & & (   8Y xQ]"^ +x0[5E5E5Q5Q--(+w\.+y1'--D*40D!$1dii6K6K550$l6 k< 0Z@TV^5_02FTXD3T7IZIZ[ k8 ,1A1A1M1Mz; QUVD{D' @Q@QR ,, +w 8I8I rc2t|trt|tr|js |jrg}t|j |j D]o\}}d|j |j fvr!|j |j k7s;|j H|j U|j|j q|r=ddj|zdz}|jd|j d|d||yyyyy)Nr", "zThis is likely because "z" has named arguments: z'. Consider marking them positional-onlyr) rr?from_concatenatezipformal_argumentsposrrjoinr) rrdrerrrcomissing_argumentss rrcz.MessageBuilder.maybe_note_concatenate_pos_argsrs {L 1/>%66+:V:V!E,,.0D0U0U0W )1AEE155>)66QVV#166;MLL( )$'&++e*<$FF . 5 5ofTl6SU[ \11  rc|jrd}n|td|D}|j||j}|Dcgc] }||vs| }}t |dk(rd}nd}t |} | F|rDt d|Dr2djttt|} |d| d | z }ndt|z}ndt|z}|j||tj ycc}w) NzToo few argumentsc3$K|]}|du ywr)rrs rrz3MessageBuilder.too_few_arguments..s%HAa4i%HrzMissing positional argumentzMissing positional argumentsc3$K|]}|du ywrr)rds rrz3MessageBuilder.too_few_arguments..s7T! 7Trri "z " in call to r)rsumr8min_argsrrallrnr r<r for_functionrrCALL_ARG) rrrargument_namesrnum_positional_argsarguments_leftrdiffrFargss rtoo_few_argumentsz MessageBuilder.too_few_argumentss  & & (%C  '"%%H%H"H #--.AFOOTN-I!.1HAIDI4yA~34'/K&4C7Tt7T4T{{4S 4#89D6{m<<)L,@@& V(<> C&***(];l6>RR   # #FG 4  #wrc|jrd}ndt|z}|j|||j||y)NzToo many positional arguments)rrrrrs rtoo_many_positional_argumentsz,MessageBuilder.too_many_positional_argumentss@  & & (1C1L4HHC #w **67;rcp|jryt|}|r|dvr|jd|yyy)N>clsmcsrzlLooks like the first special argument in a method is not named "self", "cls", or "mcs", maybe it is missing?)r get_first_argr)rrr first_args rrz,MessageBuilder.maybe_note_about_special_argssD  & & ( !&) *@@ II'  A9rrcd|d|z}|r|dt|ddz }|j||tjy)NzUnexpected keyword argument "rz; did you mean r?r)rrrr)rfor_funcrrrrs r(unexpected_keyword_argument_for_functionz7MessageBuilder.unexpected_keyword_argument_for_functionsK.dV15@  _Z%>$?qA AC #wU^^ 4rcPg}g}t|jD]]\}}|j|} | |j|tk7s/t ||r|j | M|j | _t||d} | st||d} |jt|||| t|j|} | rY|jJt|} | sd} |j| d|j| j|t j"yy)NrrrzCalled functionz defined here)rrr) enumerater-r8r9rr<rrrrfind_defining_moduler definitionrrpathrr) rrrrArmatching_type_argsnot_matching_type_argsi kwarg_typecallee_arg_namermodulefnames runexpected_keyword_argumentz*MessageBuilder.unexpected_keyword_arguments5 !#&v'7'78 CMAz$..q1O*v/?/?/Bh/Nh 3&--o>*11/B  Ct%71="4)?1EG 55  $ 6 &dllF; $$0 00!&)E) II''!![[^^   rc||jdjt|xsd|j||y)Nz1{} gets multiple values for keyword argument "{}"Function)rrrr8)rrr:rs rduplicate_argument_valuez'MessageBuilder.duplicate_argument_value s; ? F Ff%3V5E5Ee5L    rct|}t|tr t|nd}|xsd}|d}|j ||t j y)z.Report an error about use of an unusable type.Nrz4 does not return a value (it only ever returns None)r)rYrrArrrFUNC_RETURNS_VALUE)rrerrFrmessages rdoes_not_return_valuez$MessageBuilder.does_not_return_value(sQ%k2 4>{L4YmK0_c (jFNO '7)A)A Brcl|jd}nd|jd}|jd||y)z9Report an error about using an deleted type as an rvalue.NrrrzTrying to read deleted variablesourcerrrrss rdeleted_as_rvaluez MessageBuilder.deleted_as_rvalue0s9 :: ASZZL"A 3A37Arcn|jd}nd|jd}|jd|d|y)zReport an error about using an deleted type as an lvalue. Currently, this only occurs when trying to assign to an exception variable outside the local except: blocks. NrrrzAssignment to variablez outside except: blockrrs rdeleted_as_lvaluez MessageBuilder.deleted_as_lvalue8s> :: ASZZL"A *1#-CDgNrc.|xstj}t|}|rd|}nd}djfd|D}t |}|dk(rj d|d||n:|d k(rj d |d |||nj d |d |||j d tt |jd|||jD]+} j t| j|d|-y)N of r, c3JK|]}t|jywr)rr)rargrs rrz>MessageBuilder.no_variant_matches_arguments..Rs!VS+c4<<"@!Vs #rzAll overload variantsz require at least one argumentrrzNo overload variantz matches argument type z matches argument types zPossible overload variant:rr) r CALL_OVERLOADrrnrrrr\rpretty_callabler) roverloadr-rrrname_str arg_types_strnum_argsrs ` rno_variant_matches_argumentsz+MessageBuilder.no_variant_matches_argumentsDs9*u**X& dV}HH !VI!VV y> q= II'z1OP   ] II%hZ/F}oV   II%hZ/G W   -hs8>>7J.K-LANPW^b cNN YD IIodDLL971SWI X Yrc||kr6|dk(r|jd|d|y|jd|d|d|y||kDr|jd|d|d|yy) Nrz"Need more than 1 value to unpack (z expected)zNeed more than z values to unpack (zToo many values to unpack (z expected, z provided)r)rprovidedexpectedrs rwrong_number_values_to_unpackz,MessageBuilder.wrong_number_values_to_unpackks~ h 1} >xj SU\] %hZ/B8*JWY` II-hZ{8*JWY` !rc(|jd|y)Nz Unpacking a string is disallowedrrrs runpacking_strings_disallowedz+MessageBuilder.unpacking_strings_disallowedzs 4g>rcV|jt||jd|y)Nz object is not iterablerrr)rrrs rtype_not_iterablez MessageBuilder.type_not_iterable}s$ [t||455LMwWrc,|jd||y)Nz Maybe you forgot to use "await"?r)r)rrrs rpossible_missing_awaitz%MessageBuilder.possible_missing_awaits 4gD Irc0|jd|d|y)NzResult type of z incompatible in assignmentr)rrrs r incompatible_operator_assignmentz/MessageBuilder.incompatible_operator_assignments OB4'BCWMrc|j|||}|jd|d||tjd}|j |j ||tjy)NSignature of "" incompatible with rzGOverload variants must be defined in the same order as they are in "{}")override_targetrrOVERRIDErr)rr name_in_super supertyperrE note_templates r.overload_signature_incompatible_with_supertypez=MessageBuilder.overload_signature_incompatible_with_supertypesk%%dM9E TF"6vh ?u~~  b  -&&y17 Prc|jd|tjt|||j\}}|j d|j d|d|tj|j d|d|tjt||r#|j d |tjyy) Nz&Incompatible override of a setter typerrz (base class "z" defined the type as ,z override has type rz+ Setter types should behave contravariantly)rrrrrrrr<)rdefnrrrGrt override_strs rincompatible_setter_overridez+MessageBuilder.incompatible_setter_overrides :Du~~ V!7 sTXT`T`!a, TYYK'=hZq I   ' ~Q7ENN S c= ) IICTPUP^P^I _ *rcV|j|||}|jd|d||tj}t |||j d\} } d} d} d} |j d|| | z| t|ttfr|j||| d | zz| | n|j | || d | zz| |j d || | z| t|ttfr|j||| d | zz| | y|j | || d | zz| y) NrrrT)rr'rrz Superclass:rrr!)radd_class_or_static_decoratorrz Subclass:) rrrrrrrrr?rEpretty_callable_or_overload)rrrrroriginaloverriderEr original_strrINCLUDE_DECORATOR ALIGN_OFFSETOFFSETs r%signature_incompatible_with_supertypez4MessageBuilder.signature_incompatible_with_supertypes^%%dM9E TF"6vh ?u~~ &< h 4& " l!  -1FUZ [ hz : ;  , ,#a&j0.?" -  IIlGL1v:4M\aI b +w|f/DSX Y hz : ;  , ,#a&j0.?" -  IIlGL1v:4M\aI br)rrct|trN|r"t|}||j|||||jt ||j |||yt|t r|j|||||yy)Nr)rr)rr? pretty_class_or_static_decoratorrrrrEpretty_overload)rtprrrr decorators rrz*MessageBuilder.pretty_callable_or_overloads b, ',; /   ? " IIA^^"3   IIe^^"3   8   >>)>TM   wU^^O`  !* rc8tdj|S)Na8 It is recommended for "__eq__" to work with arbitrary objects, for example: def __eq__(self, other: object) -> bool: if not isinstance(other, {class_name}): return NotImplemented return r)r r)rrs rrz,MessageBuilder.comparison_method_example_msgs( F%    rcN|j|||}t|||j\}} |jdj ||| ||t j t|}t|}t|trt|tr|jjdk(rr|jjdk(rXt|jdk(r?|jd|k(r,|jd|d |d ||jd |yyyyyyy) Nrz=Return type {} of "{}" incompatible with return type {} in {}rztyping.AsyncIteratorztyping.Coroutinerr!zConsider declaring "z" in z without "async"zPSee https://mypy.readthedocs.io/en/stable/more_types.html#asynchronous-iterators)rrrrrrrrYrrBrrrrr) rrrrrrrrErrs r'return_type_incompatible_with_supertypez6MessageBuilder.return_type_incompatible_with_supertype(s,%%d,=yI%; h & " l K R RdL&    #8,"8, x *8X. &&*@@ &&*<<HMM"a' a H, II,TF%x?OPRY Z IIb -(=A/ +rc,d|d}||k7rd|d|}|S)Nz supertype "rz" of r)rrrrrEs rrzMessageBuilder.override_targetMs/yk+ D uVH5F rc|dk(r|jd|y||k(r|d}nd|d|}||kDr|jd|d|y|jd|d|y) Nrz8Type application targets a non-generic function or classz expectedzexpected between r z%Type application has too many types (rz$Type application has too few types (r)r min_arg_count max_arg_countactual_arg_countrrs rincompatible_type_applicationz,MessageBuilder.incompatible_type_applicationSs} A  IIPRY Z  M ) /+A#M?% GA m + II=aSBG L II, ]z#Cannot infer function type argument)rrrrr)rretvrrFs rcould_not_infer_type_argumentsz-MessageBuilder.could_not_infer_type_argumentsdst$K0  " II7 B 8U7VVZ[fZgh h& ]' II;W Erc(|jd|y)Nz&Expected iterable as variadic argumentrrs rinvalid_var_argzMessageBuilder.invalid_var_argvs :GDrct|}t|tr|r|jd|y|jdt ||j |t jy)NzKeywords must be stringsz)Argument after ** must be a mapping, not r)rYrrBrrrrr@)rr is_mappingrs rinvalid_keyword_var_argz&MessageBuilder.invalid_keyword_var_argysXc" c8 $ II0' : II;KT\\ !456aw @   4G3L3L3N //+s!H     1 $"1%&'aa  $$6$G#HI^^  $enn 53$K s C%C cr|jdj||j|j|y)NzXDefinition of "{}" in base class "{}" is incompatible with definition in base class "{}")rrr)rrbase1base2rs r#base_class_definitions_incompatiblez2MessageBuilder.base_class_definitions_incompatibles.  117ejj%**1U  rcd|jtj|tjy)Nr)rrCANNOT_ASSIGN_TO_METHODr METHOD_ASSIGNrs rcant_assign_to_methodz$MessageBuilder.cant_assign_to_methods! "::G%J]J] ^rc0|jd|d|y)Nz!Cannot assign to class variable "z" via instancerr"s rcant_assign_to_classvarz&MessageBuilder.cant_assign_to_classvars 5dV>JGTrc0|jd|d|y)NMethod "zG" is marked as an override, but no base method was found with this namerr"s rno_overridable_methodz$MessageBuilder.no_overridable_method!s" tf: :  rcV|jd|d|d|tjy)Nroz>" is not using @override but is overriding a method in class "rr)rrEXPLICIT_OVERRIDE_REQUIRED)rr base_namers r#explicit_override_decorator_missingz2MessageBuilder.explicit_override_decorator_missing(s: tf44=;a A 11  rc0|jd|d|y)Nz$Cannot override writable attribute "z" with a final oner)rrrs rfinal_cant_override_writablez+MessageBuilder.final_cant_override_writable2s 8>PQSVWrc6|jd|d|d|y)Nz!Cannot override final attribute "z&" (previously declared in base class "z")r)rrrsrs rcant_override_finalz"MessageBuilder.cant_override_final5s, 3D6:77@kE   rcT|rdnd}|jd|dt|d|y)zWarn about a prohibited assignment to a final attribute. Pass `attr_assign=True` if the assignment assigns to an attribute. attributerzCannot assign to final rrN)rr])rr attr_assignrrTs rcant_assign_to_finalz#MessageBuilder.cant_assign_to_final>s0 *{v +D6HTN3C1EsKrc(|jd|y)NzProtocol member cannot be finalrrrs rprotocol_members_cant_be_finalz-MessageBuilder.protocol_members_cant_be_finalFs 3S9rc(|jd|y)Nz+Final name must be initialized with a valuerr~s rfinal_without_valuez"MessageBuilder.final_without_valueIs ?ErcJ|jd|d|jd|y)Nz Property "z" defined in "z" is read-only)rr)rrrrs rread_only_propertyz!MessageBuilder.read_only_propertyLs# JtfN499+^LgVrc |jtjj|t |xsdt ||j |tjy)Nfunctionr) rrINCOMPATIBLE_TYPEVAR_VALUErrrrrTYPE_VAR)rrr typevar_namers rincompatible_typevar_valuez)MessageBuilder.incompatible_typevar_valueOsT  7 7 > >mF3Az;sTXT`T`Ca    rc |dk(rdnd}|dk(rdnd}d}t|||j\}} |j|j||||| |tj y) N containerelementz left operandzcontainer itemz right operandz3Non-overlapping {} check ({} type: {}, {} type: {})rr)rrrrrCOMPARISON_OVERLAP) rleftrightrTrrrrleft_typ right_typs rdangerous_comparisonz#MessageBuilder.dangerous_comparisonZsl $ 39(, (;$ G4T5$,,W) NN48Y J ))  rc6|jd|ddz|y)Nz)Overload does not consistently use the "@z" z%decorator on all function signatures.r)rrrs r)overload_inconsistently_applies_decoratorz8MessageBuilder.overload_inconsistently_applies_decoratores% 7 {" E5 6  rc|jdj|||tj|r#|j d|tjyy)NzOOverloaded function signatures {} and {} overlap with incompatible return typesrz3Flipping the order of overloads will fix this error)rrrOVERLOAD_OVERLAPr)rindex1index2 flip_noters roverloaded_signatures_overlapz,MessageBuilder.overloaded_signatures_overlapls\  ((.vv(> ''   IIE++   rcj|jdj|||tjy)Nz|Overloaded function signature {index2} will never be matched: signature {index1}'s parameter type(s) are the same or broader)rrr)rrrOVERLOAD_CANNOT_MATCH)rrrrs r%overloaded_signature_will_never_matchz4MessageBuilder.overloaded_signature_will_never_match|s@  MMSVfNTN ,,  rc6|jd|ddz|y)Nz> Zrcz|j|dt||j|tjy)Nz operand is of type r)rrrrr)rsiderrs rwarn_operand_was_from_unionz*MessageBuilder.warn_operand_was_from_unions8 f(Xt||)L(M N   rc |jdj||j|t||j|y)NzBSignatures of "{}" of "{}" and "{}" of {} are unsafely overlapping)rrrrr)r reverse_classreverse_method forward_classforward_methodrs r"operator_method_signatures_overlapz1MessageBuilder.operator_method_signatures_overlaps@ P W W""M4<<8    rc0|jd|d|y)NzForward operator "z" is not callabler)rrrs rforward_operator_not_callablez,MessageBuilder.forward_operator_not_callables &~&66GH'Rrc6|jd|d|d|y)NzSignatures of "z" and "z" are incompatibler)rr other_methodrs rsignatures_incompatiblez&MessageBuilder.signatures_incompatibles! OF87<.@RSU\]rct||jdk7rt||jn|}|jd||ttj S)Nobjectz!"yield from" can't be applied to )rrrr>rNr)rexprrtexts ryield_from_invalid_operand_typez.MessageBuilder.yield_from_invalid_operand_typesX4.(: dll + 6tf=wGy++,,rcV|jdt||j|y)NInvalid signature r)r func_typers rinvalid_signaturez MessageBuilder.invalid_signatures$ &{9dll'K&LMwWrc^|jdt||jd|d|y)Nrz for "rr)rrr method_names r$invalid_signature_for_special_methodz3MessageBuilder.invalid_signature_for_special_methods2  Y !E Ff[MYZ [  rc|jjD]v}|jryt|ts"|j j |j|j|j|jfj|yt|j}|jd|j|d|y)NrzRevealed type is "r)r~ get_watchersrrriteration_dependent_errorsrevealed_typesrrrrrrOrraccept)rrrwatchervisitors r reveal_typezMessageBuilder.reveal_types {{//1 G++'#8922AA\\7>>73C3CWEWEWX&+ !6 &szz'':&;1=wGrc Ntt|jd}|rl|jd||jD]F\}}t |j }|jd|d||j |nd|Hy|jd|y)Nc |dS)Nrr)ts rz.MessageBuilder.reveal_locals..s AaDrrzRevealed local types are:rz : zThere are no locals to reveal)dictr{rrrOrr)rtype_mapr sorted_localsrrrs r reveal_localszMessageBuilder.reveal_localssVHNN$4.IJ  II17 ;%++- _1(> D21=ahhw&7d%STV]^ _ II5w ?rcX|jdt||jd|y)NzCannot instantiate type "type[z]")rrr)rrrs runsupported_type_typez$MessageBuilder.unsupported_type_types+ ,-=dDLL-Q,RRT UW^ rcv|jdt||j|tjy)NzRedundant cast to r)rrrrREDUNDANT_CASTrs rredundant_castzMessageBuilder.redundant_casts5  S$,,!? @ A %%  rct|||j\}}|jd|d||tjy)NrzExpression is of type z, not r)rrrr ASSERT_TYPE)r source_type target_typerrrEs rassert_type_failzMessageBuilder.assert_type_failsC1+{TXT`T`a *6(&A7QVQbQb crc||j|dt||jd|tjy)Nz becomes z due to an unfollowed importr)rrrrNO_ANY_UNIMPORTED)rprefixrrs runimported_type_becomes_anyz*MessageBuilder.unimported_type_becomes_anys< hi C >??[ \ ((  rc>d}| xs|dk\}d}|rt|trt|jtrd}|jjs|r|d}nsd|d}nl|jjjt vrF|jjjj dd}|d k(r|d |}|d |d}|d |jd |d}|jdt|jd||tjy)Nr)rr{z | None Optional[].r!rr[z (hint: "rz = ...")zNeed type annotation for "rr) rr.rrHrr0 partitionrrr]r VAR_ANNOTATED) rnoderpython_versionhintpep604_supportedrecommended_typetype_decrs rneed_annotation_for_varz&MessageBuilder.need_annotation_for_var s%--J71J js3 499k8ZH99>>#*27';$)28*A'>$((,CCyy~~..88=a@6>"*2hZ8H&*V1XJa#8  'tyyk,<+=XFD ($)))<(=Qtf E $$  rcH|jd|tjy)NzExplicit "Any" is not allowedr)rr EXPLICIT_ANYr~s r explicit_anyzMessageBuilder.explicit_any,s 13U=O=O Prc|jdjt||j|tj y)Nz1Unsupported type {} for ** expansion in TypedDictrrrrrrr?)rrrs r%unsupported_target_for_star_typeddictz4MessageBuilder.unsupported_target_for_star_typeddict/s= ? F FC.  %%  rc||jdjt|d|tjy)Nz3Non-required {} not explicitly found in any ** itemTshortr)rrrzrr?)rrrs r"non_required_keys_absent_with_starz1MessageBuilder.non_required_keys_absent_with_star8s9 A H HD1  %%  rc t|}t|}|js|Dcgc] }||vs| }}|rQ|jdjt |dt ||j |tj|Dcgc] }||vs| } }| rQ|jdjt | dt ||j |tj|s| ryt |d} |s|jd| |yt |} |r ||krd| } |jd| d | |tjycc}wcc}w) NzMissing {} for TypedDict {}TrrzExtra {} for TypedDict {}zUnexpected TypedDict zonly z Expected z but found ) r is_anonymousrrrzrrrr?TYPEDDICT_UNKNOWN_KEY) rr expected_keys actual_keysr actual_set expected_setrmissingrfoundrs runexpected_typeddict_keysz(MessageBuilder.unexpected_typeddict_keysAsl% =) !'4Mss*7LsMGM 188't\-- %0KS3l3JSKEK /66'T:KT\\u225CWCWH II[dll;!DG &--j$.GH'X`rc djtt|d|ji}|j d|d|y)Nrrz)Type of TypedDict is ambiguous, none of (z) matches cleanly)rnr<rrr)rtypesrformatted_typess rtypeddict_context_ambiguousz*MessageBuilder.typeddict_context_ambiguoussD))D)?)]PTP\P\)]$^_ 77HHY Z\c rc |jr|jd|d|y|jd|dt||jd|y)NzTypedDict key "z" cannot be deletedrCz" of TypedDict z cannot be deleted)rrrr)rrr rs rtypeddict_key_cannot_be_deletedz.MessageBuilder.typeddict_key_cannot_be_deletedsV     II {2EF P II {/+c4<<2P1QQcd rc d}|j|jt||jt||j|tj y)NzOArgument 2 to "setdefault" of "TypedDict" has incompatible type {}; expected {}rr)rdefaultrrrs r+typeddict_setdefault_arguments_inconsistentz:MessageBuilder.typeddict_setdefault_arguments_inconsistentsN` JJ{7DLL9;xQUQ]Q];^ _ %%  rc(|jd|y)NzCParameterized generics cannot be used with class or instance checksrrs rtype_arguments_not_allowedz)MessageBuilder.type_arguments_not_alloweds WY`arct|}t|trd}ndt||jd}|j ||y)NzExpression has type "Any"z)Expression type contains "Any" (has type r)rYrr>rrrrrrrs rdisallowed_any_typez"MessageBuilder.disallowed_any_typesGc" c7 #1GA+cSWS_S_B`AaabcG '7#rczdt||j}|j||tjy)Nz/Returning Any from function declared to return r)rrrr NO_ANY_RETURNrs rincorrectly_returning_anyz(MessageBuilder.incorrectly_returning_anys7=k#t||>\=] ^  '7)<)< =rc|jd|tj|jd|tj|jd|tjy)NzI"bool" is invalid as return type for "__exit__" that always returns FalserzEUse "typing.Literal[False]" as the return type or change it to "None"zhIf return type of "__exit__" implies that it may return True, the context manager may swallow exceptions)rr EXIT_RETURNrrs rincorrect__exit__returnz&MessageBuilder.incorrect__exit__returnsh W ""  S ""   9 ""  rct|}t|tr|jd|y|jdt ||j d|y)Nz2Function is untyped after decorator transformationz0Type of decorated function contains type "Any" (r)rYrr>rrrrs runtyped_decorated_functionz)MessageBuilder.untyped_decorated_functionsPc" c7 # IIJG T IIB;sTXT`T`CaBbbcd rc0|jd|d|y)Nz"Untyped decorator makes function "z " untypedr)r func_namers r typed_function_untyped_decoratorz/MessageBuilder.typed_function_untyped_decorators 6ykKWUrc tdjt||t|}|j||y)Nz?{} type variable "{}" used in protocol where {} one is expected) capitalizervariance_stringr)rr( tvar_namerrrs rbad_proto_variancez!MessageBuilder.bad_proto_variances= M T T'OH4M   #wrcv|jdt||j|tjy)Nz7Can only assign concrete classes to a variable of type rrrrr TYPE_ABSTRACTrs rconcrete_only_assignz#MessageBuilder.concrete_only_assigns9 EkRUW[WcWcFdEe f $$  rcx|jdt||jd|tjy)Nz'Only concrete class can be given where z is expectedrr-rs rconcrete_only_callz!MessageBuilder.concrete_only_calls8 5k#t||6T5UUa b $$  rc6|jd|d|d|y)Nz Cannot use z() with z typer)rrrrs rcannot_use_function_with_typez,MessageBuilder.cannot_use_function_with_types! K }HYKuEwOrc|jd|t|dkr4dj|}|jd|jd||yy)NzOOnly protocols that don't have non-method members can be used with issubclass()rrz Protocol "z" has non-method member(s): )rrrnrr)rrmembersrr`s rreport_non_method_protocolz)MessageBuilder.report_non_method_protocolsX ]   weN_N_  rc*|jd||y)NzIf condition in comprehensionr@r truthinessrs r$redundant_condition_in_comprehensionz3MessageBuilder.redundant_condition_in_comprehension$s ;ZQrc*|jd||y)Nz If conditionr@rHs rredundant_condition_in_ifz(MessageBuilder.redundant_condition_in_if's NJ@rc|j|dt|j|tjy)Nz is always r)rrlowerrREDUNDANT_EXPR)r descriptionrIrs rrAzMessageBuilder.redundant_expr*s; m;s:'<'<'>&? @ %%  rcld}|j|j|||tjy)NzSubclass of {} cannot exist: {}r)rrrr<)rformatted_base_class_listreasonrtemplates rimpossible_intersectionz&MessageBuilder.impossible_intersection1s35 OO5v >eN_N_  rc6|jd|d|d|y)Nrz" cannot appear after "z7" in type parameter list because it has no default typer)rr*last_tvar_name_with_defaultrs rtvar_without_default_typez(MessageBuilder.tvar_without_default_type9s0  {12M1NOD D  rc d}d}tdgtddgi}|jj|j t|gvryt dt |jDryd}d} g} t|tr |j}nt|tr |j}nt|tr*t|jtsyd }|j}nvt|trf|jrGt!|j"} t| tr | j} t| tsyd }| }n|j}d g} |j$r|j$j&rd } t)||| } | rt+| t+|jj,ks| d gk(rt+| |kr| d gk(rO|rM|j/d j1|jj2|jj2|| n|j/dj1|jj2|jj2t5| || |j/dj7| |||n:t+| |kDs+t+| t+|jj,k(ryt9||||j:} | rt=|t?||j:rm|jj@jBrM|jj@jBr-|jjDs|jjDrFtG||j:d }|j/d|d|| | d|D]\}}}}t!|}t!|}|rdnd}t|ttHfr&t|ttHfr|jro|j/dj0||gtK|||j:||||st=|||j:s|j/d||||j/dj1||||t|tr3|j/tM||j:|xs| |d|z|n/t|tHsJ|jO||d|z||xs| |j/d|||t|tr4|j/tM||j:|xs| |d|z|t|tHsJ|jO||d|z||xs| |jQ| ||||jRtU|||}|d|D]\}}}|sHtV|vr@tV|vr8|j/d j1|jj2||| |sHtV|vr@tV|vr8|j/d!j1|jj2||| tX|vr@tX|vr8|j/d"j1|jj2||| tZ|vr@tZ|vr8|j/d#j1|jj2||| |rPt\|vrHt\|vr@tV|vr8|j/d$j1||jj2|| |stV|vs|j/d%j1|jj2||| |jQ|||||jRy)&aReport possible protocol conflicts between 'subtype' and 'supertype'. This includes missing members, incompatible types, and incompatible attribute flags, such as settable vs read-only or class variable vs instance variable. rr!ztyping.Mappingriztyping.SequenceNc3<K|]}t|tywr)rrU)rrs rrz:MessageBuilder.report_protocol_problems..[sZ2z"o.ZsFTr)skipz9"{}" has constructor incompatible with "__call__" of "{}"r^z1"{}" is missing following "{}" protocol member{}:rr) class_objrrrzFollowing member(s) of z have conflicts:z setter typerz{}: expected{} {}, got {}z*Setter types should behave contravariantlyz Expected{}: skip_self)rr^zGot:rr\zDProtocol member {}.{} expected instance variable, got class variablezDProtocol member {}.{} expected class variable, got instance variablezIProtocol member {}.{} expected settable variable, got read-only attributez5Protocol member {}.{} expected class or static methodzeOnly class variables allowed for class object access on protocols, {} is an instance variable of "{}"zEClassVar protocol member {}.{} can never be matched by a class object)/rMrJrrrrrZrrpartial_fallbackfallbackrPrrBr?rrYret_type extra_attrsmod_nameget_missing_protocol_membersrprotocol_membersrrrr\rnget_conflict_protocol_typesrr<rr type_varshas_param_spec_typerrErrr print_morerget_bad_protocol_flagsr5r7r4r8)rr9rrrr MAX_ITEMS exclusionsr\ is_moduler[rbrconflict_typesrrgotexp is_lvalue setter_suffixconflict_flagssubflags superflagss rraz'MessageBuilder.report_protocol_problemsBsV  ,- )+<=-  >> " "jnnT']B&G G  Z9I)..9YZ Z    gy )..G  /&&G  *gllH5IllG  .""$*7+;+;<h 2'88H!(H5 "!**"|   7#6#6#?#?I/w M WINN$C$C DDT^S_H_G ):,&9 OVV ))9>>+>+>!-  GNN ))9>>+>+>@Q!-  $))G,gfS_ ` \I %WY^^=\=\9])] 5 Y)T\\  7Jy$94<<P<<$$..>>&&00||//~~11#GT\\MI II))4DE)   .r)rr)r conflictsrr max_itemsrs rrjzMessageBuilder.print_more@ sF y>I % IIC NY.//KL   &rc Rt|trt|jtkDrpt|t r`|j jdk(rG|jd}|gt|jz}|j||j||yt|trt|jtkDst|jtkDrt|jt|jk7rn|l|j|jdj||j|||j|}|j|j||jy|j|j|j||yy)zTry to generate meaningful error message for very long tuple assignment Returns a bool: True when generating long tuple assignment error, False when no such error reported rrrTz ({} {}, {} {})rF)rrJrrMAX_TUPLE_ITEMSrBrrr!generate_incompatible_tuple_errorr/rformat_long_tuple_typerr0r) rr9rrr subtype_labelsupertype_labellhs_type lhs_typess r&try_report_long_tuple_assignment_errorz5MessageBuilder.try_report_long_tuple_assignment_errorQ sR gy )GMM"_4y(3NN++/??$>>!,%JW]]);; 66y'--QXZ]^Iy1GMM"_4IOO8L8^w}}%Y__)==&2}7P!55-44 - $ ; ;G D / $ ; ;I F  #))W388 D#66OOW]]GSrc,t|j}|tkDradjt |jd|j t |jd|j t |dz St||j S)z6Format very long tuple type using an ellipsis notationz$"tuple[{}, {}, ... <{} more items>]"rrr!)rrr}rrrrr)rritem_cnts rrz%MessageBuilder.format_long_tuple_type~ susyy> o %9@@ 1t||< 1t||<HqL!  sDLL1 1rc @d}g}tt||D]r\}\}} t| |r|dkrS|jdj t |t | |jt ||j|dz }tdt |d} |dz dkDr| dt |dz dz } n| d z } |j| }|j|j||j |D] } |j| ||j "y ) z>Generate error message for individual incompatible tuple pairsrrz3Expression tuple item {} has type {}; {} expected; rr z tuple items are incompatiblez; z items are omitted)rrN) rrkr<rrrrrr/rr0rr) rr rhs_typesrr error_cntrLrlhs_trhs_trrs rr~z0MessageBuilder.generate_incompatible_tuple_error s# !*3y)+D!E  A~ueU+q=LLMTTF't||<'t||<Q  C N##@A q=1  bY]+,,?@ @D CKD%%d+ #))W388 4 4D IIdG#((I 3 4rc|jd|d||tvr)|jdjt||yy)Nz)Maybe your test fixture does not define "z"?z?Consider adding [builtins fixtures/{}] to your test description)rrtr)rrrs radd_fixture_notezMessageBuilder.add_fixture_note sO =hZrJCP . . IIQXX+H5   /rcH|jd|tjy)Nz_By default the bodies of untyped functions are not checked, consider using --check-untyped-defsr)rrANNOTATION_UNCHECKEDrs r annotation_in_unchecked_functionz/MessageBuilder.annotation_in_unchecked_function s$  3 ++  rcdjd|D}|jtjj ||t j y)Nrc3,K|] }d|zdzyw)rNr)rrs rrzDMessageBuilder.type_parameters_should_be_declared.. srrr)rrrr#rr)rrrGrrr#rr)rrrr?rr#rr) rrrrKrRr?rSrrr#rr)rr%rXrArYrArr)rrr^zdict[str, bool]rr#rr) rrrer-rfr-rr#rr)rrrsrrr#rr)rrrr#rr)rrrsrrr#rr)rrr{rrr#rr)rr#rr)rrrr-rr#rr) rr?rrKrrrr#rr) rrKrrKrTrrr#rr)rrrr#rr) rrrrrrrr#rr)rrrrrr#rr)r:rrr#rr)rrrrKrr#rr) rr-rrrrKrrrr#rr)rrrr#rr)rrrrrr#rr)rrKrr#rrK)rrKrr#rr)rrKrr#rrrr)rzdict[str, Type | None]rr#rr)rrKrr#rr)rrKrrKrr#rr)rrrrKrr#rr)rr+rr#rztuple[int, int] | Nonerr)rrKrr#rr)r list[str]rr#rr) rrMrrrrrr#rr)rrMrr#rr) rrMr rrr#r rrr)rzlist[TypedDictType]rr#rr)rrMr rrr#rr)rrKrrKrr#rr)r%rrr#rr) r(rr*rrrrr#rr)rrrrrr#rr)rr-r5rrr#rr) r9rKrfrKrr#rrrr)rCrrr#rr)rIrrr#rr)rPrrIrrr#rr)rRrrSrrr#rr)r*rrWrrr#rr) r9z>Instance | TupleType | TypedDictType | TypeType | CallableTyperrBrr#rrrr)rrErr#rrrrrrr^rrr) rzz Sequence[Any]rr#rrr{rrrrr)NN)r9rIrrIrr#rmessage_registry.ErrorMessagerrrrrr)rrJrr) rrrrrr#rrrr)rrrr#rr)rrrr#rr)rrrr)__name__ __module__ __qualname____doc____annotations__rrrrrrrrrrrr rrrrrrr\rgrcr,r~rrrrrrrrrrrrrrrrrrrrrrr rrrrrrrrr#r&r*r.r2r4r7r9r?rArDrFrJrLrPrVrZrcrgrkrmrprtrvrxr|rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rrrrrrr!r#r&r+r/r1r3r6rbr=rDrFrJrLrArUrXrarrjrrr~rrrrrrrrr}r}s  N  $#&BF%*"'%*  ? #    #    - ++R4"&!%,0)-; ;  ;  ;  ; ; ; ; *; ';  ; D"&,0           *     $ !%  "&,0)-          * '   : !% -1     * H37 MMM M  M 0 M Ml ..2 22 2  22 2>5--_ _ _ _  _  _!___ _B# (#  #  #  #  # T"& (      @          (  5"5-45Fa5 505<  "  .;  FM    < Z^55#&5185FV5 5"*-9=HO B CB O$"& %Y%Y%Y %Y  %Y %YN  '* 5<   ?XJN Q Q(+ Q8; QFM Q  Q ` `"& `7; `CK `  `1c1c1c 1c  1c1c1c 1cr.3 %    (, :*** *  * $ ***#* *X  ### #  #  ## #J L L14LHKLV]L L"F'F-<FGNF F$E B]c   c     ^ VX   " )5 GK V]   [ ['3 [?K [  [664C6NU6 6<  ( 19 DK  _U   $' 29  X L:FW  "  )-  =@  KR       #&37BI     #&  18       [            $S^-X  (/ >A  H, @  d \`  )0 BX  >Q  (` (`!(` (`  (`  (`T UZ -0;BMQ <   -0 ;B     '+ 6=  b$>  $V  &) 58 CJ    PP+.P9@P P Z Z%. Z9@ Z  Z    #'  29  DT    OW RA  ), 69 DK    ;> IP  c\Oc\c\ c\  c\ c\X/4    (, @"&     .%)&*+++ + + + " +$+ +Z 2444 4 + 4  4@   Qrr}c^|dvs"|jds|jdr|Sd|dS)z1Quotes a type representation for use in messages.)Moduleoverloaded function zModule rr)r+endswith) type_strings rr;r; s@ EE  ! !) ,    $ {m1 rc g}t|||D]\}}}|tk(r||dk(r(|jr|j||?t|} |j s||j| d||dx|j| d||dt |ddj|S)z2Format a bunch of Callable arguments into a stringr(rr)rkr is_positionalrrqis_starreprrn) r-r9r8rr8 arg_stringsrYrArB constructors rformat_callable_argsr sK(+Iy)(L[$(H w 8#3yA~(J`J`Jb   vh/ 0/9K!X%5""k]!F84D3EQ#GH""k]!F84D3ERXGWWX#YZ[ 99[ !!rFc `d8fd d9fd }d:fd d9fd }d;fd t|tr|jr|jd}|Sdk\sr/|jjvr|jj}n|jj }|j r|d||j d z }|St|}t|tr\|}|jjd k(rDd } |jr4|jjr|r| d |jjd S| S|jjdk(rydk\sr/|jjvr|jj} n|jj } |j s?|jjr't|jjdk(r| dzS| S|jjdk(r|j d} d| dS| d||j d St|tr;j!rd|jSd|jd St|t"r$t%|} dk\sr| vr| S|j St|t&r$t%|} dk\sr| vr| S|j St|t(r|j*j,rbt/|j*j,|j*j0|j*j2} d| d|j5d S|j5St|t6rQ|j8jjdk7r|j8S||j:xsd} d| d St|t<r|j?s|j@Sg}|j:j;D]K\}}d}||jBvr|dz }||jDvr|dz }|jG||d|MddjI|d St|tJr d!|d St|tLrttO|}t|tLs|StQ|\}}t|dkDrd"jSdjIfd#|D}t|dk(r7tt|dtTrjWr|d$Sd%|d S|r;jWr |d&||Sd'djI|d|d S|St|j:tYd(|j:Dz dk(}|r`|j:Dcgc]}tt|tTr| }}jWr|dd$Sd%|dd SjWr||j:n$d'djI|j:d }|St|tTry)t|tZry*t|t\ry+t|t^ry,t|t`rd-|jbd St|tdr|}|jgr2tajh|j:djjSt|tlr|jnd.|jnd }n5|jpd/|jpd }n|jj}|jrrd0|d S|ju}|d1|d|d St/|j,|j0|j2} d2| d3|d Sy4t|tvr|jyt{5St|t|r3t/|j,|j0|j2} d| d S| td6y7cc}w).format s i)DDrc8djfd|DS)Nrc3.K|] }|ywrrrrrs rrz9format_type_inner..format_list.. s66rn)rrs r format_listz&format_type_inner..format_list syy6666rcB|Dcgc]}|dk7s|}}t|tkDr'dk(r"t|tdzz }|dtdz}nd}|r|jd|dtfd|Dr|jd|Scc}w)Nrrr!ryz more items>c34K|]}|dk(yw)rNrrs rrz@format_type_inner..format_union_items.. s6vc{f$6s)rMAX_UNION_ITEMSrr)rr formattedmorerr8s rformat_union_itemsz-format_type_inner..format_union_items s,1KSVC[F5JVC[K K y>O + Qy>Oq$88D!"8Oq$89ID    ql3 4 66 6   V $Ls B Bc2dj|S)N | r)rrs r format_unionz'format_type_inner..format_union szz,U344rc|jr#|j}|d|jS|jS)Nr)is_enum_literalrar0 value_repr)runderlying_typers rformat_literal_valuez/format_type_inner..format_literal_value s@    $S\\2O%&a {3 3>># #rzr!rrztypes.ModuleTyperrrrszrz[()]rrrztuple[z, ...]r(Unpack[z, **z()rr=rz TypedDict({rz})zLiteral[z Literal[{}]c3.K|] }|ywrr)rrrs rrz$format_type_inner.. sIa.q1IrrrrzUnion[c3NK|]}tt|tywr)rrYrD)rrs rrz$format_type_inner.. s$aRSZ0BH%M$as#%rr rNeverztype[ TypeGuard[TypeIs[zCallable[..., z Callable[z Callable[[z], rrz Type is Noner)rrKrr)rSequence[Type]rr)rrrr)rrCrr)@rrL is_recursivealiasrrrrYrBrrcrdhas_type_var_tuple_typerrhrWuse_star_unpackrSscoped_type_var_namerRrGrr-rr9r8name_with_suffixrJr`rrMrra required_keys readonly_keysrrnrCrVignore_last_known_valuesr=rrD use_or_syntaxrr>r@rUrPrrArmake_normalizedrbr? type_guardtype_isis_ellipsis_args param_specrTrrOrF RuntimeError)rr8rrrrrr)itypert item_type_strrr type_itemsrr  item_typemodifier literal_items union_items literal_strprint_as_optionalrrestrfunc return_typerrrrs ``` @@@rrr sBE7 5$#}%#*:*: 99 *H A~) 0B0Bi0O99--99>>xxa CHH 56a88 # C#x  ::  "4 4H  U%6%6%?%?L"2e&7&7&@&@%ACCO ::  "7 7* >iEJJ,?,?9,Lzz**HzzHzzzz11c%**:N:N6OST6T&((O ZZ $4 4"5::a=1MM?&1 1ZqUZZ!8 9; ; C $  " " $vchh'() ))*!,, C %', >iH ,AOxx C) *', >iH ,AOxx C ' ::  ' $$cjj&:&:CJJ{,K"L!MRP[}\]^ #"CII$aWZW`W`$a!aa !#&99]aJq?QS[4\]],,.d1g'w/%VDG_$5Q7,,.!+!$)),>syy,I"J!K1M H C " C ! C % C ) C "vchh'(** C &    (224::a=3I3IJK K l +* *6$//+B*C1E ) 't||(<'=Q? $T]]3 $$' }A66*J%"6*#5"6b QGG' D vS Q7 7 ) C %zz.9:: C $#CMM3==#--QWYbc4&{ >**w^s b+"b+cPt}|j||jS)zReturn all instances/aliases/type variables that `t` contains (including `t`). This is similar to collect_all_inner_types from typeanal but only returns instances and will recurse into fallbacks. )CollectAllNamedTypesQueryrr)rrs rcollect_all_named_typesr s" ()GHHW ==rcXeZdZddZdfd Zd fd Zd fd Zd fd Zd fd ZxZ S) rcg|_yr)rrs rrz"CollectAllNamedTypesQuery.__init__ s !# rcZ|jj|t| |yr)rrsupervisit_instancerr __class__s rrz(CollectAllNamedTypesQuery.visit_instance " ! q!rc|jr'|jst|j|y|jj |t ||yr)rrrYrrrrvisit_type_alias_typers rr z/CollectAllNamedTypesQuery.visit_type_alias_type sB 771>> A  % %d + JJ  a G )! ,rcZ|jj|t| |yr)rrrvisit_type_varrs rr z(CollectAllNamedTypesQuery.visit_type_var r rcZ|jj|t| |yr)rrrvisit_type_var_tuplers rrz.CollectAllNamedTypesQuery.visit_type_var_tuple s" ! $Q'rcZ|jj|t| |yr)rrrvisit_param_specrs rrz*CollectAllNamedTypesQuery.visit_param_spec s" !  #r)rr)rrBrr)rrLrr)rrSrr)rrRrr)rrGrr) rrrrrr r rr __classcell__)rs@rrr s&$"-"($$rrc|jjs |jS|jjjd^}}|jd|S)Nr@)id namespacersplit)r_r}s rrr sG 44>>vv %%c*JQffXQvh rci}|D]C}t|D]1}t|trbt|trR|j |j j tj|j jvt|tr^|jrR|j |jj tj|jjt|tsJ|j |j tjt|4F|jD]%}d|tvs||jd|'t}|j!D]"}t#|dkDs|j%|$|S)zReturn a set of fullnames that share a short name and appear in either type. This is used to ensure that distinct types with the same short name are printed with their fullname. ztyping.r)rrrIrB setdefaultrrraddrrLrrQrrrjrrupdate)rrrr shortnameoverlapsrs rfind_type_overlapsr s]  AI(. IA!Z(Z8-D QVV[[#%044QVV__EA}-!'' QWW\\35155agg6F6FG!!_555 QVVSU+//0DQ0GH IIVVX4 YK $> > iL  wyk2 34HXXZ' y>A  OOI &' Orc0tt||||S)a Convert a type to a relatively short string suitable for error messages. `verbosity` is a coarse-grained control on the verbosity of the type This function returns a string appropriate for unmodified use in error messages; this means that it will be quoted in most cases. If modification of the formatted string is required, callers should use format_type_bare. )r;rrrr8rs rrr' s -c7I|T UUrc2t|||t||S)a  Convert a type to a relatively short string suitable for error messages. `verbosity` is a coarse-grained control on the verbosity of the type `fullnames` specifies a set of names that should be printed in full This function will return an unquoted string. If a caller doesn't need to perform post-processing on the string output, format_type should be used instead. (The caller may want to use quote_type_string after processing has happened, to maintain consistent quoting in messages.) )rrr!s rrr7 s S)W6H6M| \\r)r'c  t| d fd }d}t|dk(r`|\}}t|}t|}t|tr5t|tr%t |j rt||drd}t|dD]@}|Dcgc]}t|| } }tt| t| k(s@n|r t Std DScc}w) aJointly format types to distinct strings. Increase the verbosity of the type strings until they become distinct while also requiring that distinct types with the same short name are formatted distinctly. By default, the returned strings are created using format_type() and will be quoted accordingly. If ``bare`` is True, the returned strings will not be quoted; callers who need to do post-processing of the strings before quoting them (such as prepending * or **) should use this. c"t|dS)Nrr8rrr)rr overlappings r format_singlez-format_type_distinctly..format_singleV s 7kZZrrr!T)ignore_pos_arg_namesrr%c32K|]}t|ywr)r;)rrs rrz)format_type_distinctly..u s8a&q)8s)rrKrr) rrrYrr?rr8r<rrrtuple) rr'rr' min_verbosityrrr8rstrsr&s ` @rrrH s%e,K[M 5zQ et$& t\ *5,/EOO$4TBM=!,   diT_ `   s4y>SY &   T{84888 sC0crt|}|*t|tr|jry|jryy)zJReturn @classmethod or @staticmethod, if any, for the given callable type.Nz @classmethodz @staticmethod)r/rris_class is_staticrrs rrrx s7b!J*Z9N"O   !   " rcd}d}d}tt|jD]e}|r|dz }|j|j r |s|dz }d}|j|t k(r|dz }d}|j|t k(r|dz }|j|}|r||dzz }t|j||}|j|t k(r|jrd |d }||z }|j|jr|d z }|r|j|js ||t|jd z k(s4|j|d z"|j|d zjr_|d z }d}ht|} t| trt| dr|j sw| j"D cgc]} | j$j&} } t| t|jkDr| dr|s|rd|z}| d|z}| j&d|d}nO|j&r=t)|} | r |rd|z}| |z}|j&j+dd|d}nd|d}|dz }|j,|dt|j,|d z }nC|j.|dt|j.|d z }n|t|j0|z }|j2rEg} |j2D]}t|t4rt7|j8}t|t:r|j<j>dk(s+| jA|j&dt||}|jBr]| jAdjE|j&djG|jBDcgc]}t||c}| jA|j&| jAtI|ddjG| d|}d|Scc} wcc}w)a<Return a nice easily-readable representation of a callable type. For example: def [T <: int] f(self, x: int, y: T) -> None If skip_self is True, print an actual callable type, as it would appear when bound on an instance/class, rather than how it would appear in the defining statement. rFrz*, Tr(r)rrrz = ...rz, / argumentsrrrz -> rrzbuiltins.objectz{}: ({})rz] zdef )%rrr-r9is_namedrrr8r unpack_kwargs is_optionalrr/rr%hasattrrjr2variablerrrrrrb variablesrSrYrrBrrrrrrnr)rrr^rasteriskslashrrr)rrdefinition_arg_namesrtvarstvarrs rrr s AH E 3r||$ % IA <<? # # %h JAH <<?h & HAH <<?i ' IA||A   A#BLLOW= <<?i 'B,<,<  !,H X  <<? & & ( MA Q--/ S&**LLQ'32<<A;N;\;\;^ JAE=Bb!J:w' J ,##=G=Q=QRc 1 1RR $ %BLL(9 9$Q'1H$Q'!+Aq1 % !"% 1HA Aww}}q!"!A3a (s!HKA }}  z*2=='BC1 EE   w' G<=Q ?? bkk7 33 ||LL )D$ ,-d.>.>? {H5#((115FFLLDII;b1A+w1W0X!YZ[[LL")) II IIt{{&['7G'D&[\LL+ T$Z(' )( % !A3 ' !:g ST'\s QQct|}t|tr|jr |jry|j Sr)r/rr%rr/original_first_argr0s rrr s3b!J j' **//ZEYEY  ( ((rc,|tk(ry|tk(ryy)N covariant contravariant invariant)rr)variances rr)r) s9 ] "rc|jjsJg}|jjD]&}||vrt|||r|j |(|S)zkFind all protocol members of 'right' that are not implemented (i.e. completely missing) in 'left'. )rr`rfr9r)rrr[rrs rrere s^ :: ! !! !G**--# T> 64. NN6 " # Nrc|jjsJg}|jjD]}|dvr t|||}|Jtj j |||}|s>t||d|}|s|j|||dft||} t| vryd} t| vr!t|||d} | rt| |sd} | }tt||vr5tj j |||d} | rt| |sd} | }|s| s||Jt|||}|r|j|||| f|S)zFind members that are defined in 'left' but have incompatible types. Return them as a list of ('member', 'got', 'expected', 'is_lvalue'). )r__new__T)r(rF)rrr) rr`rfr9rrget_protocol_memberr<rr:r7r6r;) rrr\rrzrrr9 is_compatrvdifferent_setter set_supertype set_subtypes rrgrg s :: ! !! !46I**--M , , t4 $$$,,224K w V]^    fgy%@ A%fe4 j (    +'ttLM\-%K#' %I !1&$!? ?,,::4^b:cK< W#E#' !G!1 $)<<<y'7C    fgy:JK L?M@ rc |jjsJg}|jjD]<}t||||s|j |t |||t ||f>g}|D]\}}}t |vrt |vrt|vsNt |vrt |vs>t|vrt|vs.t|vrt|vs|rt|vrt |vs |sdt |vsm|j |||f|S)ziReturn all incompatible attribute flags for members that are present in both 'left' and 'right'. r_) rr`rfr9rr:r5r7r4r8) rrr\ all_flagsr bad_flagsrrurvs rrkrk5 s :: ! !! !68I**-- vtTY ?   $VTYG$VU3 I&/;"h 8 #:-z)j(8+j(8+!Z/"(2*$8+z)   dHj9 :#;$ rc@|dk(ry|dj|ddzS)z+Capitalize the first character of a string.rrrN)upperrs rr(r(\ s'Bwtzz|ae##rc4tjdd|}|S)zIf the argument is the name of a method (of form C.m), return the type portion in quotes (e.g. "y"). Otherwise, return the string unmodified. z^"[a-zA-Z0-9_]+" of rresub)rs rr*r*d s 66("d 3D Krcbtjdd|}tjdd|}|S)zDStrip a double quote at the beginning and end of the string, if any.z^"rz"$rTrRs rr6r6m s+ tRA tRA Hrc|sJt|dk(r|dSt|dkrdj|ddd|dSddj|dd|dt|d z fzS) Nrrrrr z&%s, ... and %s (%i methods suppressed)r!rrrn)lsts rr\r\t s J3 3x1}1v SQ))CH%&eCG9557 IIc"1g  G HqL;   rc t|}t|dkr)ddj|Dcgc]}d|d c}zdzSddj|ddDcgc]}d|d c}zdzScc}wcc}w)NrYrrrrz, ...))r<rrn)rr[rs rrr s| q'C 3x1}TYY<!D6 <==CCTYYBQ@!D6 @AAHLL =@s A/  A4 cf|j}||ddk7rd|djddS|S)Nrryrrr,)get_namereplace)rrs rrr s= ==?D DGsN4&{""6844 Krc(t|}|d|Sy)Nz for r)r)rrs rrr s!  D tf~ rcn||k(r|d}|dk(rd}n|dk(r d}n d|d|d}|dk(rd }d |d |d |d S)Nz type argumentsrzno type argumentsrz1 type argumentzbetween r 0nonerz " expects z, but z givenr)lowhighactrrs rwrong_type_arg_countrg sh d{e? # !8#A AX!Ase5o 6 cz tfJqcuF 33rc|jsy|jj}d|vrEt|jdD]!}|j d|dzd} ||cSJdy#t $rY7wxYw)Nrrrz+Couldn't determine module from CallableType)rrrcountrsplitKeyError)rrrr module_names rrr s >>~~&&H hx~~c*+ A"//#q1u5a8K {++  DCCu   sA.. A:9A:r)rrzFinal[dict[str, Sequence[str]]]rcXt|}t|}dt||z||zz S)Ng@)rmin)r_balbls r_real_quick_ratiorr s0 QB QB R R ((rc |sgS|Dcgc]}t||dkDs|}}t|dk\r3|Dcgc](}tt|t|z dks'|*}}|Dcic](}|tj||j *c}j Dcgc] \}}|dkDs |}}}t|fdd|Scc}wcc}wcc}wcc}}w)Ng?2r)r_roc| |fSrr)rratioss rrzbest_matches.. s6!9*arr)rrrabsdifflibSequenceMatcherratiorr{)currentrrrpoptionrzrvs @rrr s  !JQ%6w%BT%IqJGJ 7|r%ISVc'l-B)Cq)H1IIY` avfg--6BHHJJ aF+1<<>J-&%UT\vJGJ '8 9"1 == KI aJs'CC(C C*-C- C$;C$c|Dcgc] }d|zdz }}t|dk(r|dSt|dk(r|dd|d|dSd|zdz}dj|dd|z|dzScc}w)Nrrrr!r#rrrZ)r conjunctionr_quotedlast_seps rrr s%) *cAgm *F * 6{aay 6{a)Ak]!F1I;77k!C'H 99VCR[ !H ,vbz 99 +sA,c&d}d}|jjdk(rD|jjdk(r+t|jd|jdrd}d}n|jjdk(ri|jjdk(rPt |jd|jdr*t|jd|jdrd}d }|r+|r)|j d |d d z|j ||S) zMExplain that the type is invariant and give notes for how to solve the issue.rz builtins.listrr<z5Consider using "Sequence" instead, which is covariantz builtins.dictrrzFConsider using "Mapping" instead, which is covariant in the value typerz" is invariant -- see zAhttps://mypy.readthedocs.io/en/stable/common_issues.html#variance)rrr<rr;r)rLrArWinvariant_typecovariant_suggestions rr=r= s N /1    ' '? : x}}Q'););A)> ?V /1    ' '? : q)=+=+=a+@ A x}}Q'););A)> ? T . 5 6Q R   )* Lrc Fg}t|j}t|tkr|S|D] }t ||r|j |"|rIdj |Dcgc]}t||c}}|j dt|d||Scc}w)zHPoint to specific union item(s) that may cause failure in subtype check.rItemz' in the first union not in the second: ) rXrrrr<rrnrr\) rLrArWr non_matchingrrrrs rappend_union_noter sL !(.. 1E 5zO# &$ .    %& M;sG4MN tH\233Z[`Zabc LNs"Bc|jjtvr3|jd|jd|jd|S)zIExplain if an unsupported type from "numbers" is used in a subtype check.z>Types from "numbers" aren't supported for static type checkingz7See https://peps.python.org/pep-0484/#the-numeric-towerz?Consider using a protocol instead, such as typing.SupportsFloat)rrrzr)rLrArWs rr>r> sE""&?? VW NO VW Lrct|}t|}t|tr"t|tr|jj|jjk(r|j r|j rt|t rt|jtrt|jjtr~|jjjr^t|j |j D]\}}t||ry|jj}dj||Sy)aExplain that the user may have forgotten to type a variable. The user does not expect an error if the inferred container type is the same as the return type of a function and the argument type(s) are a subtype of the argument type(s) of the return type. This note suggests that they add a type annotation with the return type instead of relying on the inferred type. rz;Perhaps you need a type annotation for "{}"? Suggestion: {})rYrrBrrrr)rr(rr. is_inferredrkr<rr)rr9r supertype_str subtype_arg supertype_argvar_names rmake_inferred_type_noter sg&G *I7H% y( + LL ! !Y^^%<%< < LL NN w + w||X . w||((# . LL   ) )*-gllINN*K  &Kk=9 <<$$LSS m   rrc|Dcgc]}d|d }}|rdnd}t|dk(rd|dSt|dk(r |d|dS|d d j|d Scc}w) Nrrr rzno rrzkey zkeys (rrrZ)rrrformatted_keystds rrzrz5 s,01S#aj1N1,B 4yA~RD~ TaT.+,--VDIIn56a882s Achg}t}|jD]m}t|trJt|tr:|j d}||vr:|j ||j|]|j|otj||j|jS)zThis will avoid types like str | str in error messages. last_known_values are kept during union simplification, but may cause weird formatting for e.g. tuples of literals. N)last_known_value) rrrrIrB copy_modifiedrrrV make_unionrr)rrseen_instancesreraseds rrr@ s !KUN% dJ 'JtX,F'''>F'   v &   v &   t $%    QVVQXX >>r)rrrr) r-rr9z list[ArgKind]r8zlist[str | None]rzCallable[[Type], str]r8rrrr) rrKr8rrr3rzset[str] | Nonerrrr)rrKrr)rrQrr)rrKrr)rF) rrKrr3r8rrrrr)rrKrr3r'rrztuple[str, ...])rr?rr)rr?rr3r^rrr)rDrrr)rrBrrBr[rrr)FN) rrBrrBr\rrzOptions | Nonerz"list[tuple[str, Type, Type, bool]])rrBrrBr\rrz$list[tuple[str, set[int], set[int]]])rrrr)rrrr)r[rrr)rz Iterable[str]rr)rrArr)rr?rr) rdrrerrfrrrrr)rrrr?rzMypyFile | None)r_rrorrfloat)r{rrzCollection[str]rrrr)rz Sequence[str]r~rrr)rLrrArBrWrBrr) rLrrArVrWrVrr3rr) rr#r9rKrrKrrrr)rrrrrr)rrVrrK)r __future__rrxrrUcollections.abcrrrr contextlibrtextwrapr typingr r r r mypy.typeopsrrrrmypy.erasetypermypy.errorcodesr mypy.errorsrrrrr mypy.nodesrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0mypy.operatorsr1r2 mypy.optionsr3 mypy.subtypesr4r5r6r7r8r9r:r;r<r= mypy.typesr>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZmypy.typetraverserr[ mypy.utilr\r]rjrrqrtrzr}rr}r;rrrrrrrrrrrrr)rergrkr(r*r6r\rrrrgrrrrrrr=rr>rrzrrrrrs # DD%--6%%8=    1>4( %E " U \ z$ h w  u!)-/'-. " $5p$Qp$QfI """ " " "  "  "6 c ccc c  c  cL$ 4$8 8KP V  V V,/ VCG V V"KP] ]],/]CG]]"IN-9`fR) Y]( (#(04(GU('(X8=$ $#$04$)$N$   M 4  5:;O3P0P) >:  (9A@  ):CNU"  (9A #04EHB7<9?r