Ë
    Èúàeì	  ã                   óˆ  — d dl Z d dlZd dlZd dlZd dlmZmZ d dlmZ  ej                  «       dk(  Z
ej                  dd dk\  Zej                  dd dk\  Zej                  dd dk\  Zej                  dd d	k\  Zej                  dk  r	 d d
lmZ nd d
lmZ  G d„ d«      Z ej*                  «       Zd„ Zy# e$ r eZY Œ(w xY w)é    N)ÚMappingÚSequence)Ú_GenericAliasÚPyPyé   )é   é   )r   é	   )r   é
   )r   é   )ÚProtocolc                   ó(   — e Zd ZdZdgZd„ Zd„ Zd„ Zy)Ú_AnnotationExtractorz^
    Extract type annotations from a callable, returning None whenever there
    is none.
    Úsigc                 ór   — 	 t        j                  |«      | _        y # t        t        f$ r
 d | _        Y y w xY w)N)ÚinspectÚ	signaturer   Ú
ValueErrorÚ	TypeError)ÚselfÚcallables     ú./usr/lib/python3/dist-packages/attr/_compat.pyÚ__init__z_AnnotationExtractor.__init__$   s4   € ð	Ü×(Ñ(¨Ó2ˆD�HøÜœIÐ&ò 	ØˆDŽHð	ús   ‚ �6µ6c                 óì   — | j                   syt        | j                   j                  j                  «       «      }|r8|d   j                  t
        j                  j                  ur|d   j                  S y)zU
        Return the type annotation of the first argument if it's not empty.
        Nr   )r   ÚlistÚ
parametersÚvaluesÚ
annotationr   Ú	ParameterÚempty)r   Úparamss     r   Úget_first_param_typez)_AnnotationExtractor.get_first_param_type*   s^   € ð �xŠxØä�d—h‘h×)Ñ)×0Ñ0Ó2Ó3ˆÙ�f˜Q‘i×*Ñ*´'×2CÑ2C×2IÑ2IÑIØ˜!‘9×'Ñ'Ð'àó    c                 ó¨   — | j                   rF| j                   j                  t        j                  j                  ur| j                   j                  S y)z;
        Return the return type if it's not empty.
        N)r   Úreturn_annotationr   Ú	Signaturer    )r   s    r   Úget_return_typez$_AnnotationExtractor.get_return_type7   s<   € ð
 �HŠHØ—‘×*Ñ*´'×2CÑ2C×2IÑ2IÑIà—8‘8×-Ñ-Ð-àr#   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   r"   r'   © r#   r   r   r      s   „ ñð
 �€Iòòó
r#   r   c                 ó@   — | j                   t        u r| j                  S y)zDIf this is a generic class (A[str]), return the generic base for it.N)Ú	__class__r   Ú
__origin__)Úcls    r   Úget_generic_baser2   S   s   € à	‡|�|”}Ñ$Ø�}‰}ÐØr#   )r   ÚplatformÚsysÚ	threadingÚcollections.abcr   r   Útypingr   Úpython_implementationÚPYPYÚversion_infoÚPY_3_8_PLUSÚPY_3_9_PLUSÚPY310ÚPY_3_12_PLUSÚtyping_extensionsr   ÚImportErrorÚobjectr   ÚlocalÚrepr_contextr2   r-   r#   r   ú<module>rD      sà   ðó Û Û 
Û ç -Ý  ð &€x×%Ñ%Ó'¨6Ñ1€Ø×Ñ˜r Ð" fÑ,€Ø×Ñ˜r Ð" fÑ,€Ø×Ñ˜˜!Ð Ñ'€Ø×Ñ  Ð# wÑ.€ð ×Ñ�fÒðÞ.õ  ÷%ñ %ðh ˆy�‰Ó €óøð{ ò ØŠðús   ÂB7 Â7CÃ C