
    X\dx                     J    d dl Z d dlmZ d Zd Zd Zd Zd Zd Zd	 Z	d
 Z
dS )    N	coroutinec                        fd}|S )Nc                 N    D ] }t          | |t          |                     !| S N)setattr_make_delegate_methodcls	attr_nameattrss     9lib/python3.11/site-packages/aiofiles/threadpool/utils.pycls_builderz)delegate_to_executor.<locals>.cls_builder   s7     	F 	FIC$9)$D$DEEEE
     r   r   s   ` r   delegate_to_executorr      $        
 r   c                        fd}|S )Nc                 N    D ] }t          | |t          |                     !| S r   )r   _make_proxy_methodr
   s     r   r   z*proxy_method_directly.<locals>.cls_builder   s7     	C 	CIC$6y$A$ABBBB
r   r   r   s   ` r   proxy_method_directlyr      r   r   c                        fd}|S )Nc                 N    D ] }t          | |t          |                     !| S r   )r   _make_proxy_propertyr
   s     r   r   z,proxy_property_directly.<locals>.cls_builder   s7     	E 	EIC$8$C$CDDDD
r   r   r   s   ` r   proxy_property_directlyr      r   r   c                        fd}|S )Nc                 N    D ] }t          | |t          |                     !| S r   )r   _make_cond_delegate_methodr
   s     r   r   z.cond_delegate_to_executor.<locals>.cls_builder!   s7     	K 	KIC$>y$I$IJJJJ
r   r   r   s   ` r   cond_delegate_to_executorr        r   r   c                 ,     t            fd            }|S )Nc              ?      K   t          j        t          | j                  g|R i |}| j                            | j        |          E d {V S r   )	functoolspartialgetattr_file_looprun_in_executor	_executorselfargskwargscbr   s       r   methodz%_make_delegate_method.<locals>.method*   s_      wtz9==OOOOOO:55dnbIIIIIIIIJr   r   r   r/   s   ` r   r	   r	   )   s2    K K K K YK Mr   c                       fd}|S )Nc                 :     t          | j                  |i |S r   r%   r&   )r+   r,   r-   r   s      r   r/   z"_make_proxy_method.<locals>.method3   s$    -wtz9--t>v>>>r   r   r0   s   ` r   r   r   2   s#    ? ? ? ? ? Mr   c                 ,      fd}t          |          S )Nc                 .    t          | j                  S r   r3   )r+   r   s    r   proxy_propertyz,_make_proxy_property.<locals>.proxy_property:   s    tz9---r   )property)r   r6   s   ` r   r   r   9   s,    . . . . . N###r   c                       fd}|S )z>For spooled temp files, delegate only if rolled to file objectc                    K   | j         j        rNt          j        t	          | j                   g|R i |}| j                            | j        |           d {V S  t	          | j                   |i |S r   )r&   _rolledr#   r$   r%   r'   r(   r)   r*   s       r   r/   z*_make_cond_delegate_method.<locals>.methodC   s      : 	C"74:y#A#ASDSSSFSSB33DNBGGGGGGGGG174:y114B6BBBr   r   r0   s   ` r   r   r   @   s(    C C C C C Mr   )r#   typesr   r   r   r   r    r	   r   r   r   r   r   r   <module>r<      s                         $ $ $
 
 
 
 
r   