U e5db ãG@sÜddlmZmZddlZddlZddlZddlZddlZddlZ ddl Z ddl Z ddl m Z m Z mZdddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;dd?d@dAdBdCdDdEdFdGdHdIdJgGZdßdLdM„ZdNdO„ZdPdQ„ZdRdS„ZdTdU„ZdVdW„ZgZdXdY„ZdZd[„ZGd\d]„d]ƒZGd^d_„d_ƒZGd`da„daeedKdb�Zeddcdd�ZedFdedd�Zeddfdd�Zeddgdd�Zeddhdd�Z ed didd�Z!ed djdd�Z"Gdkd„dedKdb�Z#Gdld„deedKdb�Z$d6d d4d8d9d3d5dddmœ Z%dndo„Z&Gdpdq„dqedKdb�Z'Gdrds„dse'dKdb�Z(Gdtd „d ƒZ)Gdudv„dvƒZ*Gdwdx„dxƒZ+dydzd{d|d}gZ,d~dd€d�d‚dƒd„d…d†d‡g Z-e,e-dˆgZ.d‰dŠ„Z/d‹dŒ„Z0d�dŽ„Z1d�d�„Z2dd"ddd$dd dd&d)g d‘d’gd“œZ3Gd”d•„d•eƒZ4Gd–d „d e)e4d—�Z5d˜dH„Z6d™d>„Z7dšd›„Z8e j9e j:e j;e jd�dA„Z?džd@„Z@dŸdD„ZAd dE„ZBd¡d¢„ZCd£dG„ZDd¤d?„ZEe$d¥ƒZFe$d¦ƒZGe$d§ƒZHe$d¨dKd©�ZIe$dªdKd©�ZJe$d«dKd©�ZKe$d¬dKd­�ZLe$d®dKeMd¯�ZNe$d=eOePƒZQdád°d±„ZReRejjSd²ƒZSeRejjTeIƒZTeRejjUeIeLeJfƒZUeRejjVeIƒZVeRejjWeIƒZWeRejjXeIƒZXeRejjYeIƒZYeRejjZeIƒZZeRejj[d²ƒZ[eRejj\eIƒZ\eRejj]eIƒZ]e(ejj^d²dKd³�Z^d´e^__eRejj`eIƒZaeRejjbeFƒZbeRejjceGeKfƒZceRejjdeGeHfƒZdeRejjeeIƒZeeRejjfeFƒZfeRejjgd²ƒZge(ehd²dµdKd¶�Zid·ei__eRejeFdµd¸�ZkeRejleFƒZmeReneFdµd¸�Z`eReoeIdµd¸�ZpeRejjqeIƒZqeRejjreGƒZreRejjseGeKfƒZseRejjteKƒZteRejueIƒZveRejweIƒZxeReyeGeHfdµd¸�ZzeRej{eGeHfƒZ|eRej}eGeHfƒZ}eRej~eFƒZ~eRejeGeHfƒZeRejj€eIeLeJfƒZ€eRejj�eIeLfƒZ�eReMeNdµd¸�Z‚d¹e‚__e6Gdºd/„d/e5ƒƒZƒe6Gd»d-„d-e5ƒƒZ„e6Gd¼d,„d,e5ƒƒZ…e6Gd½d+„d+e5ƒƒZ†e6Gd¾d.„d.e5ƒƒZ‡e6Gd¿d*„d*e5eIƒƒZˆe6GdÀd0„d0e5eIƒƒZ‰dÁd„ZŠdÃZ‹dÄZŒGdÅdÆ„dÆeMƒZ�GdÇd:„d:e�d—�ZŽdÈdÉ„Z�dâdKdÊœdËdÌ„Z�dÍd΄Z‘GdÏdЄdÐeMƒZ’GdÑd;„d;eye’d—�Z“dÒdC„Z”ePZ•dµZ–GdÓdÔ„dÔe)eQƒZ—GdÕdÖ„dÖe—eOƒZ˜Gd×dØ„dØe—ePƒZ™GdÙdÚ„dÚƒZše›dÛeš_›eše jœešj›<eRe j�eQƒZ�eRe jžeQƒZžGdÜdÝ„d݃Ze›dÞe_›ee jœej›<dS)ãé)ÚabstractmethodÚABCMetaN)ÚWrapperDescriptorTypeÚMethodWrapperTypeÚMethodDescriptorTypeÚAnyÚCallableÚClassVarÚFinalÚ ForwardRefÚGenericÚLiteralÚOptionalÚProtocolÚTupleÚTypeÚTypeVarÚUnionÚ AbstractSetÚ ByteStringÚ ContainerÚContextManagerÚHashableÚ ItemsViewÚIterableÚIteratorÚKeysViewÚMappingÚ MappingViewÚMutableMappingÚMutableSequenceÚ MutableSetÚSequenceÚSizedÚ ValuesViewÚ AwaitableÚ AsyncIteratorÚ AsyncIterableÚ CoroutineÚ CollectionÚAsyncGeneratorÚAsyncContextManagerÚ ReversibleÚ SupportsAbsÚ SupportsBytesÚSupportsComplexÚ SupportsFloatÚ SupportsIndexÚ SupportsIntÚ SupportsRoundÚChainMapÚCounterÚDequeÚDictÚ DefaultDictÚListÚ OrderedDictÚSetÚ FrozenSetÚ NamedTupleÚ TypedDictÚ GeneratorÚAnyStrÚcastÚfinalÚget_argsÚ get_originÚget_type_hintsÚNewTypeÚ no_type_checkÚno_type_check_decoratorÚNoReturnÚoverloadÚruntime_checkableÚTextÚ TYPE_CHECKINGTcCsÄttf}|r|ttf}|dkr(tdƒSt|tƒr:t|ƒSt|tƒr\|j |kr\t |›d�ƒ‚t|t ƒrr|t t fks~|ttfkrŽt d|›d�ƒ‚t|tttfƒr¢|St|ƒsÀt |›d|d›d�ƒ‚|S)Nz is not valid as type argumentzPlain z Got z.100Ú.)r rr r ÚtypeÚ isinstanceÚstrr Ú _GenericAliasÚ __origin__Ú TypeErrorÚ _SpecialFormrrIrÚcallable)ÚargÚmsgÚ is_argumentZinvalid_generic_forms©rZú/usr/lib64/python3.8/typing.pyÚ _type_checkxs(    ÿ ÿr\cCsRt|tƒr,|jdkr|jS|j›d|j›�S|dkr8dSt|tjƒrJ|jSt|ƒS)NÚbuiltinsrN.z...)rPrOÚ __module__Ú __qualname__ÚtypesÚ FunctionTypeÚ__name__Úrepr)ÚobjrZrZr[Ú _type_repr™s   recs\g‰|D]J}t|tƒr(|ˆkr(ˆ |¡t|tƒr|jsˆ ‡fdd„|jDƒ¡qtˆƒS)Ncsg|]}|ˆkr|‘qSrZrZ©Ú.0Út©ÚtvarsrZr[Ú ·sz&_collect_type_vars..)rPrÚappendrRÚ_specialÚextendÚ__parameters__Útuple)r`rhrZrir[Ú_collect_type_vars¬s rqcCs’t|tƒs|St|jƒ}t|jƒD]J\}}t|tƒr\t|ƒD]\}}||kr<||||<qdnd›d|›d|›d|›�ƒ‚dS)Nz is not a generic classzToo ZmanyZfewz parameters for z ; actual z , expected )rorTÚlen)ÚclsÚ parametersZalenZelenrZrZr[Ú_check_genericÎs  r~cCs¾g}|D]f}t|tƒr.|jtkr.| |j¡qt|tƒrdt|ƒdkrd|dtkrd| |dd…¡q| |¡qt |ƒ}t|ƒt|ƒkr¶g}|D] }||kr�| |¡|  |¡q�|}t|ƒS)Nré) rPrRrSrrnrtrpr{rlÚsetÚremove)r}ÚparamsÚpZ all_paramsZ new_paramsrhrZrZr[Ú_remove_dups_flattenÛs "   r„cs4t ¡ˆƒ‰t ˆj¡t ˆ¡‡‡fdd„ƒ}|S)Ncs,z ˆ||ŽWStk r YnXˆ||ŽSrr©rT©ÚargsÚkwds©ÚcachedÚfuncrZr[Úinnerÿs  z_tp_cache..inner)Ú functoolsÚ lru_cacheÚ _cleanupsrlÚ cache_clearÚwraps)r‹rŒrZr‰r[Ú _tp_cacheøs   r’csbt|tƒr| ˆˆ¡St|tƒr^t‡‡fdd„|jDƒƒ}||jkrH|S| |¡}|j|_|S|S)Nc3s|]}t|ˆˆƒVqdSrr)Ú _eval_type©rgry©ÚglobalnsÚlocalnsrZr[Ú sz_eval_type..)rPr Ú _evaluaterRrprtrwrm)rhr–r—Zev_argsÚresrZr•r[r“ s     r“c@seZdZdZdd„ZdS)Ú_Final)Ú __weakref__cOsd|krtdƒ‚dS)NÚ_rootz&Cannot subclass special typing classesr…©Úselfr‡rˆrZrZr[Ú__init_subclass__sz_Final.__init_subclass__N)rbr^r_Ú __slots__r rZrZrZr[r›sr›c@seZdZdd„Zdd„ZdS)Ú _ImmutablecCs|SrrrZ©rŸrZrZr[Ú__copy__%sz_Immutable.__copy__cCs|SrrrZ)rŸZmemorZrZr[Ú __deepcopy__(sz_Immutable.__deepcopy__N)rbr^r_r¤r¥rZrZrZr[r¢"sr¢csleZdZdZ‡fdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z dd„Z e dd„ƒZ‡ZS)rU©Ú_nameZ_doccsBt|ƒdkr6t|dtƒr6t|dtƒr6td|›�ƒ‚tƒ |¡S)NérrzCannot subclass )r{rPrQrprTÚsuperÚ__new__)r|r‡rˆ©Ú __class__rZr[rª3s  ÿ þz_SpecialForm.__new__cCs||_||_dSrrr¦)rŸÚnameÚdocrZrZr[Ú__init__@sz_SpecialForm.__init__cCst|tƒstS|j|jkSrr)rPrUÚNotImplementedr§©rŸÚotherrZrZr[Ú__eq__Ds z_SpecialForm.__eq__cCs t|jfƒSrr)Úhashr§r£rZrZr[Ú__hash__Isz_SpecialForm.__hash__cCs d|jS)Nútyping.©r§r£rZrZr[Ú__repr__Lsz_SpecialForm.__repr__cCs|jSrrr·r£rZrZr[Ú __reduce__Osz_SpecialForm.__reduce__cOstd|›�ƒ‚dS)NzCannot instantiate r…ržrZrZr[Ú__call__Rsz_SpecialForm.__call__cCst|›d�ƒ‚dS)Nz! cannot be used with isinstance()r…©rŸrdrZrZr[Ú__instancecheck__Usz_SpecialForm.__instancecheck__cCst|›d�ƒ‚dS)Nz! cannot be used with issubclass()r…©rŸr|rZrZr[Ú__subclasscheck__Xsz_SpecialForm.__subclasscheck__csÜ|jdkr(t||j›d�ƒ}t||fƒS|jdkr’|dkrBtdƒ‚t|tƒsR|f}d‰t‡fdd„|Dƒƒ}t|ƒ}t|ƒd krˆ|d St||ƒS|jd kr¶t|d ƒ}t|t dƒfS|jd krÊt||ƒSt|›d�ƒ‚dS)N)r r z accepts only single type.rrZz Cannot take a Union of no types.z)Union[arg, ...]: each arg must be a type.c3s|]}t|ˆƒVqdSrr©r\©rgrƒ©rXrZr[r˜fsz+_SpecialForm.__getitem__..rrrz#Optional[t] requires a single type.r z is not subscriptable) r§r\rRrTrPrpr„r{rrO)rŸr}ÚitemrWrZrÁr[Ú __getitem__[s(          z_SpecialForm.__getitem__)rbr^r_r¡rªr¯r³rµr¸r¹rºr¼r¾r’rÃÚ __classcell__rZrZr«r[rU,s rU)r�a`Special type indicating an unconstrained type. - Any is compatible with every type. - Any assumed to have all methods. - All values assumed to be instances of Any. Note that all the above statements are true from the point of view of static type checkers. At runtime, Any should not be used with instance or class checks. )r®aSpecial type indicating functions that never return. Example:: from typing import NoReturn def stop() -> NoReturn: raise Exception('no way') This type is invalid in other positions, e.g., ``List[NoReturn]`` will fail in static type checkers. a3Special type construct to mark class variables. An annotation wrapped in ClassVar indicates that a given attribute is intended to be used as a class variable and should not be set on instances of that class. Usage:: class Starship: stats: ClassVar[Dict[str, int]] = {} # class variable damage: int = 10 # instance variable ClassVar accepts only types and cannot be further subscribed. Note that ClassVar is not a class itself, and should not be used with isinstance() or issubclass(). aÄSpecial typing construct to indicate final names to type checkers. A final name cannot be re-assigned or overridden in a subclass. For example: MAX_SIZE: Final = 9000 MAX_SIZE += 1 # Error reported by type checker class Connection: TIMEOUT: Final[int] = 10 class FastConnector(Connection): TIMEOUT = 1 # Error reported by type checker There is no runtime checking of these properties. a'Union type; Union[X, Y] means either X or Y. To define a union, use e.g. Union[int, str]. Details: - The arguments must be types and there must be at least one. - None as an argument is a special case and is replaced by type(None). - Unions of unions are flattened, e.g.:: Union[Union[int, str], float] == Union[int, str, float] - Unions of a single argument vanish, e.g.:: Union[int] == int # The constructor actually returns int - Redundant arguments are skipped, e.g.:: Union[int, str, int] == Union[int, str] - When comparing unions, the argument order is ignored, e.g.:: Union[int, str] == Union[str, int] - You cannot subclass or instantiate a union. - You can use Optional[X] as a shorthand for Union[X, None]. zEOptional type. Optional[X] is equivalent to Union[X, None]. aöSpecial typing form to define literal types (a.k.a. value types). This form can be used to indicate to type checkers that the corresponding variable or function parameter has a value equivalent to the provided literal (or one of several literals): def validate_simple(data: Any) -> Literal[True]: # always returns True ... MODE = Literal['r', 'rb', 'w', 'wb'] def open_helper(file: str, mode: MODE) -> str: ... open_helper('/some/path', 'r') # Passes type check open_helper('/other/path', 'typo') # Error in type checker Literal[...] cannot be subclassed. At runtime, an arbitrary value is allowed as type argument to Literal[...], but type checkers may impose restrictions. c@s:eZdZdZddd„Zdd„Zdd„Zd d „Zd d „Zd S)r )Ú__forward_arg__Ú__forward_code__Ú__forward_evaluated__Ú__forward_value__Ú__forward_is_argument__TcCsnt|tƒstd|›�ƒ‚zt|ddƒ}Wn"tk rJtd|›�ƒ‚YnX||_||_d|_d|_||_ dS)Nz*Forward reference must be a string -- got zÚevalz/Forward reference must be an expression -- got F) rPrQrTÚcompileÚ SyntaxErrorrÅrÆrÇrÈrÉ)rŸrWrYÚcoderZrZr[r¯ðs zForwardRef.__init__cCsj|jr||k rd|dkr(|dkr(i}}n|dkr6|}n |dkrB|}tt|j||ƒd|jd�|_d|_|jS)Nz*Forward references must evaluate to types.©rYT)rÇr\rÊrÆrÉrÈ)rŸr–r—rZrZr[r™ýs  ýzForwardRef._evaluatecCs>t|tƒstS|jr2|jr2|j|jko0|j|jkS|j|jkSrr)rPr r°rÇrÅrÈr±rZrZr[r³ s    ÿzForwardRef.__eq__cCs t|jƒSrr)r´rÅr£rZrZr[rµszForwardRef.__hash__cCsd|j›d�S)Nz ForwardRef(ú))rÅr£rZrZr[r¸szForwardRef.__repr__N)T) rbr^r_r¡r¯r™r³rµr¸rZrZrZr[r és  c@s2eZdZdZddddœdd„Zdd„Zd d „ZdS) r)rbÚ __bound__Ú__constraints__Ú __covariant__Ú__contravariant__NF)ÚboundÚ covariantÚ contravariantc sÒ||_|r|rtdƒ‚t|ƒ|_t|ƒ|_|r>|dk r>tdƒ‚|rVt|ƒdkrVtdƒ‚d‰t‡fdd„|Dƒƒ|_|r„t |dƒ|_ nd|_ zt   d¡j  d d ¡}Wnttfk r¾d}YnX|d krÎ||_dS) Nz"Bivariant types are not supported.z-Constraints cannot be combined with bound=...rz"A single constraint is not allowedz:TypeVar(name, constraint, ...): constraints must be types.c3s|]}t|ˆƒVqdSrrr¿rfrÁrZr[r˜Vsz#TypeVar.__init__..zBound must be a type.rbÚ__main__Útyping)rbÚ ValueErrorÚboolrÒrÓrTr{rprÑr\rÐÚsysÚ _getframeÚ f_globalsÚgetÚAttributeErrorr^)rŸr­rÔrÕrÖZ constraintsZdef_modrZrÁr[r¯Js(    zTypeVar.__init__cCs&|jr d}n|jrd}nd}||jS)Nú+ú-ú~)rÒrÓrb)rŸÚprefixrZrZr[r¸bs zTypeVar.__repr__cCs|jSrr)rbr£rZrZr[r¹kszTypeVar.__reduce__)rbr^r_r¡r¯r¸r¹rZrZrZr[rs,ÿ  ) rsrpÚdictr€Ú frozensetÚdequeÚ defaultdictrOr;cCs| d¡o| d¡S)NÚ__)Ú startswithÚendswith)ÚattrrZrZr[Ú _is_dunder†srìcsŠeZdZddddœdd„Zedd„ƒZd d „Zd d „Zd d„Zdd„Z dd„Z dd„Z dd„Z ‡fdd„Z dd„Zdd„Zdd„Z‡ZS)rRTFN)ÚinstÚspecialr­cCsz||_||_|r*|dkr*|j}t ||¡}||_t|tƒs@|f}||_tdd„|Dƒƒ|_ t |ƒ|_ d|_ |sv|j |_ dS)Ncss*|]"}|tkrdn|tkrdn|VqdS).rZN)Ú_TypingEllipsisÚ _TypingEmptyr”rZrZr[r˜�sþ  z)_GenericAlias.__init__..)Ú_instrmrbÚ_normalize_aliasrÞr§rPrprSrtrqror¡r^)rŸÚoriginr‚rírîr­Z orig_namerZrZr[r¯“s    þ  z_GenericAlias.__init__cs^|jttfkrtd|›�ƒ‚t|tƒs,|f}d‰t‡fdd„|Dƒƒ}t||ƒt||j|ƒS)Nz%Cannot subscript already-subscripted ú*Parameters to generic types must be types.c3s|]}t|ˆƒVqdSrrr¿rÀrÁrZr[r˜­sz,_GenericAlias.__getitem__..) rSr rrTrPrpr~rvro©rŸr‚rZrÁr[rÃ¥s  z_GenericAlias.__getitem__cCst|j||j|jd�S)N)r­rí)rRrSr§rñrõrZrZr[rw±sz_GenericAlias.copy_withcCs¸|jdks&t|jƒdkrx|jdtkrx|jr8d|j}n t|jƒ}|jshdd dd„|jDƒ¡›d �}nd }|›|›�S|jr‚d Sd d d d„|jdd…Dƒ¡›dt|jdƒ›d �S)Nrérr¶ú[ú, cSsg|] }t|ƒ‘qSrZ©rer”rZrZr[rk½sz*_GenericAlias.__repr__..ú]Úztyping.Callableztyping.Callable[[cSsg|] }t|ƒ‘qSrZrùr”rZrZr[rkÃséÿÿÿÿz], )r§r{rtÚEllipsisrerSrmÚjoin)rŸr­r‡rZrZr[r¸µs  ÿ ÿ    z_GenericAlias.__repr__cCsRt|tƒstS|j|jkrdS|jtkrF|jtkrFt|jƒt|jƒkS|j|jkS)NF)rPrRr°rSrrårtr±rZrZr[r³Çs  z_GenericAlias.__eq__cCs,|jtkrttt|jƒfƒSt|j|jfƒSrr)rSrr´rårtr£rZrZr[rµÐs z_GenericAlias.__hash__cOsT|js$td|j›d|j ¡›d�ƒ‚|j||Ž}z ||_Wntk rNYnX|S)NúType z cannot be instantiated; use z () instead)rñrTr§ÚlowerrSÚ__orig_class__rß)rŸr‡ÚkwargsÚresultrZrZr[rºÕs  z_GenericAlias.__call__cCs°|jrZg}|j|kr | |j¡| |¡}tdd„||dd…DƒƒsR| t¡t|ƒS|jtkr¨t|krpdS| |¡}||dd…D]}t|t ƒrŠ||k rŠdSqŠ|jfS)Ncss"|]}t|tƒpt|tƒVqdSrr)rPrRÚ issubclassr ©rgÚbrZrZr[r˜æsÿz0_GenericAlias.__mro_entries__..rrZ) r§rSrlÚindexÚanyr rprrPrR)rŸÚbasesršrzrrZrZr[Ú__mro_entries__às$   ÿ   z_GenericAlias.__mro_entries__cCs*d|jkrt|ƒst|j|ƒSt|ƒ‚dS)NrS)Ú__dict__rìÚgetattrrSrß)rŸrërZrZr[Ú __getattr__ós z_GenericAlias.__getattr__cs2t|ƒs|dkr tƒ ||¡nt|j||ƒdS)N)r§rñrm)rìr©Ú __setattr__ÚsetattrrS)rŸrëÚvalr«rZr[rúsz_GenericAlias.__setattr__cCs| t|ƒ¡Srr)r¾rOr»rZrZr[r¼sz_GenericAlias.__instancecheck__cCs<|jr0t|tƒst||jƒS|jr0t|j|jƒStdƒ‚dS)NzBSubscripted generics cannot be used with class and instance checks)rmrPrRrrSrTr½rZrZr[r¾s   z_GenericAlias.__subclasscheck__cCs |jr |jS|jr tƒ|j}n|j}|tkrht|jƒdkrJ|jdtksht|jdd…ƒ|jdf}n*t |jƒ}t|ƒdkr’t |dt ƒs’|\}t j ||ffS)Nrörrür) rmr§ÚglobalsrSrr{rtrýrsrprPÚoperatorÚgetitem)rŸrór‡rZrZr[r¹ s ÿ ÿ z_GenericAlias.__reduce__)rbr^r_r¯r’rÃrwr¸r³rµrºr r rr¼r¾r¹rÄrZrZr«r[rRŠs      rRcs(eZdZdd„Ze‡fdd„ƒZ‡ZS)Ú_VariadicGenericAliascCs€|jdks|js| |¡St|tƒr0t|ƒdkr8tdƒ‚|\}}|tkrRt|f}n$t|tƒsjtd|›�ƒ‚t|ƒ|f}| |¡S)Nrröz6Callable must be used as Callable[[arg, ...], result].z1Callable[args, result]: args must be a list. Got ) r§rmÚ__getitem_inner__rPrpr{rTrýrs)rŸr‚r‡rrZrZr[rÃ"s    z!_VariadicGenericAlias.__getitem__cs |jtkr�|jr�|dkr$| tf¡St|tƒs4|f}t|ƒdkrl|ddkrld‰t|dˆƒ}| |tf¡Sd‰t‡fdd „|Dƒƒ}| |¡S|jt j j krþ|jrþ|\}}d ‰t|ˆƒ}|t krÐ| t|f¡Sd ‰t‡fd d „|Dƒƒ}||f}| |¡St ƒ |¡S) NrZrör.z Tuple[t, ...]: t must be a type.rz*Tuple[t0, t1, ...]: each t must be a type.c3s|]}t|ˆƒVqdSrrr¿rÀrÁrZr[r˜>sz:_VariadicGenericAlias.__getitem_inner__..z.Callable[args, result]: result must be a type.z6Callable[[arg, ...], result]: each arg must be a type.c3s|]}t|ˆƒVqdSrrr¿)rgrWrÁrZr[r˜Gs)rSrprmrwrðrPr{r\rïÚ collectionsÚabcrrýr©rÃ)rŸr‚rƒr‡rr«rÁr[r2s.      z'_VariadicGenericAlias.__getitem_inner__)rbr^r_rÃr’rrÄrZrZr«r[rsrcs<eZdZdZdZ‡fdd„Zedd„ƒZ‡fdd„Z‡Z S) r rZFcs^|ttfkrtd|j›d�ƒ‚tƒjtjkrF|jtjk rFtƒ |¡}ntƒj|f|ž|Ž}|S)Nrÿz< cannot be instantiated; it can be used only as a base class)r rrTrbr©rªÚobjectr¯)r|r‡rˆrdr«rZr[rªds  zGeneric.__new__cs´t|tƒs|f}|s.|tk r.td|j›d�ƒ‚d‰t‡fdd„|Dƒƒ}|ttfkr tdd„|Dƒƒsxtd|j›d�ƒ‚t t |ƒƒt |ƒkrªtd|j›d �ƒ‚n t ||ƒt ||ƒS) NzParameter list to z[...] cannot be emptyrôc3s|]}t|ˆƒVqdSrrr¿rÀrÁrZr[r˜vsz,Generic.__class_getitem__..css|]}t|tƒVqdSrr)rPrrÀrZrZr[r˜yszParameters to z [...] must all be type variablesz[...] must all be unique) rPrprrTr_r rÚallrbr{r€r~rR)r|r‚rZrÁr[Ú__class_getitem__ns&   ÿ  ÿ ÿ zGeneric.__class_getitem__c s tƒj||Žg}d|jkr(t|jk}nt|jko:|jdk}|rHtdƒ‚d|jkrüt|jƒ}d}|jD].}t |t ƒrf|j tkrf|dk rŽtdƒ‚|j }qf|dk rüt |ƒ}t |ƒ‰|ˆksød ‡fdd„|Dƒ¡}d dd„|Dƒ¡} td |›d | ›d �ƒ‚|}t|ƒ|_ dS) NÚ__orig_bases__rz!Cannot inherit from plain Genericz0Cannot inherit from Generic[...] multiple types.røc3s|]}|ˆkrt|ƒVqdSrr©rQrf©ZgvarsetrZr[r˜ sz,Generic.__init_subclass__..css|]}t|ƒVqdSrrr)rgÚgrZrZr[r˜¡szSome type variables (z) are not listed in Generic[rú)r©r r r rÚ __bases__rbrTrqrPrRrSror€rþrp) r|r‡rrjÚerrorZgvarsÚbaseZtvarsetZs_varsZs_argsr«rr[r „s8      ÿÿzGeneric.__init_subclass__) rbr^r_r¡Ú _is_protocolrªr’rr rÄrZrZr«r[r Ms   c@s eZdZdS)rðN©rbr^r_rZrZrZr[rð¨srðc@s eZdZdS)rïNr#rZrZrZr[rï¯srïrorrr"Ú_is_runtime_protocolÚ__abstractmethods__Ú__annotations__r Ú__doc__r¯r^rªr¡Ú__subclasshook__rœÚ_MutableMapping__markercCsrtƒ}|jdd…D]X}|jdkr$qt|diƒ}t|j ¡ƒt| ¡ƒD] }| d¡sJ|tkrJ|  |¡qJq|S)Nrü)rr r&Z_abc_) r€Ú__mro__rbr rsr ÚkeysréÚEXCLUDED_ATTRIBUTESÚadd)r|Úattrsr!Ú annotationsrërZrZr[Ú_get_protocol_attrs¾s  r0cst‡fdd„tˆƒDƒƒS)Nc3s|]}ttˆ|dƒƒVqdSrr)rVr ©rgrë©r|rZr[r˜Ñsz,_is_callable_members_only..)rr0r2rZr2r[Ú_is_callable_members_onlyÏsr3cOst|ƒjrtdƒ‚dS)Nz Protocols cannot be instantiated)rOr"rT)rŸr‡rrZrZr[Ú_no_initÔs r4c Cs6zt d¡jddkWSttfk r0YdSXdS)Nr¨rb)rr�T)rÛrÜrÝrßrÙrZrZrZr[Ú_allow_reckless_class_cheksÙsr5ÚAbstractContextManagerÚAbstractAsyncContextManager)zcollections.abcÚ contextlibcseZdZ‡fdd„Z‡ZS)Ú _ProtocolMetacsVtˆddƒrtˆƒr$tˆjˆƒr$dSˆjrJt‡‡fdd„tˆƒDƒƒrJdStƒ ˆ¡S)Nr"FTc3s8|]0}tˆ|ƒo.ttˆ|dƒƒ p.tˆ|ƒdk VqdSrr)ÚhasattrrVr r1©r|ÚinstancerZr[r˜ùsü z2_ProtocolMeta.__instancecheck__..) r r3rr¬r"rr0r©r¼r;r«r;r[r¼ñs ÿ þüz_ProtocolMeta.__instancecheck__)rbr^r_r¼rÄrZrZr«r[r9îsr9cs(eZdZdZdZdZ‡fdd„Z‡ZS)rrZTFcs°tƒj||Žˆj dd¡s2tdd„ˆjDƒƒˆ_‡fdd„}dˆjkrN|ˆ_ˆjsXdSˆjD]F}|tt fks^|j t krˆ|j t |j ks^t |t ƒr˜|js^td|ƒ‚q^tˆ_dS) Nr"Fcss|]}|tkVqdSrr)rrrZrZr[r˜)sz-Protocol.__init_subclass__..csàˆj dd¡stStˆddƒs0tƒr(tStdƒ‚tˆƒsJtƒrBtStdƒ‚t|tƒs\tdƒ‚t ˆƒD]v}|j D]b}||jkrš|j|dkr–tSqdt|diƒ}t|t j j ƒrn||krnt|tƒrn|jrnqdqntSqddS) Nr"Fr$zLInstance and class checks can only be used with @runtime_checkable protocolsz._proto_hookr(z7Protocols can only inherit from other protocols, got %r)r©r r rÞrrr"r(rr r^Ú_PROTO_WHITELISTrbrrTr4r¯)r|r‡rr=r!r«r2r[r $s, &   ÿþýýÿzProtocol.__init_subclass__)rbr^r_r¡r"r$r rÄrZrZr«r[rs)Ú metaclasscCs&t|tƒr|jstd|ƒ‚d|_|S)NzB@runtime_checkable can be only applied to protocol classes, got %rT)rr r"rTr$r2rZrZr[rKds ÿcCs|SrrrZ)ÚtyprrZrZr[rA}sc Cs�z |j}Wntk r"iYSX|j}|j}|d|…}|jpDd}|j}|rXt|ƒni}|t|ƒ}t||d…|ƒD]\}} | ||<qz|S)NrZ) Ú__code__rßÚ co_argcountÚ co_varnamesÚ __defaults__Ú__kwdefaults__rär{Úzip) r‹rÍZ pos_countZ arg_namesÚdefaultsZ kwdefaultsršZ pos_offsetr­ÚvaluerZrZr[Ú _get_defaultsˆs      rIc Cs¸t|ddƒriSt|tƒr¨i}t|jƒD]z}|dkrDtj|jj}n|}|j  di¡}|  ¡D]B\}}|dkrvtdƒ}t|t ƒrŒt |dd�}t |||ƒ}|||<q^q(|S|dkrôt|tjƒrÄ|j}n"|} t| dƒrÚ| j} qÈt| diƒ}|dkrò|}n|dk�r|}t|ddƒ}|dk�r6t|tƒ�r(iStd |¡ƒ‚t|ƒ} t|ƒ}|  ¡D]d\}}|dk�rhtdƒ}t|t ƒ�r|t |ƒ}t |||ƒ}|| k�r¨| |dk�r¨t|}|||<�qN|S)NÚ__no_type_check__r&FrÎÚ __wrapped__Ú __globals__z1{!r} is not a module, class, method, or function.)r rPrOÚreversedr*rÛÚmodulesr^r rÞÚitemsrQr r“r`Ú ModuleTyper:rKÚ_allowed_typesrTÚformatrIrär) rdr–r—Zhintsr!Z base_globalsÚannr­rHZnsobjrGrZrZr[rE¡s^             ÿ    cCs t|tƒr|jS|tkrtSdSrr)rPrRrSr )rxrZrZr[rD÷s  cCsRt|tƒrN|jsN|j}t|ƒtjjkrJ|dtk rJt |dd…ƒ|df}|SdS)NrrürZ) rPrRrmrtrDrrrrýrs)rxršrZrZr[rC s cCs˜t|tƒrt|j ¡}|j ¡D]"\}}||j|fkr| |¡q| ¡D](}t|tj ƒr`d|_ t|tƒrJt |ƒqJz d|_ Wnt k r’YnX|S)NT) rPrOr ÚcopyrOrÚpopÚvaluesr`rarJrGrT)rWZ arg_attrsrërrdrZrZr[rGs        cst ˆ¡‡fdd„ƒ}|S)Ncsˆ||Ž}t|ƒ}|Srr)rG)r‡rˆr‹©Ú decoratorrZr[Úwrapped_decorator@s z2no_type_check_decorator..wrapped_decorator)r�r‘)rXrYrZrWr[rH9scOs tdƒ‚dS)Nz´You should not call an overloaded function. A series of @overload-decorated functions outside a stub module should always be followed by an implementation that is not @overload-ed.)ÚNotImplementedErrorr†rZrZr[Ú_overload_dummyIsÿr[cCstSrr)r[)r‹rZrZr[rJRscCs|SrrrZ)ÚfrZrZr[rBosÚTÚKTÚVTÚT_co)rÕÚV_coÚVT_coÚT_contra)rÖÚCT_co)rÕrÔcCst||d|d�S)NT)rîrí)rR)rór‚rírZrZr[Ú_alias›srerZ)rîa�Callable type; Callable[[int], str] is a function of (int) -> str. The subscription syntax must always be used with exactly two values: the argument list and the return type. The argument list must be a list of types or ellipsis; the return type must be a single type. There is no syntax to indicate optional or keyword arguments, such function types are rarely used as callback types. F)rírîa@Tuple type; Tuple[X, Y] is the cross-product type of X and Y. Example: Tuple[T1, T2] is a tuple of two elements corresponding to type variables T1 and T2. Tuple[int, float, str] is a tuple of an int, a float and a string. To specify a variable-length tuple of homogeneous type, use Tuple[T, ...]. )ría¾A special construct usable to annotate class objects. For example, suppose we have the following classes:: class User: ... # Abstract base for User classes class BasicUser(User): ... class ProUser(User): ... class TeamUser(User): ... And a function that takes a class argument that's a subclass of User and returns an instance of the corresponding class:: U = TypeVar('U', bound=User) def new_user(user_class: Type[U]) -> U: user = user_class() # (Here we could write the user object to a database) return user joe = new_user(BasicUser) At this point the type checker knows that joe has type BasicUser. c@s"eZdZdZeedœdd„ƒZdS)r2rZ©ÚreturncCsdSrrrZr£rZrZr[Ú__int__öszSupportsInt.__int__N)rbr^r_r¡rÚintrhrZrZrZr[r2ñsc@s"eZdZdZeedœdd„ƒZdS)r0rZrfcCsdSrrrZr£rZrZr[Ú __float__szSupportsFloat.__float__N)rbr^r_r¡rÚfloatrjrZrZrZr[r0ûsc@s"eZdZdZeedœdd„ƒZdS)r/rZrfcCsdSrrrZr£rZrZr[Ú __complex__ szSupportsComplex.__complex__N)rbr^r_r¡rÚcomplexrlrZrZrZr[r/sc@s"eZdZdZeedœdd„ƒZdS)r.rZrfcCsdSrrrZr£rZrZr[Ú __bytes__szSupportsBytes.__bytes__N)rbr^r_r¡rÚbytesrnrZrZrZr[r.sc@s"eZdZdZeedœdd„ƒZdS)r1rZrfcCsdSrrrZr£rZrZr[Ú __index__szSupportsIndex.__index__N)rbr^r_r¡rrirprZrZrZr[r1sc@s"eZdZdZeedœdd„ƒZdS)r-rZrfcCsdSrrrZr£rZrZr[Ú__abs__(szSupportsAbs.__abs__N)rbr^r_r¡rr`rqrZrZrZr[r-#sc@s&eZdZdZedeedœdd„ƒZdS)r3rZr)ÚndigitsrgcCsdSrrrZ)rŸrrrZrZr[Ú __round__2szSupportsRound.__round__N)r)rbr^r_r¡rrir`rsrZrZrZr[r3-sc std‰‡fdd„|Dƒ}t |dd„|Dƒ¡}t|ƒ|_|_zt d¡j dd¡|_ Wnt t fk rnYnX|S)NzDNamedTuple('Name', [(f0, t0), (f1, t1), ...]); each t must be a typecsg|]\}}|t|ˆƒf‘qSrZr¿©rgÚnrhrÁrZr[rk9sz!_make_nmtuple..cSsg|] \}}|‘qSrZrZrtrZrZr[rk:srörbr×) rÚ namedtuplerär&Ú _field_typesrÛrÜrÝrÞr^rßrÙ)r­r`Únm_tplrZrÁr[Ú _make_nmtuple7sry) rªr¯r¡Ú__getnewargs__Ú_fieldsÚ_field_defaultsrwÚ_makeÚ_replaceÚ_asdictZ_source)r^rbr&cseZdZ‡fdd„Z‡ZS)ÚNamedTupleMetac sò| dd¡rtƒ ||||¡S| di¡}t|| ¡ƒ}g}i}|D]H}||krl||} | | ¡| ||<qD|rDtdj|d |  ¡¡d�ƒ‚qDt |ƒ|j_ t |ƒ|j_ ||_|D]<} | tkrÊtd| ƒ‚q°| tkr°| |jkr°t|| || ƒq°|S)Nr�Fr&zXNon-default namedtuple field {field_name} cannot follow default field(s) {default_names}rø)Ú field_nameZ default_namesz&Cannot overwrite NamedTuple attribute )rÞr©rªryrOrlrTrRrþr+rär&rprDr|Ú _prohibitedrßrmr{r) r|Útypenamer Únsr`rxrGZ defaults_dictr�Z default_valueÚkeyr«rZr[rªOs2     ý   zNamedTupleMeta.__new__)rbr^r_rªrÄrZrZr«r[r€Msr€c@seZdZdZdd„Zde_dS)r=TcOsú|s tdƒ‚|^}}|r"|^}}n4d|krN| d¡}ddl}|jdtdd�ntdƒ‚|r–z |\}WqÒtk r’tdt|ƒd›d �ƒd‚YqÒXnrªr&z?TypedDict('Name', {f0: t0, f1: t1, ...}); each t must be a typecsi|]\}}|t|ˆƒ“qSrZr¿)rgrurxrÁrZr[Ú Õsz*_TypedDictMeta.__new__..rŽ) r�rŒr©r�rªrärÞrOÚupdater r&r:rŽ)r|r­r r„r�Ztp_dictZannsr!r«rÁr[rªÇs   z_TypedDictMeta.__new__)T)rbr^r_rªr‘r¼r¾rÄrZrZr«r[r�Æsr�c@s eZdZdS)r>Nr#rZrZrZr[r>àscCsdd„}||_||_|S)NcSs|SrrrZ)ÚxrZrZr[Únew_typeszNewType..new_type)rbZ __supertype__)r­rxr•rZrZr[rF sc@s¦eZdZdZeeedœdd„ƒƒZeeedœdd„ƒƒZeddœdd „ƒZ eee dœd d „ƒƒZ ee dœd d „ƒZ eddœdd„ƒZee dœdd„ƒZed6e edœdd„ƒZee dœdd„ƒZed7e edœdd„ƒZed8e eedœdd„ƒZed9e e e dœd d!„ƒZee dœd"d#„ƒZee dœd$d%„ƒZed:e e d&œd'd(„ƒZee dœd)d*„ƒZeee d+œd,d-„ƒZeeedd.œd/d0„ƒZed1dœd2d3„ƒZeddœd4d5„ƒZdS);ÚIOrZrfcCsdSrrrZr£rZrZr[Úmode=szIO.modecCsdSrrrZr£rZrZr[r­BszIO.nameNcCsdSrrrZr£rZrZr[ÚcloseGszIO.closecCsdSrrrZr£rZrZr[ÚclosedKsz IO.closedcCsdSrrrZr£rZrZr[ÚfilenoPsz IO.filenocCsdSrrrZr£rZrZr[ÚflushTszIO.flushcCsdSrrrZr£rZrZr[ÚisattyXsz IO.isattyrü)rurgcCsdSrrrZ)rŸrurZrZr[Úread\szIO.readcCsdSrrrZr£rZrZr[Úreadable`sz IO.readable)ÚlimitrgcCsdSrrrZ)rŸrŸrZrZr[Úreadlinedsz IO.readline)ÚhintrgcCsdSrrrZ)rŸr¡rZrZr[Ú readlineshsz IO.readlinesr)ÚoffsetÚwhencergcCsdSrrrZ)rŸr£r¤rZrZr[ÚseeklszIO.seekcCsdSrrrZr£rZrZr[Úseekablepsz IO.seekablecCsdSrrrZr£rZrZr[ÚtelltszIO.tell)ÚsizergcCsdSrrrZ)rŸr¨rZrZr[Útruncatexsz IO.truncatecCsdSrrrZr£rZrZr[Úwritable|sz IO.writable©ÚsrgcCsdSrrrZ©rŸr¬rZrZr[Úwrite€szIO.write)ÚlinesrgcCsdSrrrZ)rŸr¯rZrZr[Ú writelines„sz IO.writelinesz IO[AnyStr]cCsdSrrrZr£rZrZr[Ú __enter__ˆsz IO.__enter__cCsdSrrrZ)rŸrOrHÚ tracebackrZrZr[Ú__exit__Œsz IO.__exit__)rü)rü)rü)r)N)rbr^r_r¡ÚpropertyrrQr—r­r˜rÚr™riršr›rœr@r�ržr r9r¢r¥r¦r§r©rªr®r°r±r³rZrZrZr[r–.sX r–c@s>eZdZdZeeeefedœdd„ƒZ eddœdd„ƒZ dS) ÚBinaryIOrZr«cCsdSrrrZr­rZrZr[r®–szBinaryIO.writerfcCsdSrrrZr£rZrZr[r±šszBinaryIO.__enter__N) rbr^r_r¡rrroÚ bytearrayrir®r±rZrZrZr[rµ‘s rµc@s”eZdZdZeeedœdd„ƒƒZeeedœdd„ƒƒZ eee edœdd„ƒƒZ eee dœd d „ƒƒZ eeedœd d „ƒƒZeddœd d„ƒZdS)ÚTextIOrZrfcCsdSrrrZr£rZrZr[Úbuffer¤sz TextIO.buffercCsdSrrrZr£rZrZr[Úencoding©szTextIO.encodingcCsdSrrrZr£rZrZr[Úerrors®sz TextIO.errorscCsdSrrrZr£rZrZr[Úline_buffering³szTextIO.line_bufferingcCsdSrrrZr£rZrZr[Únewlines¸szTextIO.newlinescCsdSrrrZr£rZrZr[r±½szTextIO.__enter__N)rbr^r_r¡r´rrµr¸rQr¹rrºrÚr»rr¼r±rZrZrZr[r·Ÿs$r·c@s"eZdZdddgZeZeZeZdS)Úior–r·rµN)rbr^r_Ú__all__r–r·rµrZrZrZr[r½Âs r½z.ioc@seZdZddgZeZeZdS)ÚreÚPatternÚMatchN)rbr^r_r¾rÀrÁrZrZrZr[r¿Ñsr¿z.re)T)NN)T)N)ŸrrrrZcollections.abcr8r�rr¿Z stdlib_rerÛr`rrrr¾r\rerqrvr~r„r�r’r“r›r¢rUrrIr r rrr r rròrìrRrr rðrïZ_TYPING_INTERNALSZ_SPECIAL_NAMESr,r0r3r4r5r>r9rrKrArIraÚBuiltinFunctionTypeÚ MethodTyperPrQrErDrCrGrHr[rJrBr]r^r_r`rarbrcrOrdrorQr@rerr%r(r'r&rrr,r#rr)rr'r;rr!rrr"r rrprrsr9rær6r€rår<rrrr$r6rr7r+rär7rçr8r:r5r4r?r*rr2r0r/r.r1r-r3ryr‚rmr€r=rŒr�r‘r�r>rFrLrMr–rµr·r½rbrNrÀrÁrZrZrZr[Ús&°X !   Iÿ ÿ ÿÿÿÿÿ2aø /[ÿþþû b þ V       ÿ ÿ     ÿ       @+c#