o 6a@s6ddlmZddlZddlZddlmZmZmZmZm Z m Z m Z m Z m Z mZmZmZddlZddgZedddZdd d ZdddZdddZGdddZejdkrYeejfZnefZedejddZerrejeejefZ dSejdkreejefZ!eejee!fZ dSeejefZ!eejee!fZ dS) ) annotationsN) AnyClassVar FrozenSet GeneratorIterableIteratorListNoReturnTupleTypeTypeVar TYPE_CHECKING _GenericAliasNDArray_T)boundobjobjectreturnstrcCsJ|turdSt|tr!t|ts!|jdkr|jS|jd|jSt|S)z-Helper function for `_GenericAlias.__repr__`.z...builtins.)Ellipsis isinstancetype_GENERIC_ALIAS_TYPE __module__ __qualname__repr)rr =/usr/lib/python3/dist-packages/numpy/typing/_generic_alias.py_to_strs r"args Iterable[Any]Generator[TypeVar, None, None]ccs8|D]}t|dr|jEdHqt|tr|VqdS)zzSearch for all typevars and typevar-containing objects in `args`. Helper function for `_GenericAlias.__init__`. __parameters__N)hasattrr&rr )r#ir r r!_parse_parameters(s  r)alias parametersIterator[TypeVar]csg}|jD]4}t|trt}n#t|trt|}nt|dr2tfdd|jD}||}n|}| |qt |}||j t|S)z{Recursivelly replace all typevars with those from `parameters`. Helper function for `_GenericAlias.__getitem__`. r&c3s|]}tVqdSN)next).0_r+r r! Bz%_reconstruct_alias..) __args__rr r.r_reconstruct_aliasr'tupler&appendr __origin__)r*r+r#r(valueprm_tupclsr r1r!r55s        r5cseZdZUdZdZed=fdd Zed>fdd Zed?fd d Zd@ddZ ed=ddZ dAddZ dBddZ dCd d!Z dDfd#d$ ZdEd(d)ZdFd+d,ZdGd.d/ZdHd1d2ZdId5d6Zehd7Zd8ed9<dJfd;d< ZZS)KraA python-based backport of the `types.GenericAlias` class. E.g. for ``t = list[int]``, ``t.__origin__`` is ``list`` and ``t.__args__`` is ``(int,)``. See Also -------- :pep:`585` The PEP responsible for introducing `types.GenericAlias`. ) __weakref___origin_args _parameters_hashrrc tdS)Nr=super__getattribute__self __class__r r!r8[ z_GenericAlias.__origin__Tuple[Any, ...]crA)Nr>rBrErGr r!r4_rIz_GenericAlias.__args__Tuple[TypeVar, ...]crA)z'Type variables in the ``GenericAlias``.r?rBrErGr r!r&cs z_GenericAlias.__parameters__originr#rNonecCs.||_t|tr |n|f|_tt||_dSr-)r=rr6r>r)r?)rFrLr#r r r!__init__hsz_GenericAlias.__init__cCs|jSr-r8rEr r r!__call__msz_GenericAlias.__call__rFr-Tuple[Type[_T], Tuple[type, Tuple[Any, ...]]]cCst|}||j|jffSr-)rr8r4rFr;r r r! __reduce__qsz_GenericAlias.__reduce__basesIterable[object] Tuple[type]cCs|jfSr-rO)rFrTr r r!__mro_entries__usz_GenericAlias.__mro_entries__ List[str]cCs$t|}tt|j}t|j|BS)zImplement ``dir(self)``.)rsetdirr8sorted_ATTR_EXCEPTIONS)rFr; dir_originr r r!__dir__xsz_GenericAlias.__dir__intcsDztdWSty!t|jt|jA|_tdYSw)zReturn ``hash(self)``.r@)rCrDAttributeErrorhashr8r4r@rErGr r!__hash__~s  z_GenericAlias.__hash__rrr cCtd)z!Check if an `obj` is an instance.z9isinstance() argument 2 cannot be a parameterized generic TypeError)rFrr r r!__instancecheck__z_GenericAlias.__instancecheck__r;cCrc)zCheck if a `cls` is a subclass.z9issubclass() argument 2 cannot be a parameterized genericrdrRr r r!__subclasscheck__rgz_GenericAlias.__subclasscheck__rcCs0ddd|jD}t|j}|d|dS)zReturn ``repr(self)``.z, css|]}t|VqdSr-)r")r/r(r r r!r2r3z)_GenericAlias.__repr__..[])joinr4r"r8)rFr#rLr r r!__repr__s z_GenericAlias.__repr__keycCst|tr|n|f}t|jdkrtd|t|t|jkr(td|t|t|jkr8td|t|}t||S)zReturn ``self[key]``.rz$There are no type variables left in zToo many arguments for zToo few arguments for )rr6lenr&reiterr5)rFrmkey_tupkey_iterr r r! __getitem__s z_GenericAlias.__getitem__r9boolcCs&t|tstS|j|jko|j|jkS)zReturn ``self == value``.)rrNotImplementedr8r4)rFr9r r r!__eq__s   z_GenericAlias.__eq__>r4__copy__r8rS __deepcopy__ __reduce_ex__r&rWzClassVar[FrozenSet[str]]r\namecs*t|}||jvrt|St|j|S)zReturn ``getattr(self, name)``.)rr\rCrDgetattrr8)rFryr;rGr r!rDs   z_GenericAlias.__getattribute__)rr)rrJ)rrK)rLrr#rrrM)rFrrrQ)rTrUrrV)rrX)rr_)rrrr )r;rrr )rr)rFrrmrrr)r9rrrs)ryrrr)__name__rr__doc__ __slots__propertyr8r4r&rNrPrSrWr^rbrfrhrlrrru frozensetr\__annotations__rD __classcell__r r rGr!rLs.             ) ScalarTypeT)r covariant)rrrr)r#r$rr%)r*rr+r,rr)" __future__rsystypestypingrrrrrrr r r r r rnumpynp__all__rr"r)r5r version_info GenericAliasrgenericrndarraydtyper_DTyper r r r!s, 8    x