a
    (ñ»jò  ã                   @  sb   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d	„Z	ddœd
d„Z
ddœdd„ZdS )é    )ÚannotationsNé   )Úabc)ÚTaskÚNone©Úreturnc               
   C  sl   ddt ft ft ft ft fdddœ	} t ¡ }|  ¡ D ]4\}}t||ƒsHJ ‚t||ƒ}t|ƒs^J ‚||Ž  q2d 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	   ú:E:\soccer\ml_env\Lib\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 š2}t|| ƒs<J ‚|jg ksJJ ‚W d   ƒI d H  qt1 I d H sj0    Y  |jdgks„J ‚d S )NF)Úslotsc                   @  s.   e Zd ZU e e¡Zded< 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)	Ú__name__Ú
__module__Ú__qualname__r   ÚFactoryÚlistr   Ú__annotations__r   r	   r	   r	   r   ÚMyAR!   s   
r"   r   )r   Zdefiner
   ZAsyncResourceÚ
isinstancer   )r"   Zmyarr	   r	   r   Útest_AsyncResource_defaults    s    
8r$   c                  C  sV   G dd„ dt jt j ƒ} | ƒ }t t¡� | d ¡ W d   ƒ n1 sH0    Y  d S )Nc                   @  sL   e Zd ZdZdddœdd„Zdddœdd„Zdd	œd
d„Zdd	œdd„ZdS )z)test_abc_generics.<locals>.SlottedChannel)ÚxÚobjectr   )Úvaluer   c                 S  s   t ‚d S ©N©ÚRuntimeError©r   r'   r	   r	   r   Úsend_nowait:   s    z5test_abc_generics.<locals>.SlottedChannel.send_nowaitc                 Ó  s   t ‚d S r(   r)   r+   r	   r	   r   Úsend=   s    z.test_abc_generics.<locals>.SlottedChannel.sendr   c                 S  s   t ‚d S r(   r)   r   r	   r	   r   Úclone@   s    z/test_abc_generics.<locals>.SlottedChannel.clonec                 Ó  s   d S r(   r	   r   r	   r	   r   r   C   s    z0test_abc_generics.<locals>.SlottedChannel.acloseN)r   r   r   Ú	__slots__r,   r-   r.   r   r	   r	   r	   r   ÚSlottedChannel7   s
   r0   )r
   ZSendChannelZStreamÚpytestZraisesr*   r,   )r0   Zchannelr	   r	   r   Útest_abc_generics/   s    r2   )Ú
__future__r   r   r1   Ú r   r
   Zlowlevelr   r   r$   r2   r	   r	   r	   r   Ú<module>   s   