
    Ph              
          d dl Zd dlZd dlZd dlZd dlmZ	m
ZmZmZmZmZ d dlmZ d dl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jF                  Z$ G d	 d
e      Z% e& e'             Z(e(jS                   e&e	eeee%e              e*ed      rejV                  e(d<    e,ejZ                  dejZ                        Z. e e!j^                  e.      e(      Z0	 	 ddZ1ee1_2        y)    N)BufferedRandomBufferedReaderBufferedWriterDEFAULT_BUFFER_SIZETextIOWrapperIOBase)FunctionType)_operation_on_closed_filegreenpipe_docset_nonblockingSOCKET_BLOCKING)notify_closenotify_openedIOClosed
trampoline)	get_errno_fileobject	GreenPipec                       e Zd ZddZed        Zd Zd Zd Zd Z	ddZ
d	 Zd
 Zd ZddZd Zd Zd ZddZej(                  fdZd Zd Zy)GreenFileIONc                    t        |t              r|}d|z  | _        net        |t        j                        sJ t        ||      5 }|j                  | _        t        j                  |j                               }d d d        t               || _        || _        d| _        t        |        d | _        y # 1 sw Y   <xY w)Nz<fd:%d>F)
isinstanceint_namesixstring_typesopenname_original_osdupfilenor   _fileno_mode_closedr   	_seekable)selfr   modeclosefdopenerr!   fds          _C:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\eventlet/greenio/py3.py__init__zGreenFileIO.__init__#   s    dC F"V+DJdC$4$4555dD!RWW
%))"))+6 " 	f
 "!s   5B66B?c                     | j                   S Nr$   r&   s    r+   closedzGreenFileIO.closed4   s    ||    c                 D   | j                   C	 t        j                  | j                  dt        j                         d| _         | j                   S | j                   S # t
        $ r:}t        |      t        j                  k(  rd| _         n Y d }~| j                   S d }~ww xY w)Nr   TF)	r%   r   lseekr"   SEEK_CURIOErrorr   errnoESPIPEr&   es     r+   seekablezGreenFileIO.seekable8   s    >>!&""4<<L4I4IJ "&~~t~~  Q<5<</%*DN # ~~s   /A 	B%%BBc                 >    d| j                   v xs d| j                   v S )Nr+r#   r0   s    r+   readablezGreenFileIO.readableF   s    djj 5C4::$55r2   c                 ^    d| j                   v xs d| j                   v xs d| j                   v S )Nwr>   ar?   r0   s    r+   writablezGreenFileIO.writableI   s-    djj JC4::$5J

9JJr2   c                     | j                   S r.   )r"   r0   s    r+   r!   zGreenFileIO.filenoL   s    ||r2   c                 
   |dk(  r| j                         S 	 	 t        j                  | j                  |      S # t        $ r@}t        |      t        vrt        |j                   | j                  | d       Y d }~nd }~ww xY wn)NTread)
readallr   rI   r"   OSErrorr   r   r6   args_trampoline)r&   sizer:   s      r+   rI   zGreenFileIO.readO   sz    2:<<>!2#((t<< 2Q<6!166**  D 112 s   8 	B6A<<Bc                 :   g }	 	 t        j                  | j                  t              }|dk(  rdj	                  |      S |j                  |       M# t        $ r@}t        |      t        vrt        |j                   | j                  | d       Y d }~Ed }~ww xY w)NTr2   rH   )r   rI   r"   r   joinappendrK   r   r   r6   rL   rM   )r&   bufchunkr:   s       r+   rJ   zGreenFileIO.readall[   s    2$))$,,8KLC<88C=(

5!   2Q<6!166**  D 112s   9A A 	B6BBc                 ^    t        |      }| j                  |      }t        |      }||d | |S r.   )lenrI   )r&   bup_todata
bytes_reads        r+   readintozGreenFileIO.readintoh   s3    AyyY
+:r2   c                     	 t        j                  | j                               S # t        $ r}t	        |j
                   d }~ww xY wr.   )r   isattyr!   rK   r6   rL   r9   s     r+   r\   zGreenFileIO.isattyo   s=    	#&&t{{}55 	#166""	#s   "% 	AA  Ac                     | j                   r
t               	 t        |||||| j                        S # t        $ r | j                           w xY w)N)rI   writetimeouttimeout_excmark_as_closed)r$   r   r   _mark_as_closed)r&   r*   rI   r^   r_   r`   s         r+   rM   zGreenFileIO._trampolineu   s[    <<*	bt5'*5-1-A-AC C  	   "		s	   3 Ac                     d| _         y)z" Mark this socket as being closed TNr/   r0   s    r+   rb   zGreenFileIO._mark_as_closed   s	    r2   c                 *   t        |      }t        |      }d}||k  r/	 t        j                  | j                  ||d        }||z  }||k  r/|S # t
        $ r:}t        |      t        vrt        |j                   t        | d       Y d }~Fd }~ww xY w)Nr   T)r^   )
memoryviewrU   r   r^   r"   rK   r   r   r6   rL   r   )r&   rX   viewdatalenoffsetwrittenr:   s          r+   r^   zGreenFileIO.write   s    $d)w"&,,T\\4=I '! w   -Q<6!166**4t,,-s   #A 	B0BBc                     | j                   s&d| _         t        j                  | j                         t	        | j                         dD ]  }t        | |t                y )NT)r!   flushr\   nextrI   rZ   readline	readlinesseektelltruncater^   
xreadlines__iter____next__
writelines)r$   r   closer"   r   setattrr
   )r&   methods     r+   rv   zGreenFileIO.close   sK    ||DLt||,T\\"MF D&";<	Mr2   c                     |dk(  r| j                         }	 t        j                  | j                  |      }| j	                  |       |S # t
        $ r}t        |j                   d }~ww xY w)NrG   )rp   r   	ftruncater"   ro   rK   r6   rL   )r&   rN   rvr:   s       r+   rq   zGreenFileIO.truncate   sb    2:99;D	''d;B IIdOI	  	#166""	#s    A
 
	A*A%%A*c                     	 t        j                  | j                  ||      S # t        $ r}t	        |j
                   d }~ww xY wr.   )r   r4   r"   rK   r6   rL   )r&   rh   whencer:   s       r+   ro   zGreenFileIO.seek   s?    	#%%dllFFCC 	#166""	#s    # 	A>Ac                     | S r.    r0   s    r+   	__enter__zGreenFileIO.__enter__   s    r2   c                 $    | j                          y r.   )rv   )r&   rL   s     r+   __exit__zGreenFileIO.__exit__   s    

r2   )r=   TN)rG   )FFNN)__name__
__module____qualname__r,   propertyr1   r;   r@   rD   r!   rI   rJ   rZ   r\   rM   rb   r^   rv   rq   r   SEEK_SETro   r   r   r   r2   r+   r   r   "   sw    "  6K
22#	=	 #/"7"7 #r2   r   )r   r   r   r   FileIOostext_encoding__wrapped__c           
          	 | j                         }t        j                  |      }| j                          |} t        | |||||||      S # t        $ r Y w xY wr.   )r!   r   r    rv   AttributeError_open)	r   r'   	bufferingencodingerrorsnewliner(   r)   r!   s	            r+   r   r      s_     !!&)

tY&'7FSS  s   A 	AA)r=   rG   NNNTN)3_pyio_original_pyior7   r   r   socket_original_socketior   _OriginalBufferedRandomr   _OriginalBufferedReaderr   _OriginalBufferedWriterr   r   _OriginalTextIOWrapperr   _OriginalIOBasetypesr	   eventlet.greenio.baser
   r   r   r   eventlet.hubsr   r   r   r   eventlet.supportr   r   __all__SocketIOr   r   dictglobals_open_environmentupdatehasattrr   getattrr   
_pyio_openget_function_coder   r   __doc__r   r2   r+   <module>r      s      !    L K & 
+
& ''T/ Tn O    ***(  >?+)7)E)Eo&^((-9L9LM
C*%	 CG15T "	 r2   