e ddlZddlZddlZddlZddlmZmZddlmZejdk(Z ejdddk\Z ejdddk\Z ejdddk\Zejddd k\Zejdkr dd lmZndd lmZGd d Zej*Zd Zy#e$reZY(wxYw)N)MappingSequence) _GenericAliasPyPy))r )r )r )Protocolc(eZdZdZdgZdZdZdZy)_AnnotationExtractorz^ Extract type annotations from a callable, returning None whenever there is none. sigcr tj||_y#ttf$r d|_YywxYw)N)inspect signaturer ValueError TypeError)selfcallables ./usr/lib/python3/dist-packages/attr/_compat.py__init__z_AnnotationExtractor.__init__$s4 ((2DHI& DH s 66c|jsyt|jjj}|r8|djt j jur|djSy)zU Return the type annotation of the first argument if it's not empty. Nr)rlist parametersvalues annotationr Parameterempty)rparamss rget_first_param_typez)_AnnotationExtractor.get_first_param_type*s^xxdhh))0023 fQi**'2C2C2I2II!9'' 'c|jrF|jjtjjur|jjSy)z; Return the return type if it's not empty. N)rreturn_annotationr Signaturer )rs rget_return_typez$_AnnotationExtractor.get_return_type7s< HH**'2C2C2I2II88-- -r#N)__name__ __module__ __qualname____doc__ __slots__rr"r'r#rrrs I  r#rc@|jtur |jSy)zDIf this is a generic class (A[str]), return the generic base for it.N) __class__r __origin__)cls rget_generic_baser2Ss ||}$}} r#)rplatformsys threadingcollections.abcrrtypingrpython_implementationPYPY version_info PY_3_8_PLUS PY_3_9_PLUSPY310 PY_3_12_PLUStyping_extensionsr ImportErrorobjectrlocal repr_contextr2r-r#rrDs - &x%%'61r"f, r"f,  !'#w. f. %%hy { s B77CC