o
    8e                     @  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
@)	Z
before_runZ	after_runZtask_spawnedZtask_scheduledZbefore_task_stepZafter_task_stepZtask_exitedZbefore_io_waitZafter_io_wait)r   tabcZ
Instrumentitemshasattrgetattrcallable)attrsZ
mayonnaisemethod_nameargsmethodr   r   8usr/lib/python3.10/site-packages/trio/_tests/test_abc.py'test_instrument_implements_hook_methods
   s"   

r   c               	     s   t j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 s3w   Y  |jdgks@J d S )Nc                   @  s,   e Zd ZU ejedZded< d	ddZdS )
z)test_AsyncResource_defaults.<locals>.MyAR)factoryz	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__attrZiblistr   __annotations__r   r   r   r   r   MyAR!   s   
 r"   r   )r   sr	   ZAsyncResource
isinstancer   )r"   Zmyarr   r   r   test_AsyncResource_defaults    s   (r%   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   r'   r   r   r   send_nowait:      z5test_abc_generics.<locals>.SlottedChannel.send_nowaitc                   s   t r*   r+   r-   r   r   r   send=      z.test_abc_generics.<locals>.SlottedChannel.sendc                 S  r)   r*   r+   r   r   r   r   clone@   r/   z/test_abc_generics.<locals>.SlottedChannel.clonec                   s   d S r*   r   r   r   r   r   r   C   r1   z0test_abc_generics.<locals>.SlottedChannel.acloseN)r'   r(   r   r   r   )r   r   r   	__slots__r.   r0   r2   r   r   r   r   r   SlottedChannel7   s    


r4   )r	   ZSendChannelZStreampytestraisesr,   r.   )r4   Zchannelr   r   r   test_abc_generics/   s
   "r7   r   )
__future__r   r   r5    r   r	   Zlowlevelr   r   r%   r7   r   r   r   r   <module>   s    

