
    !ni              
          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gZ!ejD                  Z# G d	 d
e      Z$ e% e&             Z'e'jQ                   e%e	eeee$e              e)ed      rejT                  e'd<    e+ejX                  dejX                        Z- ee-j\                  e'      Z/	 	 ddZ0ee0_1        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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 ZddZd Zd Zd ZddZej,                  fdZd Zd Zy)GreenFileIOi   Nc                 p   t        |t              r|}d|z  | _        n[t        |t              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stropenname_original_osdupfilenor   _fileno_mode_closedr   	_seekable)selfr   modeclosefdopenerr    fds          T/home/homepc/tiktok-worker/venv/lib/python3.12/site-packages/eventlet/greenio/py3.py__init__zGreenFileIO.__init__%   s    dC F"V+DJdC(((dD! 7RWW
%))"))+67 	f
7 7s   5B,,B5c                     | j                   S Nr#   r%   s    r*   closedzGreenFileIO.closed6   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OSErrorr   errnoESPIPEr%   es     r*   seekablezGreenFileIO.seekable:   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"   r/   s    r*   readablezGreenFileIO.readableH   s    djj 5C4::$55r1   c                 ^    d| j                   v xs d| j                   v xs d| j                   v S )Nwr=   ar>   r/   s    r*   writablezGreenFileIO.writableK   s-    djj JC4::$5J

9JJr1   c                     | j                   S r-   )r!   r/   s    r*   r    zGreenFileIO.filenoN   s    ||r1   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   rH   r!   r5   r   r   args_trampoline)r%   sizer9   s      r*   rH   zGreenFileIO.readQ   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)NTr1   rG   )r   rH   r!   r   joinappendr5   r   r   rJ   rK   )r%   bufchunkr9   s       r*   rI   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-   )lenrH   )r%   bup_todata
bytes_reads        r*   readintozGreenFileIO.readintoj   s3    AyyY
+:r1   c                     	 t        j                  | j                               S # t        $ r}t        |j                   d }~ww xY wr-   )r   isattyr    r5   rJ   r8   s     r*   rZ   zGreenFileIO.isattyq   s=    	#&&t{{}55 	#166""	#s   "% 	AA  Ac                 "    | j                         S r-   )rZ   r/   s    r*   _isatty_open_onlyzGreenFileIO._isatty_open_onlyw   s     {{}r1   c                     | j                   r
t               	 t        |||||| j                        S # t        $ r | j                           w xY w)N)rH   writetimeouttimeout_excmark_as_closed)r#   r   r   _mark_as_closed)r%   r)   rH   r^   r_   r`   s         r*   rK   zGreenFileIO._trampoline|   s[    <<*	bt5'*5-1-A-AC C  	   "		s	   3 Ac                     d| _         y)z" Mark this socket as being closed TNr.   r/   s    r*   rb   zGreenFileIO._mark_as_closed   s	    r1   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^   )

memoryviewrS   r   r^   r!   r5   r   r   rJ   r   )r%   rV   viewdatalenoffsetwrittenr9   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    flushrZ   nextrH   rX   readline	readlinesseektelltruncater^   
xreadlines__iter____next__
writelines)r#   r   closer!   r   setattrr
   )r%   methods     r*   rv   zGreenFileIO.close   sO    ||DLt||,T\\"M 	=F D&";<		=r1   c                     |d}|dk(  r| j                         }	 t        j                  | j                  |      }| j	                  |       |S # t
        $ r}t        |j                   d }~ww xY w)NrF   )rp   r   	ftruncater!   ro   r5   rJ   )r%   rL   rvr9   s       r*   rq   zGreenFileIO.truncate   sl    <D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   r3   r!   r5   rJ   )r%   rh   whencer9   s       r*   ro   zGreenFileIO.seek   s?    	#%%dllFFCC 	#166""	#s    # 	A>Ac                     | S r-    r/   s    r*   	__enter__zGreenFileIO.__enter__   s    r1   c                 $    | j                          y r-   )rv   )r%   rJ   s     r*   __exit__zGreenFileIO.__exit__   s    

r1   )r<   TN)rF   )FFNN)__name__
__module____qualname___blksizer+   propertyr0   r:   r?   rC   r    rH   rI   rX   rZ   r\   rK   rb   r^   rv   rq   r   SEEK_SETro   r   r   r   r1   r*   r   r   !   s    H"  6K
22#
	= #/"7"7 #r1   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<   rF   NNNTN)2_pyio_original_pyior6   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   __all__SocketIOr   r   dictglobals_open_environmentupdatehasattrr   getattrr   
_pyio_open__code__r   r   __doc__r   r1   r*   <module>r      s       !    L K &+
& ''^/ ^B O    ***(  >?+)7)E)Eo&^((-9L9LM
	 CG15T "	 r1   