
    Ph                         d dl Z d dlZd dlmZmZmZmZmZ d dlm	Z	m
Z
mZmZ d dlmZ d dlZddgZej"                  Z G d de      Z G d d	e      Zy)
    N)_operation_on_closed_filegreenpipe_docset_nonblockingsocketSOCKET_BLOCKING)
trampolinenotify_closenotify_openedIOClosed)	get_errno_fileobject	GreenPipec                        e Zd ZeZd fd	Zed        Zd Z fdZ	d Z
d Zd Zd Zd	 Zdd
Z eedd      rddZd Z xZS )r   c                 V   t        |t        j                  t        t        fz         st        d|z        t        |t        j                        rt        ||d      }t        |t              r|}d|z  | _        nt        j                  |j                               }|j                  | _        |j                  |k7  rt        d|j                  d|      |j                  | _        |j                          t        t         | G  t%        |      ||       t'        |        d| _        y )Nz2f(ile) should be int, str, unicode or file, not %rr   z<fd:%d>z
file.mode z does not match mode parameter )
isinstancesixstring_typesintfile	TypeErroropen_nameosdupfilenonamemode
ValueErrorclosesuperr   __init___SocketDuckForFdr   	softspace)selffr   bufsizer   	__class__s        _C:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\eventlet/greenio/py2.pyr!   zGreenPipe.__init__   s    !S--d;<PSTTUUa))*Qa AaF"V+DJVVAHHJ'FDJvv~ TUTZTZ\`!abbDJGGIi'(8(@$P    c                     | j                   S N)r   r$   s    r(   r   zGreenPipe.name.   s    zzr)   c           	          d| j                   xr dxs d| j                  j                  | j                  | j                  t        |       dk  xr t        j                  t        |       z   xs t        |       fz  S )Nz<%s %s %r, mode %r at 0x%x>closedr   r   )r.   r'   __name__r   r   idsysmaxintr,   s    r(   __repr__zGreenPipe.__repr__2   si    ,KK$H.NN##IIIIX\6

RX 5B"T(0D D 	Dr)   c                 Z    t         t        |           dD ]  }t        | |t                y )N)r   flushisattynextreadreadintoreadline	readlinesseektelltruncatewrite
xreadlines__iter____next__
writelines)r    r   r   setattrr   )r$   methodr'   s     r(   r   zGreenPipe.close:   s-    i$&MF D&";<	Mr)   c                     | S r+    r,   s    r(   	__enter__zGreenPipe.__enter__B   s    r)   c                 $    | j                          y r+   )r   )r$   argss     r(   __exit__zGreenPipe.__exit__E   s    

r)   c                 H    t        | j                  j                               S r+   )len_rbufgetvaluer,   s    r(   _get_readahead_lenzGreenPipe._get_readahead_lenH   s    4::&&())r)   c                 R    | j                         }|dkD  r| j                  |       y y Nr   )rP   r8   )r$   rM   s     r(   _clear_readahead_bufzGreenPipe._clear_readahead_bufK   s'    %%'7IIcN r)   c                     | j                          	 t        j                  | j                         dd      | j	                         z
  S # t
        $ r}t        |j                   d }~ww xY w)Nr      )r5   r   lseekr   rP   OSErrorIOErrorrJ   r$   es     r(   r=   zGreenPipe.tellP   sV    

	#88DKKM1a043J3J3LLL 	#166""	#s   5A 	A(A##A(c                 <   | j                          |dk(  r|dk(  r| j                         S |dk(  r|| j                         z  }	 t        j                  | j                         ||      }| j                          |S # t        $ r}t        |j                   d }~ww xY wNrU   r   )
r5   r=   rP   r   rV   r   rS   rW   rX   rJ   )r$   offsetwhencervrZ   s        r(   r<   zGreenPipe.seekW   s    

Q;6Q;99;Q;d--//F	$++-8B %%'I	  	#166""	#s   %A; ;	BBBr>   Nc                    | j                          |dk(  r| j                         }	 t        j                  | j	                         |      }| j                  |       |S # t        $ r}t        |j                   d }~ww xY w)N)	r5   r=   r   	ftruncater   r<   rW   rX   rJ   )r$   sizer_   rZ   s       r(   r>   zGreenPipe.truncatef   sk    JJLrzyy{\\$++-6 		$		  'qvv&&'s   $A 	A>'A99A>c                     	 t        j                  | j                               S # t        $ r}t	        |j
                   d }~ww xY wr+   )r   r6   r   rW   rX   rJ   rY   s     r(   r6   zGreenPipe.isattyr   s;    	#99T[[]++ 	#166""	#s   "% 	AA  A)rra   )r   )ra   )r/   
__module____qualname__r   __doc__r!   propertyr   r3   r   rH   rK   rP   rS   r=   r<   getattrr   r>   r6   __classcell__)r'   s   @r(   r   r      sb    G,  D=*
# tZ&
	#r)   c                   v    e Zd ZdZdZd ZddZd Zed        Z	d Z
d	 Zdd
Zd Zd Zd Zd Zd Zd Zd Zy)r"   zuClass implementing all socket method used by _fileobject
    in cooperative manner using low level os I/O calls.
    r   c                 6    || _         t        |       d| _        y )NF)_filenor
   _closed)r$   r   s     r(   r!   z_SocketDuckForFd.__init__   s    fr)   Nc                     | j                   r
t               	 t        |||||| j                        S # t        $ r | j                           w xY w)N)r8   r?   timeouttimeout_excmark_as_closed)ro   r   r   _mark_as_closed)r$   fdr8   r?   rq   rr   s         r(   _trampolinez_SocketDuckForFd._trampoline   s[    <<*	bt5'*5-1-A-AC C  	   "		s	   3 Ac                 ,    | j                   }d| _         |S )NT)ro   )r$   currents     r(   rt   z _SocketDuckForFd._mark_as_closed   s    ,,r)   c                     | S r+   rG   r,   s    r(   _sockz_SocketDuckForFd._sock   s    r)   c                     | j                   S r+   )rn   r,   s    r(   r   z_SocketDuckForFd.fileno   s    ||r)   c                     	 	 t        j                  | j                  |      }|S # t        $ r-}t	        |      t
        vrt        |j                   Y d }~nd }~ww xY w| j                  | d       p)NT)r8   )	r   r8   rn   rW   r   r   rX   rJ   rv   )r$   buflendatarZ   s       r(   recvz_SocketDuckForFd.recv   sm    +wwt||V4 +Q<6!166** 7+ T- s   !% 	A#AAc                 d    |dk(  rt        |      }| j                  |      }||d | t        |      S rR   )rM   r   )r$   bufnbytesflagsr~   s        r(   	recv_intoz_SocketDuckForFd.recv_into   s5    Q;XFyy GV4yr)   c                     	 	 t        j                  | j                  |      S # t        $ r:}t	        |      t
        vrt        |j                   t        | d       Y d }~nd }~ww xY wh)NTr?   )	r   r?   rn   rW   r   r   rX   rJ   r   )r$   r~   rZ   s      r(   sendz_SocketDuckForFd.send   s\    1xxd33 1Q<6!166**t400	1 s   # 	A&0A!!A&c                    t        |      }t        j                  }| j                  }	  |||      }||k  r*| j                  | d       	 | ||||d        z  }||k  r)y y # t        $ r:}t        |      t        j                  k7  rt        |j                   d}Y d }~nd }~ww xY w# t        $ r8}t        |      t        j                  k7  rt        |j                   Y d }~d }~ww xY w)Nr   Tr   )rM   r   r?   rn   rW   r   errnoEAGAINrX   rJ   rv   )r$   r~   len_dataos_writer   
total_sentrZ   s          r(   sendallz_SocketDuckForFd.sendall   s    t988	!&$/J
 8#T.+hvtJK/@AA
 8#	  	|u||+qvv&&J	  +Q<5==0!166** 1+s/   	A" B( "	B%+0B  B%(	C)1.C$$C)c                 $    | j                          y r+   )_closer,   s    r(   __del__z_SocketDuckForFd.__del__   s    r)   c                     | j                         }|ry t        rt        | j                         	 t        j                  | j                         y #  Y y xY wr+   )rt   r	   rn   r   r   )r$   
was_closeds     r(   r   z_SocketDuckForFd._close   sH    ))+
 &	HHT\\"	 s   A Ac                 L    d| j                   j                  | j                  fz  S )Nz%s:%d)r'   r/   rn   r,   s    r(   r3   z_SocketDuckForFd.__repr__   s     $..114<<@@@r)   c                 .    | xj                   dz  c_         y )NrU   )	_refcountr,   s    r(   _reusez_SocketDuckForFd._reuse   s    !r)   c                 n    | xj                   dz  c_         | j                   dk(  r| j                          y y r\   )r   r   r,   s    r(   _dropz_SocketDuckForFd._drop   s*    !>>QKKM r)   )FFNN)r   r   )r/   rf   rg   rh   r   r!   rv   rt   ri   rz   r   r   r   r   r   r   r   r3   r   r   rG   r)   r(   r"   r"   y   sd     I

  .1+$Ar)   r"   )r   r   eventlet.greenio.baser   r   r   r   r   eventlet.hubsr   r	   r
   r   eventlet.supportr   r   __all__r   r   objectr"   rG   r)   r(   <module>r      sV     	  L K & 
+
&  b# b#Jmv mr)   