+
     Xh  c                   s   ^ RI t ^ RIt^ RIt^ RIt^ RIHtHt ^ RIHt ]P                  ! 4       R8H  t
]P                  R,          R8  t]P                  R,          R8  t]P                  R,          R8  t]P                  R,          R8  t]P                  R,          R8  t]'       d	   ^ RItR tMR t ! R R	4      t]P(                  ! 4       tR
 tR# )i    N)MappingSequence)_GenericAliasZPyPy:Ni   Nc                 sb    \         P                  ! V \         P                  P                  R 7      # ))Zformat)annotationlibZget_annotationsZFormatZ
FORWARDREFZcls   &1/usr/lib/python3.14/site-packages/attr/_compat.py_get_annotationsr      s&    ,,,,77
 	
    c                s:    V P                   P                  R/ 4      # )z
Get annotations for *cls*.
Z__annotations__)Z__dict__Zgetr   r   r   r   r   !   s     || 1266r   c                   s<   a  ] tR t^(t o RtR.tR tR tR tRt	V t
R# )_AnnotationExtractorzR
Extract type annotations from a callable, returning None whenever there
is none.
sigc                s|     \         P                  ! V4      V n        R #   \        \        3 d    R T n         R # i ; i)N)inspectZ	signaturer
   Z
ValueErrorZ	TypeError)selfZcallables   &&r   __init__Z_AnnotationExtractor.__init__0   s4    	((2DHI& 	DH	s    ;;c                s   V P                   '       g   R# \        V P                   P                  P                  4       4      pV'       dC   V^ ,          P                  \
        P                  P                  Jd   V^ ,          P                  # R# )zE
Return the type annotation of the first argument if it's not empty.
N)r
   ZlistZ
parametersZvaluesZ
annotationr   Z	Parameterempty)r   Zparamss   & r   get_first_param_typeZ)_AnnotationExtractor.get_first_param_type6   s`     xxxdhh))0023fQi**'2C2C2I2II!9'''r   c                s    V P                   '       dI   V P                   P                  \        P                  P                  Jd   V P                   P                  # R# )z+
Return the return type if it's not empty.
N)r
   Zreturn_annotationr   Z	Signaturer   )r   r   r   get_return_typeZ$_AnnotationExtractor.get_return_typeC   s>    
 HHH**'2C2C2I2II88---r   )r
   N)Z__name__Z
__module__Z__qualname__Z__firstlineno__Z__doc__Z	__slots__r   r   r   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r   r	   r	   (   s'     
 I
 
r   r	   c                sF    V P                   \        J d   V P                  # R# )zDIf this is a generic class (A[str]), return the generic base for it.N)Z	__class__r   Z
__origin__)Zclr   r   get_generic_baser   _   s    	||}$}}r   )   i
   )r   i   )r   i   )r   i   )r   i   )r   ZplatformZsysZ	threadingZcollections.abcr    r   Ztypingr   Zpython_implementationZPYPYZversion_infoZPY_3_10_PLUSZPY_3_11_PLUSZPY_3_12_PLUSZPY_3_13_PLUSZPY_3_14_PLUSr   r   r	   ZlocalZrepr_contextr   ) r   r   <module>r      s      
  -   %%'61#w.#w.#w.#w.#w. 

7% %h  r   