o 6a~@s\ddlmZddlZddlZddlZddlZddlZddlmZm Z m Z m Z m Z m Z ddlZddlZddlmZedejddZedZed ZeejefZeeje efZejd krzeejefZeeje efZe e eejfge fZn e Ze Ze ege fZe e!e"ejej#Z$ej%d gej&d Z'e'j(d ddddZ)GdddZ*dS)) annotationsN)TypeVarAnyCallableTupleTypeUnion) _GenericAlias ScalarTypeT)bound covariantT1T2 )dtypeF)writebasetypereturnTuple[type, ...]cCsGddd|}|jddS)Nc@s eZdZdS)z#_get_subclass_mro..SubclassN)__name__ __module__ __qualname__rrG/usr/lib/python3/dist-packages/numpy/typing/tests/test_generic_alias.pySubclass#srr)__mro__)rrrrr_get_subclass_mro"sr c@seZdZdZejddddfdddfdd dfd d dfd d dfdddfdddfdddfdddfdddfdddfdddfdddfdddfdddfdd dfd!d"dfd!d#dfd$d%dfd&d'dfgdLd.d/Zejdd0d1dfd2d3dfgdLd4d5ZdMd6d7Z ejd(e dNd8d9Z ejd:de d;dfde de d?dfd@e dAdfdBe dCdfdBe dDdfdEe dFdfgdOdIdJZdKS)PTestGenericAliasz6Tests for `numpy.typing._generic_alias._GenericAlias`.z name,func__init__cCs|SNrnrrr,szTestGenericAlias. __origin__cC|jSr#)r'r$rrrr&-__args__cCr(r#)r*r$rrrr&.r)__parameters__cCr(r#)r+r$rrrr&/r) __reduce__cCs|ddSNr)r,r$rrrr&0 __reduce_ex__cCs|dddSr-)r/r$rrrr&1s__mro_entries__cCs |tgSr#)r0objectr$rrrr&2 __hash__cCt|Sr#)hashr$rrrr&3__repr__cCr4r#)reprr$rrrr&4r6 __getitem__cCs |tjSr#)npfloat64r$rrrr&5 cCs|ttjSr#)r r:r;r$rrrr&6cCs|ttjtftjSr#)rr:int64r r;r$rrrr&7scCs|tttftjtjfSr#)rr rr:float32r;r$rrrr&8s__eq__cCs||kSr#rr$rrrr&9r6__ne__cCs |tjkSr#)r:ndarrayr$rrrr&:r<__dir__cCr4r#)dirr$rrrr&;r6__call__cCs|dtjtS)Nrr:r>BUFFERr$rrrr&<r=cCs|dtjtdS)NrF)shaperbufferrGr$rrrr&=r. subclassingcCr4r#)r r$rrrr&>r6picklecCs|tt|kSr#)rLloadsdumpsr$rrrr&?snamestrfuncFuncTyperNonecCs.|t}tjdkr|t}||ksJdSdS)zCompare `types.GenericAlias` with its numpy-based backport. Checker whether ``func`` runs as intended and that both `GenericAlias` and `_GenericAlias` return the same result. rNNDArraysys version_info NDArray_ref)selfrOrQvalue value_refrrr test_pass+s   zTestGenericAlias.test_pass__copy__cCs|t|kSr#)copyr$rrrr&Or= __deepcopy__cCs|t|kSr#)r^deepcopyr$rrrr&Pr=cCsN|t}tjdddkotjdk}|stjdkr%|t}||ks#JdSdS)Nr)rr)r rrT)rYrOrQrZGE_398r[rrr test_copyNszTestGenericAlias.test_copycCs6tt}tjdkrtt}||ksJdSdS)zTest ``__weakref__``.)rrrN)weakrefrefrUrVrWrX)rYrZr[rrr test_weakref]s    zTestGenericAlias.test_weakrefcCsZtt|}ttj|}tjdkr%tt|}||kr |ks#JJdS||ks+JdS)z[Test that `getattr` wraps around the underlying type, aka ``__origin__``. rN)getattrrUr:rBrVrWrX)rYrOrZ value_ref1 value_ref2rrr test_getattres     zTestGenericAlias.test_getattrzname,exc_type,funccCs|dS)Nrrr$rrrr&ur6cCs |ttfSr#rr$rrrr&vr2cCs |ttSr#rmr$rrrr&wr2 isinstancecCsttd|Sr-)rnr:arrayr$rrrr&xr. issublasscCs ttj|Sr#) issubclassr:rBr$rrrr&yr2setattrcC t|dtS)Nr'rrintr$rrrr&zr2cCrsNtestrtr$rrrr&{r2ricCs t|dSrv)rir$rrrr&|r<exc_typeType[BaseException]cCsxt| |tWdn1swYtjdkr:t| |tWddS1s3wYdSdS)z+Test operations that are supposed to raise.Nr)pytestraisesrUrVrWrX)rYrOrxrQrrr test_raisets     "zTestGenericAlias.test_raiseN)rOrPrQrRrrS)rrS)rOrPrrS)rOrPrxryrQrRrrS)rrr__doc__rzmark parametrizer\rerh GETATTR_NAMESrl TypeErrorAttributeErrorr|rrrrr!(sX                                   r!)rrrr)+ __future__rrVr^typesrLrftypingrrrrrrrznumpyr:numpy.typing._generic_aliasr genericr r rrDTyperBrUrW GenericAlias DType_refrXrRsortedsetrD_ATTR_EXCEPTIONSrror>rHsetflagsr r!rrrrs6