o
    4@Hh                     @  sV   d dl mZ d dlZd dlZddlmZ ddlmZ ddd	Z	dd
dZ
dddZdS )    )annotationsN   )abc)TaskreturnNonec               
   C  sl   ddt ft ft ft ft fddd	} t }|  D ]\}}t||s$J t||}t|s/J ||  qd S )N )gffffff
@)	
before_run	after_runtask_spawnedtask_scheduledbefore_task_stepafter_task_steptask_exitedbefore_io_waitafter_io_wait)r   tabc
Instrumentitemshasattrgetattrcallable)attrs
mayonnaisemethod_nameargsmethodr   r   T/home/air/sanwanet/gpt-api/venv/lib/python3.10/site-packages/trio/_tests/test_abc.py'test_instrument_implements_hook_methods
   s"   

r   c               	     s   t jddG dd dtj} |  4 I d H }t|| sJ |jg ks&J W d   I d H  n1 I d H s6w   Y  |jdgksCJ d S )NF)slotsc                   @  s*   e Zd ZU eeZded< dddZdS )	z)test_AsyncResource_defaults.<locals>.MyARz	list[str]recordr   r   c                   s   | j d d S )Nac)r    appendselfr   r   r   aclose%   s   z0test_AsyncResource_defaults.<locals>.MyAR.acloseNr   r   )	__name__
__module____qualname__r   Factorylistr    __annotations__r%   r   r   r   r   MyAR!   s   
 r-   r!   )r   definer   AsyncResource
isinstancer    )r-   myarr   r   r   test_AsyncResource_defaults    s   
(r2   c                  C  sX   G dd dt jt j } |  }tt |d  W d    d S 1 s%w   Y  d S )Nc                   @  s8   e Zd ZdZdddZddd	Zdd
dZdddZdS )z)test_abc_generics.<locals>.SlottedChannel)xvalueobjectr   r   c                 S     t NRuntimeErrorr$   r4   r   r   r   send_nowait:      z5test_abc_generics.<locals>.SlottedChannel.send_nowaitc                   s   t r7   r8   r:   r   r   r   send=      z.test_abc_generics.<locals>.SlottedChannel.sendc                 S  r6   r7   r8   r#   r   r   r   clone@   r<   z/test_abc_generics.<locals>.SlottedChannel.clonec                   s   d S r7   r   r#   r   r   r   r%   C   r>   z0test_abc_generics.<locals>.SlottedChannel.acloseN)r4   r5   r   r   r&   )r'   r(   r)   	__slots__r;   r=   r?   r%   r   r   r   r   SlottedChannel7   s    


rA   )r   SendChannelStreampytestraisesr9   r;   )rA   channelr   r   r   test_abc_generics/   s
   "rG   r&   )
__future__r   r   rD    r   r   lowlevelr   r   r2   rG   r   r   r   r   <module>   s    

