
    z%il                    n   	 d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ ej                  dv rd dl
mZ ndZd dlZd dlmZmZmZmZ h dZ ee d      r6ej)                  e j*                         ej)                  e j,                         dZeZ eed	      xs ej2                  j4                  ZeZd-d
Ze	 	 d.d       Zd Z 	 ejB                  Z!	 ejF                  Z# G d dejL                        Z'ejN                  jQ                  e'        G d de'      Z)ejR                  jQ                  e)       d dl*m+Z+ e)jQ                  e+        G d de'      Z,ejX                  jQ                  e,        G d de,      Z- G d de,      Z. G d de-      Z/ G d de-      Z0 G d d e,      Z1 G d! d"e0e/      Z2 G d# d$e)      Z+ G d% d&e'      Z3ejf                  jQ                  e3        G d' d(ejh                        Z5 G d) d*e3      Z6 G d+ d,e6      Z7y# e"$ r e Z!Y Kw xY w# e"$ r  G d de$e%      Z#Y Vw xY w)/    N)allocate_lock>   win32cygwin)setmode)__all__SEEK_SETSEEK_CURSEEK_END>   r         	SEEK_HOLEi    gettotalrefcountc                     	 | Wt         j                  j                  rd} nd} t         j                  j                  rdd l}|j                  dt        |dz          | S )Nutf-8localer   z"'encoding' argument not specified.r   )sysflags	utf8_modewarn_default_encodingwarningswarnEncodingWarning)encoding
stacklevelr   s      9/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/_pyio.pytext_encodingr   +   sS     99HH99**MM>):>;O    c                     	 t        | t              st        j                  |       } t        | t        t
        t        f      st        d| z        t        |t              st        d|z        t        |t              st        d|z        |t        |t              st        d|z        |t        |t              st        d|z        t        |      }|t        d      z
  st        |      t        |      kD  rt        d|z        d|v }	d|v }
d	|v }d
|v }d|v }d|v }d|v }|r|rt        d      |	|
z   |z   |z   dkD  rt        d      |	s|
s|s|st        d      |r|t        d      |r|t        d      |r|t        d      |r |dk(  rdd l
}|j                  dt        d       t        | |	xr dxs d|
xr dxs dz   |xr d	xs dz   |xr d
xs dz   |xr dxs dz   ||      }|}	 d}|dk(  s|dk  r|j                         rd}d}|dk  r<t        }	 t        j                   |j#                               j$                  }|dkD  r|}	 |dk  rt        d      |dk(  r|r|S t        d      |rt+        ||      }n0|	s|s|rt-        ||      }n|
rt/        ||      }nt        d|z        |}|r|S t1        |      }t3        |||||      }|}||_        |S # t&        t(        f$ r Y w xY w#  |j7                           xY w) Nzinvalid file: %rzinvalid mode: %rzinvalid buffering: %rinvalid encoding: %rinvalid errors: %rzaxrwb+txrwa+tbz'can't have text and binary mode at oncer   z)can't have read/write/append mode at oncez/must have exactly one of read/write/append modez-binary mode doesn't take an encoding argumentz+binary mode doesn't take an errors argumentz+binary mode doesn't take a newline argumentr   zaline buffering (buffering=1) isn't supported in binary mode, the default buffer size will be usedr    )openerFTzinvalid buffering sizezcan't have unbuffered text I/Ozunknown mode: %r)
isinstanceintosfspathstrbytes	TypeErrorsetlen
ValueErrorr   r   RuntimeWarningFileIOisattyDEFAULT_BUFFER_SIZEfstatfileno
st_blksizeOSErrorAttributeErrorBufferedRandomBufferedWriterBufferedReaderr   TextIOWrappermodeclose)filerB   	bufferingr   errorsnewlineclosefdr)   modescreatingreadingwriting	appendingupdatingtextbinaryr   rawresultline_bufferingbsbuffers                         r   openrV   L   s   rf dC yydS%-.*T122dC *T122i%/);<<Jx$=.9::*VS"9,v566IEs9~TSZ!7+d233e|HUlGUlGuIe|H%<DE\FBCC'G#i/!3DEE7iJKK(&HII&$FGG'%FGG)q. C$a	) "s(b/c'R)/c'R) #)r+ "s(b	*
 )C F&>Y]szz|I!Nq=+I#XXcjjl+66 6 "Iq=566>=>>#C3FI#C3F#C3F/$677M *VXvwO	5 ^, 6s=   6+K: "-K%  K: 0AK:  $K: %K74K: 6K77K: :Lc                 R    	 dd l }|j                  dt        d       t        | d      S )Nr   z(_pyio.open_code() may not be using hooksr   rb)r   r   r5   rV   )pathr   s     r   _open_code_with_warningrZ     s-    	 MM< !%dr   c                       e Zd Zy)UnsupportedOperationN)__name__
__module____qualname__ r   r   r\   r\   7  s    r   r\   c                       e Zd Z	 d ZddZd ZddZd ZdZd Z	d	 Z
d
 ZddZd ZddZd ZddZed        ZddZd Zd Zd Zd ZddZd Zd ZddZd Zy)IOBasec                 N    	 t        | j                  j                  d|d      )N.z() not supported)r\   	__class__r]   )selfnames     r   _unsupportedzIOBase._unsupported]  s)    N"$(NN$;$;T$C D 	Dr   c                 (    	 | j                  d       y )Nseekrh   rf   poswhences      r   rj   zIOBase.seekd  s    	 	&!r   c                 (    	 | j                  dd      S Nr   r   )rj   rf   s    r   tellzIOBase.tellt  s    CyyAr   Nc                 (    	 | j                  d       y Ntruncaterk   rf   rm   s     r   ru   zIOBase.truncatex      	
 	*%r   c                 &    	 | j                          y N_checkClosedrq   s    r   flushzIOBase.flush  s    	 	r   Fc                 h    	 | j                   s	 | j                          d| _         y y # d| _         w xY w)NT)_IOBase__closedr|   rq   s    r   rC   zIOBase.close  s5    	 }}%

 $	  !%s   ( 	1c                     	 	 | j                   }|ry t        r| j                          y 	 | j                          y # t        $ r Y y w xY w#  Y y xY wry   )closedr=   _IOBASE_EMITS_UNRAISABLErC   )rf   r   s     r   __del__zIOBase.__del__  sT    )	[[F #JJL

#  	 	$s   ; A
 	AA
Ac                      	 yNFr`   rq   s    r   seekablezIOBase.seekable  s    	
 r   c                 L    	 | j                         st        |d      |      y )NzFile or stream is not seekable.)r   r\   rf   msgs     r   _checkSeekablezIOBase._checkSeekable  >    	}}&*-+ (I @ @;>@ @ r   c                      	 yr   r`   rq   s    r   readablezIOBase.readable      	 r   c                 L    	 | j                         st        |d      |      y )NzFile or stream is not readable.)r   r\   r   s     r   _checkReadablezIOBase._checkReadable  r   r   c                      	 yr   r`   rq   s    r   writablezIOBase.writable  r   r   c                 L    	 | j                         st        |d      |      y )NzFile or stream is not writable.)r   r\   r   s     r   _checkWritablezIOBase._checkWritable  r   r   c                     	 | j                   S ry   )r~   rq   s    r   r   zIOBase.closed  s    	 }}r   c                 D    	 | j                   rt        |d      |      y NI/O operation on closed file.r   r4   r   s     r   r{   zIOBase._checkClosed  s7    	;; # = 6 6146 6 r   c                 (    	 | j                          | S ry   rz   rq   s    r   	__enter__zIOBase.__enter__  s    Qr   c                 &    	 | j                          y ry   )rC   )rf   argss     r   __exit__zIOBase.__exit__  s    9

r   c                 (    	 | j                  d       y )Nr:   rk   rq   s    r   r:   zIOBase.fileno  s    	 	(#r   c                 &    	 | j                          yr   rz   rq   s    r   r7   zIOBase.isatty  s    	 	r   c                     	 t         d      r fd}nd }dn	 j                  } |       t	               }dk  st        |      k  r[ j                   |             }|s	 t        |      S ||z  }|j                  d      r	 t        |      S dk  rLt        |      k  r[t        |      S # t        $ r t        d      w xY w)Npeekc                      j                  d      } | sy| j                  d      dz   xs t        |       }dk\  rt        |      }|S )Nr      
r   )r   findr3   min)	readaheadnrf   sizes     r   
nreadaheadz#IOBase.readline.<locals>.nreadahead  sI     IIaL	 ^^E*Q.A3y>19AtAr   c                       yNr   r`   r`   r   r   r   z#IOBase.readline.<locals>.nreadahead!  s    r   r*    is not an integerr   r   )	hasattr	__index__r=   r1   	bytearrayr3   readendswithr0   )rf   r   r   
size_indexresr'   s   ``    r   readlinezIOBase.readline  s    	 4 <D$!^^
 "|kQh#c(T/		*,'A Sz 1HC||E"Sz Qh#c(T/ Sz " ?4(*< =>>?s   B6 6Cc                 &    | j                          | S ry   rz   rq   s    r   __iter__zIOBase.__iter__6  s    r   c                 6    | j                         }|st        |S ry   )r   StopIterationrf   lines     r   __next__zIOBase.__next__:  s    }}r   c                     	 ||dk  rt        |       S d}g }| D ])  }|j                  |       |t        |      z  }||k\  s( |S  |S Nr   )listappendr3   )rf   hintr   linesr   s        r   	readlineszIOBase.readlines@  sf    	 <419: 	DLLTNADy	
 r   c                 V    	 | j                          |D ]  }| j                  |        y ry   )r{   write)rf   r   r   s      r   
writelineszIOBase.writelinesR  s0    	
 	 	DJJt	r   r   ry   r*   )r]   r^   r_   rh   rj   rr   ru   r|   r~   rC   r   r   r   r   r   r   r   propertyr   r{   r   r   r:   r7   r   r   r   r   r   r`   r   r   rb   rb   ;  s    @D" & H	%6@@@  6
$(T$r   rb   )	metaclassc                   (    e Zd Z	 ddZd Zd Zd Zy)	RawIOBasec                     	 |d}|dk  r| j                         S t        |j                               }| j                  |      }|y ||d = t	        |      S )Nr*   r   )readallr   r   readintor0   )rf   r   r'   r   s       r   r   zRawIOBase.readm  s_    	
 <D!8<<>!dnn&'MM!9abEQxr   c                     	 t               }| j                  t              x}r||z  }| j                  t              x}r|rt        |      S |S ry   )r   r   r8   r0   )rf   r   datas      r   r   zRawIOBase.readall~  sU    9kii 344d44KC ii 344d4: Kr   c                 (    	 | j                  d       y )Nr   rk   rf   r'   s     r   r   zRawIOBase.readinto  rw   r   c                 (    	 | j                  d       y Nr   rk   r   s     r   r   zRawIOBase.write  s    	
 	'"r   Nr   )r]   r^   r_   r   r   r   r   r`   r   r   r   r   _  s    ("	&#r   r   )r6   c                   <    e Zd Z	 d	dZd	dZd Zd Zd Zd Zd Z	y)
BufferedIOBasec                 (    	 | j                  d       y Nr   rk   rf   r   s     r   r   zBufferedIOBase.read  s    	" 	&!r   c                 (    	 | j                  d       y )Nread1rk   r   s     r   r   zBufferedIOBase.read1  s    	 	'"r   c                 *    	 | j                  |d      S )NFr   	_readintor   s     r   r   zBufferedIOBase.readinto  s    		 ~~au~--r   c                 *    	 | j                  |d      S )NTr   r   r   s     r   	readinto1zBufferedIOBase.readinto1  s    	 ~~at~,,r   c                     t        |t              st        |      }|j                  d      }|r| j                  t	        |            }n| j                  t	        |            }t	        |      }||d | |S NB)r+   
memoryviewcastr   r3   r   )rf   r'   r   r   r   s        r   r   zBufferedIOBase._readinto  sb    !Z(1AFF3K::c!f%D99SV$DI"1r   c                 (    	 | j                  d       y r   rk   r   s     r   r   zBufferedIOBase.write  s    	 	'"r   c                 (    	 | j                  d       y Ndetachrk   rq   s    r   r   zBufferedIOBase.detach      	 	(#r   Nr   )
r]   r^   r_   r   r   r   r   r   r   r   r`   r   r   r   r     s*    "(#.	-	#$r   r   c                       e Zd Z	 d ZddZd ZddZd Zd Zd Z	d	 Z
ed
        Zed        Zed        Zed        Zd Zd Zd Zd Zy)_BufferedIOMixinc                     || _         y ry   _rawrf   rQ   s     r   __init__z_BufferedIOMixin.__init__  s	    	r   c                 ^    | j                   j                  ||      }|dk  rt        d      |S )Nr   z#seek() returned an invalid position)rQ   rj   r<   )rf   rm   rn   new_positions       r   rj   z_BufferedIOMixin.seek  s0    xx}}S&1!?@@r   c                 Z    | j                   j                         }|dk  rt        d      |S )Nr   z#tell() returned an invalid position)rQ   rr   r<   rv   s     r   rr   z_BufferedIOMixin.tell  s)    hhmmo7?@@
r   Nc                     | j                          | j                          | j                          || j                         }| j                  j                  |      S ry   )r{   r   r|   rr   rQ   ru   rv   s     r   ru   z_BufferedIOMixin.truncate"  sL    
 	

;))+C xx  %%r   c                 f    | j                   rt        d      | j                  j                          y )Nflush on closed file)r   r4   rQ   r|   rq   s    r   r|   z_BufferedIOMixin.flush3  s#    ;;344r   c                     | j                   9| j                  s,	 | j                          | j                   j                          y y y # | j                   j                          w xY wry   )rQ   r   r|   rC   rq   s    r   rC   z_BufferedIOMixin.close8  sH    88!

  )4
     A A#c                 z    | j                   t        d      | j                          | j                  }d | _        |S )Nzraw stream already detached)rQ   r4   r|   r   r   s     r   r   z_BufferedIOMixin.detach@  s6    88:;;

ii	
r   c                 6    | j                   j                         S ry   )rQ   r   rq   s    r   r   z_BufferedIOMixin.seekableJ      xx  ""r   c                     | j                   S ry   r   rq   s    r   rQ   z_BufferedIOMixin.rawM  s    yyr   c                 .    | j                   j                  S ry   )rQ   r   rq   s    r   r   z_BufferedIOMixin.closedQ  s    xxr   c                 .    | j                   j                  S ry   )rQ   rg   rq   s    r   rg   z_BufferedIOMixin.nameU      xx}}r   c                 .    | j                   j                  S ry   )rQ   rB   rq   s    r   rB   z_BufferedIOMixin.modeY  r  r   c                 H    t        d| j                  j                  d      Nzcannot pickle z objectr1   re   r]   rq   s    r   __getstate__z_BufferedIOMixin.__getstate__]  !    .)@)@(C7KLLr   c                     | j                   j                  }| j                   j                  }	 | j                  }dj	                  |||      S # t
        $ r dj	                  ||      cY S w xY w)Nz<{}.{} name={!r}>z<{}.{}>)re   r^   r_   rg   formatr=   )rf   modnameclsnamerg   s       r   __repr__z_BufferedIOMixin.__repr__`  sj    ..++..--	F99D '--gwEE  	6##GW55	6s   A A+*A+c                 6    | j                   j                         S ry   )rQ   r:   rq   s    r   r:   z_BufferedIOMixin.filenol      xx  r   c                 6    | j                   j                         S ry   )rQ   r7   rq   s    r   r7   z_BufferedIOMixin.isattyo  r  r   r   ry   )r]   r^   r_   r   rj   rr   ru   r|   rC   r   r   r   rQ   r   rg   rB   r  r  r:   r7   r`   r   r   r   r     s    
&"
!#        MF!!r   r   c                   |     e Zd Z	 dZddZd Zd Zd Z fdZddZ	ddZ
d	 Zdd
Zd ZddZd Zd Zd Z xZS )BytesIONc                 B    t               }|||z  }|| _        d| _        y r   )r   _buffer_pos)rf   initial_bytesbufs      r   r   zBytesIO.__init__{  s'    k$= C	r   c                 d    | j                   rt        d      | j                  j                         S )Nz__getstate__ on closed file)r   r4   __dict__copyrq   s    r   r  zBytesIO.__getstate__  s(    ;;:;;}}!!##r   c                 \    	 | j                   rt        d      t        | j                        S )Nzgetvalue on closed file)r   r4   r0   r  rq   s    r   getvaluezBytesIO.getvalue  s)    	;;677T\\""r   c                 \    	 | j                   rt        d      t        | j                        S )Nzgetbuffer on closed file)r   r4   r   r  rq   s    r   	getbufferzBytesIO.getbuffer  s)    	;;788$,,''r   c                 n    | j                   | j                   j                          t        |           y ry   )r  clearsuperrC   rf   re   s    r   rC   zBytesIO.close  s&    <<#LL r   c                    | j                   rt        d      |d}n	 |j                  } |       }|dk  rt        | j                        }t        | j                        | j                  k  ryt        t        | j                        | j                  |z         }| j                  | j                  | }|| _        t        |      S # t        $ r t	        |d      w xY w)Nread from closed filer*   r   r   r   )
r   r4   r   r=   r1   r3   r  r  r   r0   )rf   r   r   newposr'   s        r   r   zBytesIO.read  s    ;;455<D$!^^
 "|!8t||$Dt||		)S&		D(89LLV,	Qx " ?4(*< =>>?s   C Cc                 &    	 | j                  |      S ry   )r   r   s     r   r   zBytesIO.read1  s    	yyr   c                    | j                   rt        d      t        |t              rt	        d      t        |      5 }|j                  }d d d        dk(  ry| j                  }|t        | j                        kD  r0d|t        | j                        z
  z  }| xj                  |z  c_	        || j                  |||z    | xj                  |z  c_        |S # 1 sw Y   xY w)Nwrite to closed file can't write str to binary streamr       )
r   r4   r+   r/   r1   r   nbytesr  r3   r  )rf   r'   viewr   rm   paddings         r   r   zBytesIO.write  s    ;;344a>??] 	dA	6iiT\\"" s4<<'8!89GLLG#L$%Sq!		Q		 	s   CCc                    | j                   rt        d      	 |j                  } |       }|dk(  r&|dk  rt        d|      || _        | j
                  S |dk(  r*t        d| j
                  |z         | _        | j
                  S |dk(  r3t        dt        | j                        |z         | _        | j
                  S t        d      # t        $ r t	        |d      w xY w)Nzseek on closed filer   r   negative seek position r   r   zunsupported whence value)	r   r4   r   r=   r1   r  maxr3   r  )rf   rm   rn   	pos_indexs       r   rj   zBytesIO.seek  s    ;;233	I +CQ;Qw !EFFDI yy q[Atyy3/DI
 yy	 q[As4<<0367DI yy 788  	:sg%7899	:s   C	 	C!c                 H    | j                   rt        d      | j                  S )Ntell on closed file)r   r4   r  rq   s    r   rr   zBytesIO.tell  s    ;;233yyr   c                     | j                   rt        d      || j                  }n'	 |j                  } |       }|dk  rt        d|      | j                  |d = |S # t        $ r t        |d      w xY w)Nztruncate on closed filer   r   znegative truncate position )r   r4   r  r   r=   r1   r  )rf   rm   r0  s      r   ru   zBytesIO.truncate  s    ;;677;))C"MM	  kQw C!IJJLL
 " >3'); <==>s   A A7c                 2    | j                   rt        d      yNr   Tr   rq   s    r   r   zBytesIO.readable      ;;<==r   c                 2    | j                   rt        d      yr5  r   rq   s    r   r   zBytesIO.writable  r6  r   c                 2    | j                   rt        d      yr5  r   rq   s    r   r   zBytesIO.seekable  r6  r   ry   r   r   )r]   r^   r_   r  r   r  r  r  rC   r   r   r   rj   rr   ru   r   r   r   __classcell__re   s   @r   r  r  s  sS    F G$
#(
*
&*
"

r   r  c                   `    e Zd Z	 efdZd Zd ZddZddZddZ	ddZ
dd	Zd
 Zd ZddZy)r@   c                     	 |j                         st        d      t        j                  | |       |dk  rt	        d      || _        | j                          t               | _        y )Nz "raw" argument must be readable.r   invalid buffer size)	r   r<   r   r   r4   buffer_size_reset_read_bufLock
_read_lockrf   rQ   r>  s      r   r   zBufferedReader.__init__  s]    	||~<==!!$,!233&&r   c                 6    | j                   j                         S ry   )rQ   r   rq   s    r   r   zBufferedReader.readable  r   r   c                      d| _         d| _        y )Nr   r   )	_read_buf	_read_posrq   s    r   r?  zBufferedReader._reset_read_buf  s    r   Nc                     	 ||dk  rt        d      | j                  5  | j                  |      cd d d        S # 1 sw Y   y xY w)Nr*   zinvalid number of bytes to read)r4   rA  _read_unlockedr   s     r   r   zBufferedReader.read!  sK    	 r	>??__ 	-&&t,	- 	- 	-s	   ;Ac                 J   d}d}| j                   }| j                  }||dk(  r| j                          t        | j                  d      r-| j                  j                         }|	||d  xs d S ||d  |z   S ||d  g}d}	 | j                  j                         }||v r|}n |t        |      z  }|j                  |       Adj                  |      xs |S t        |      |z
  }	||	k  r| xj                  |z  c_        ||||z    S ||d  g}t        | j                  |      }
|	|k  rG| j                  j                  |
      }||v r|}n%|	t        |      z  }	|j                  |       |	|k  rGt        ||	      }dj                  |      }||d  | _         d| _        |r|d | S |S )Nr   )r   Nr*   r   r   )rE  rF  r?  r   rQ   r   r   r3   r   joinr/  r>  r   )rf   r   
nodata_valempty_valuesr  rm   chunkchunkscurrent_sizeavailwantedouts               r   rH  zBufferedReader._read_unlocked.  s   
"nnnn 9R  "txx+((*=st9,,st9u,,#$i[FLL(!&JE
*e$  88F#1z1 C3:NNaNs3q5>! cd)T%%q)aiHHMM&)E$"
SZEMM%  ai 5MhhvQRs2Aw-:-r   c                     	 | j                  d       | j                  5  | j                  |      cd d d        S # 1 sw Y   y xY w)Nzpeek of closed file)r{   rA  _peek_unlockedr   s     r   r   zBufferedReader.peekb  sB    	 	/0__ 	-&&t,	- 	- 	-s	   :Ac                 `   t        || j                        }t        | j                        | j                  z
  }||k  s|dk  rT| j                  |z
  }| j
                  j                  |      }|r(| j                  | j                  d  |z   | _        d| _        | j                  | j                  d  S r   )r   r>  r3   rE  rF  rQ   r   )rf   r   wanthaveto_readcurrents         r   rT  zBufferedReader._peek_unlockedm  s    1d&&'4>>"T^^3$;$!)&&-GhhmmG,G!%!@7!J!"~~dnno..r   c           	      0   	 | j                  d       |dk  r| j                  }|dk(  ry| j                  5  | j                  d       | j	                  t        |t        | j                        | j                  z
              cd d d        S # 1 sw Y   y xY w)Nzread of closed filer   r   r   )	r{   r>  rA  rT  rH  r   r3   rE  rF  r   s     r   r   zBufferedReader.read1x  s    J 	/0!8##D19__ 	A"&&D#dnn->?A	A 	A 	As   ABBc                    	 | j                  d       t        |t              st        |      }|j                  dk(  ry|j	                  d      }d}| j
                  5  |t        |      k  rt        t        | j                        | j                  z
  t        |            }|rU| j                  | j                  | j                  |z    ||||z    | xj                  |z  c_	        ||z  }|t        |      k(  rnlt        |      |z
  | j                  kD  r'| j                  j                  ||d        }|sn0||z  }n|r|s| j                  d      sn|r|rn|t        |      k  rd d d        |S # 1 sw Y   |S xY w)Nzreadinto of closed filer   r   r   )r{   r+   r   r*  r   rA  r3   r   rE  rF  r>  rQ   r   rT  )rf   r  r   writtenrP  r   s         r   r   zBufferedReader._readinto  se   @34
 #z*S/C::?hhsm__ 	CH$ C/$..@#c(Kt~~dnnU6JK .NNe+Nu$G#c(* s8g%(8(88))#gh-8AqLG  G..q1 W9 CH$	> ?	> s   DE..E8c                 r    t         j                  |       t        | j                        z
  | j                  z   S ry   )r   rr   r3   rE  rF  rq   s    r   rr   zBufferedReader.tell  s*    $$T*S-@@4>>QQr   c                 4   |t         vrt        d      | j                  d       | j                  5  |dk(  r%|t	        | j
                        | j                  z
  z  }t        j                  | ||      }| j                          |cd d d        S # 1 sw Y   y xY w)Ninvalid whence valuezseek of closed filer   )
valid_seek_flagsr4   r{   rA  r3   rE  rF  r   rj   r?  rl   s      r   rj   zBufferedReader.seek  s    ))344/0__ 	{s4>>*T^^;;"''c6:C  "	 	 	s   ABBry   r   r   )r]   r^   r_   r8   r   r   r?  r   rH  r   rT  r   r   rr   rj   r`   r   r   r@   r@     sG     )< !#-2.h	-	/A&.`R	r   r@   c                   L    e Zd Z	 efdZd Zd ZddZd Zd Z	d Z
dd	Zd
 Zy)r?   c                     |j                         st        d      t        j                  | |       |dk  rt	        d      || _        t               | _        t               | _	        y )Nz "raw" argument must be writable.r   r=  )
r   r<   r   r   r4   r>  r   
_write_bufr@  _write_lockrB  s      r   r   zBufferedWriter.__init__  sV    ||~<==!!$,!233&#+6r   c                 6    | j                   j                         S ry   )rQ   r   rq   s    r   r   zBufferedWriter.writable  r   r   c                 D   t        |t              rt        d      | j                  5  | j                  rt        d      t        | j                        | j                  kD  r| j                          t        | j                        }| j                  j                  |       t        | j                        |z
  }t        | j                        | j                  kD  r	 | j                          |cd d d        S # t        $ r}t        | j                        | j                  kD  rft        | j                        | j                  z
  }||z  }| j                  d | j                   | _        t        |j                  |j                  |      Y d }~d }~ww xY w# 1 sw Y   y xY w)Nr(  r'  )r+   r/   r1   rd  r   r4   r3   rc  r>  _flush_unlockedextendBlockingIOErrorerrnostrerror)rf   r'   beforer\  eoverages         r   r   zBufferedWriter.write  s[   a>?? 	{{ !788 4??#d&6&66 $$&)FOO""1%$//*V3G4??#d&6&66	L((* /	 	 ' L4??+d.>.>> #&doo"69I9I"I7**.//:K4;K;K*L-aggqzz7KK ?L	 	s7   B4FC8-F8	FBF	FFFFNc                     | j                   5  | j                          || j                  j                         }| j                  j	                  |      cd d d        S # 1 sw Y   y xY wry   )rd  rg  rQ   rr   ru   rv   s     r   ru   zBufferedWriter.truncate  sR     	*  "{hhmmo88$$S)		* 	* 	*s   AAA'c                 f    | j                   5  | j                          d d d        y # 1 sw Y   y xY wry   )rd  rg  rq   s    r   r|   zBufferedWriter.flush  s,     	#  "	# 	# 	#s   '0c                    | j                   rt        d      | j                  r	 | j                  j	                  | j                        }|t        t        j                  dd      |t        | j                        kD  s|dk  rt        d      | j                  d |= | j                  ry y # t
        $ r t        d      w xY w)Nr   zHself.raw should implement RawIOBase: it should not raise BlockingIOErrorz)write could not complete without blockingr   z*write() returned incorrect number of bytes)r   r4   rc  rQ   r   ri  RuntimeErrorrj  EAGAINr3   r<   rf   r   s     r   rg  zBufferedWriter._flush_unlocked  s    ;;344ooGHHNN4??3 y%LL?D D 3t''1q5JKK# oo # G" $F G GGs   %B- -Cc                 X    t         j                  |       t        | j                        z   S ry   )r   rr   r3   rc  rq   s    r   rr   zBufferedWriter.tell  s!    $$T*S-AAAr   c                     |t         vrt        d      | j                  5  | j                          t        j                  | ||      cd d d        S # 1 sw Y   y xY w)Nr_  )r`  r4   rd  rg  r   rj   rl   s      r   rj   zBufferedWriter.seek  sS    ))344 	<  "#((sF;	< 	< 	<s   'AAc                    | j                   5  | j                  | j                  r
	 d d d        y 	 d d d        	 | j                          | j                   5  | j                  j	                          d d d        y # 1 sw Y   JxY w# 1 sw Y   y xY w# | j                   5  | j                  j	                          d d d        w # 1 sw Y   w xY wxY wry   )rd  rQ   r   r|   rC   rq   s    r   rC   zBufferedWriter.close"  s     	xx4;;	 	#.		!JJL!! ! ! !	 	! !!! ! ! ! !s:   A:B B:BBCC:	CCCry   r   )r]   r^   r_   r8   r   r   r   ru   r|   rg  rr   rj   rC   r`   r   r   r?   r?     s:     )< 	"#8*#$"B<!r   r?   c                   p    e Zd Z	 efdZddZd Zd ZddZddZ	d Z
d Zd	 Zd
 Zd Zd Zed        Zy)BufferedRWPairc                     	 |j                         st        d      |j                         st        d      t        ||      | _        t        ||      | _        y )Nz#"reader" argument must be readable.z#"writer" argument must be writable.)r   r<   r   r@   readerr?   writer)rf   r{  r|  r>  s       r   r   zBufferedRWPair.__init__B  sQ    	  ?@@ ?@@$V[9$V[9r   c                 @    |d}| j                   j                  |      S Nr*   )r{  r   r   s     r   r   zBufferedRWPair.readP  s!    <D{{%%r   c                 8    | j                   j                  |      S ry   )r{  r   r   s     r   r   zBufferedRWPair.readintoU  s    {{##A&&r   c                 8    | j                   j                  |      S ry   )r|  r   r   s     r   r   zBufferedRWPair.writeX  s    {{  ##r   c                 8    | j                   j                  |      S ry   )r{  r   r   s     r   r   zBufferedRWPair.peek[  s    {{%%r   c                 8    | j                   j                  |      S ry   )r{  r   r   s     r   r   zBufferedRWPair.read1^  s    {{  &&r   c                 8    | j                   j                  |      S ry   )r{  r   r   s     r   r   zBufferedRWPair.readinto1a  s    {{$$Q''r   c                 6    | j                   j                         S ry   )r{  r   rq   s    r   r   zBufferedRWPair.readabled      {{##%%r   c                 6    | j                   j                         S ry   )r|  r   rq   s    r   r   zBufferedRWPair.writableg  r  r   c                 6    | j                   j                         S ry   )r|  r|   rq   s    r   r|   zBufferedRWPair.flushj  s    {{  ""r   c                     	 | j                   j                          | j                  j                          y # | j                  j                          w xY wry   )r|  rC   r{  rq   s    r   rC   zBufferedRWPair.closem  s8    	 KKKKDKKs	   7 Ac                 n    | j                   j                         xs | j                  j                         S ry   )r{  r7   r|  rq   s    r   r7   zBufferedRWPair.isattys  s'    {{!!#;t{{'9'9';;r   c                 .    | j                   j                  S ry   )r|  r   rq   s    r   r   zBufferedRWPair.closedv      {{!!!r   Nr   r   )r]   r^   r_   r8   r   r   r   r   r   r   r   r   r   r|   rC   r7   r   r   r`   r   r   ry  ry  2  s]    	 4G :&
'$&'(&&# < " "r   ry  c                   X    e Zd Z	 efdZddZd ZddZddZd Z	ddZ
dd	Zd
 Zd Zy)r>   c                     |j                          t        j                  | ||       t        j                  | ||       y ry   )r   r@   r   r?   rB  s      r   r   zBufferedRandom.__init__  s2    c;7c;7r   c                    |t         vrt        d      | j                          | j                  rQ| j                  5  | j
                  j                  | j                  t        | j                        z
  d       d d d        | j
                  j                  ||      }| j                  5  | j                          d d d        |dk  rt        d      |S # 1 sw Y   \xY w# 1 sw Y   'xY w)Nr_  r   r   z seek() returned invalid position)r`  r4   r|   rE  rA  rQ   rj   rF  r3   r?  r<   rl   s      r   rj   zBufferedRandom.seek  s    ))344

>> Gdnns4>>/BBAFG hhmmC(__ 	#  "	#7<==
G G
	# 	#s   =C)C C C)c                 n    | j                   rt        j                  |       S t        j                  |       S ry   )rc  r?   rr   r@   rq   s    r   rr   zBufferedRandom.tell  s+    ??!&&t,,!&&t,,r   Nc                 R    || j                         }t        j                  | |      S ry   )rr   r?   ru   rv   s     r   ru   zBufferedRandom.truncate  s%    ;))+C&&tS11r   c                 V    |d}| j                          t        j                  | |      S r~  )r|   r@   r   r   s     r   r   zBufferedRandom.read  s(    <D

""4..r   c                 N    | j                          t        j                  | |      S ry   )r|   r@   r   r   s     r   r   zBufferedRandom.readinto  s    

&&tQ//r   c                 N    | j                          t        j                  | |      S ry   )r|   r@   r   r   s     r   r   zBufferedRandom.peek  s    

""4..r   c                 N    | j                          t        j                  | |      S ry   )r|   r@   r   r   s     r   r   zBufferedRandom.read1  s    

##D$//r   c                 N    | j                          t        j                  | |      S ry   )r|   r@   r   r   s     r   r   zBufferedRandom.readinto1  s    

''a00r   c                     | j                   ra| j                  5  | j                  j                  | j                  t        | j                         z
  d       | j                          d d d        t        j                  | |      S # 1 sw Y   xY wr   )	rE  rA  rQ   rj   rF  r3   r?  r?   r   r   s     r   r   zBufferedRandom.write  sj    >> 'dnns4>>/BBAF$$&' ##D!,,' 's   ABBr   ry   r   )r]   r^   r_   r8   r   rj   rr   ru   r   r   r   r   r   r   r`   r   r   r>   r>   {  s>     )< 8
"-2/0/01-r   r>   c                        e Zd ZdZdZ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dZd Zd Zd ZefdZd ZddZ fdZd Zd Zd Zd Zd Zed        Zed        Z  xZ!S )r6   r*   FNTc                 ^   	 | j                   dk\  r3	 | j                  rt        j                  | j                          d| _         t	        |t
              rt        d      t	        |t              r|}|dk  rt        d      d}t	        |t              st        d|      t        |      t        d      k  st        d|      t        d |D              dk7  s|j                  d	      dkD  rt        d
      d|v r0d| _        d| _        t        j                  t        j                   z  }nnd|v r
d| _        d}n`d|v r)d| _        t        j                   t        j$                  z  }n3d|v r/d| _        d| _        t        j(                  t        j                   z  }d	|v rd| _        d| _        | j"                  r | j                  rt        j*                  z  }n3| j"                  rt        j,                  z  }nt        j.                  z  }|t1        t        dd      z  }t1        t        dd      xs t1        t        dd      }||z  }d }	 |dk  ru|st        d      |t        j2                  ||d      }n4 |||      }t	        |t              st        d      |dk  rt5        d      |}|st        j6                  |d       || _        t        j8                  |      }		 t;        j<                  |	j>                        r<tA        tB        jD                  t        jF                  tB        jD                        |      	 t1        |	dd      | _%        | jJ                  dk  rtL        | _%        tN        rtO        |t        jP                         || _)        | j&                  r	 t        jT                  |dtV               || _         y # d| _         w xY w# tH        $ r Y w xY w# t4        $ r(}
|
jB                  tB        jX                  k7  r Y d }
~
Od }
~
ww xY w#  |t        j                  |        xY w)Nr   r*   z$integer argument expected, got floatznegative file descriptorzinvalid mode: zxrwab+c              3   $   K   | ]  }|d v  
 yw)rwaxNr`   ).0cs     r   	<genexpr>z"FileIO.__init__.<locals>.<genexpr>  s     )qqF{)s   r   r%   zKMust have exactly one of create/read/write/append mode and at most one plusr!   Tr"   r#   r$   O_BINARYO_NOINHERIT	O_CLOEXECz'Cannot use closefd=False with file namei  zexpected integer from openerzNegative file descriptorFr;   )-_fd_closefdr-   rC   r+   floatr1   r,   r4   r/   r2   sumcount_created	_writableO_EXCLO_CREAT	_readableO_TRUNC
_appendingO_APPENDO_RDWRO_RDONLYO_WRONLYgetattrrV   r<   set_inheritabler9   statS_ISDIRst_modeIsADirectoryErrorrj  EISDIRrk  r=   _blksizer8   _setmoder  rg   lseekr
   ESPIPE)rf   rD   rB   rH   r)   fdr   noinherit_flagowned_fdfdfstatrm  s              r   r   zFileIO.__init__  s   	 88q===HHTXX&dE"BCCdC BAv !;<<B$$$8994yCM)49::)D))Q.$**S/A2E 9 : : $; DM!DNII

*ED[!DNED[!DNJJ+ED[!DN"DOKK"**,E$;!DN!DN>>dnnRYYE^^R[[ ER[[ EZ++!"mQ7 6!"k15 	/	Av$%NOO>ue4Be,B%b#.'(FGGAv%&@AA%&&r51#DMhhrlG<<0+ELL,.KK,EtM M 1 $G\1=DM}}! 3R[[)DIHHRH- I T "  &  ww%,,. /	#"sb   +O BP $AO ?A P  O 	O	OP OP 	P'P
P 
PP P,c                     | j                   dk\  rK| j                  r>| j                  s1dd l}|j	                  d| t
        d|        | j                          y y y y )Nr   zunclosed file r   )r   source)r  r  r   r   r   ResourceWarningrC   )rf   r   s     r   r   zFileIO.__del__G  sK    88q=T]]4;;MM6%&t  5JJL	 4?]=r   c                 H    t        d| j                  j                  d      r  r  rq   s    r   r  zFileIO.__getstate__N  r  r   c           	      N   | j                   j                  d| j                   j                  }| j                  rd|z  S 	 | j                  }d|d|d| j
                  d| j                  d	S # t        $ r* d|| j                  | j
                  | j                  fz  cY S w xY w)	Nrd   z<%s [closed]><z name=z mode=z	 closefd=>z<%s fd=%d mode=%r closefd=%r>)	re   r^   r_   r   rg   rB   r  r=   r  )rf   
class_namerg   s      r   r  zFileIO.__repr__Q  s     $ 9 9 $ ; ;=
;;"Z//	B99D  tyy$--A B	  	F3499dmmDE F	Fs   A1 10B$#B$c                 2    | j                   st        d      y )NzFile not open for reading)r  r\   rq   s    r   r   zFileIO._checkReadable_      ~~&'BCC r   c                 2    | j                   st        d      y )NzFile not open for writing)r  r\   r   s     r   r   zFileIO._checkWritablec  r  r   c                     	 | j                          | j                          ||dk  r| j                         S 	 t        j                  | j
                  |      S # t        $ r Y y w xY wr   )r{   r   r   r-   r   r  ri  r   s     r   r   zFileIO.readg  sd    	 	<4!8<<>!	77488T** 		s   A 	A&%A&c                 T   	 | j                          | j                          t        }	 t        j                  | j
                  dt              }t        j                  | j
                        j                  }||k\  r||z
  dz   }t               }	 t        |      |k\  rt        |      }|t        |t              z  }|t        |      z
  }	 t        j                  | j
                  |      }|s	 t        |      S ||z  }o# t        $ r Y w xY w# t        $ r |rY t        |      S Y y w xY wrp   )r{   r   r8   r-   r  r  r	   r9   st_sizer<   r   r3   r/  r   ri  r0   )rf   bufsizerm   endrR   r   rM  s          r   r   zFileIO.readallw  s&   	
 	%	((488Q1C((488$,,Ccz)a- 6{g%f+3w(;<<#f+%A!,
  V} eOF 	  		 #  V} s$   AC> 
 D >	D
	D
D'&D'c                     	 t        |      j                  d      }| j                  t        |            }t        |      }||d | |S r   )r   r   r   r3   )rf   r'   mr   r   s        r   r   zFileIO.readinto  sD    +qMs#yyQ I"1r   c                     	 | j                          | j                          	 t        j                  | j                  |      S # t
        $ r Y y w xY wry   )r{   r   r-   r   r  ri  r   s     r   r   zFileIO.write  sM    	 		88DHHa(( 		s   A 	AAc                     	 t        |t              rt        d      | j                          t	        j
                  | j                  ||      S )Nzan integer is required)r+   r  r1   r{   r-   r  r  rl   s      r   rj   zFileIO.seek  sB    		 c5!455xx#v..r   c                 n    	 | j                          t        j                  | j                  dt              S r   )r{   r-   r  r  r	   rq   s    r   rr   zFileIO.tell  s,    	5 	xx!X..r   c                     	 | j                          | j                          || j                         }t        j                  | j
                  |       |S ry   )r{   r   rr   r-   	ftruncater  r   s     r   ru   zFileIO.truncate  sH    	
 	<99;D
TXXt$r   c                     	 | j                   s;	 | j                  rt        j                  | j                         t
        |           y y # t
        |           w xY wry   )r   r  r-   rC   r  r   r!  s    r   rC   zFileIO.close  sH    	
 {{ ==HHTXX& 
 s   +A Ac                     	 | j                          | j                  $	 | j                          d| _        | j                  S | j                  S # t        $ r d| _        Y | j                  S w xY w)NTF)r{   	_seekablerr   r<   rq   s    r   r   zFileIO.seekable  si    2>>!&		 "&~~t~~	  '!& ~~	's   A A,+A,c                 <    	 | j                          | j                  S ry   )r{   r  rq   s    r   r   zFileIO.readable  s    5~~r   c                 <    	 | j                          | j                  S ry   )r{   r  rq   s    r   r   zFileIO.writable  s    6~~r   c                 <    	 | j                          | j                  S ry   )r{   r  rq   s    r   r:   zFileIO.fileno  s    Axxr   c                 b    	 | j                          t        j                  | j                        S ry   )r{   r-   r7   r  rq   s    r   r7   zFileIO.isatty  s$    <yy""r   c                     	 | j                   S ry   )r  rq   s    r   rH   zFileIO.closefd  s    D}}r   c                     	 | j                   r| j                  ryy| j                  r| j                  ryy| j                  r| j                  ryyy)Nzxb+xbzab+abzrb+rX   wb)r  r  r  r  rq   s    r   rB   zFileIO.mode  sD    )==~~__~~^^~~r   )r"   TNry   )"r]   r^   r_   r  r  r  r  r  r  r  r   r   r  r  r   r   r   r   r   r   r   rj   rr   ru   rC   r   r   r   r:   r7   r   rH   rB   r9  r:  s   @r   r6   r6     s    
CHIIJIHwrMBDD !F  ( / / 



#
    r   r6   c                   `    e Zd Z	 d
dZd ZddZd Zd Zed        Z	ed        Z
ed	        Zy)
TextIOBasec                 (    	 | j                  d       y r   rk   r   s     r   r   zTextIOBase.read$  s    	 	&!r   c                 (    	 | j                  d       y r   rk   )rf   ss     r   r   zTextIOBase.write.  s    <'"r   Nc                 (    	 | j                  d       y rt   rk   rv   s     r   ru   zTextIOBase.truncate2  s    8*%r   c                 (    	 | j                  d       y )Nr   rk   rq   s    r   r   zTextIOBase.readline6  s    	 	*%r   c                 (    	 | j                  d       y r   rk   rq   s    r   r   zTextIOBase.detach=  r   r   c                      	 y ry   r`   rq   s    r   r   zTextIOBase.encodingF  s    )r   c                      	 y ry   r`   rq   s    r   newlineszTextIOBase.newlinesK  s    	 r   c                      	 y ry   r`   rq   s    r   rF   zTextIOBase.errorsU  s    	' r   r   ry   )r]   r^   r_   r   r   ru   r   r   r   r   r  rF   r`   r   r   r  r    s\    "#&&$      r   r  c                   L    e Zd Z	 ddZddZd Zd Zd ZdZdZ	dZ
ed	        Zy
)IncrementalNewlineDecoderc                 ~    t         j                  j                  | |       || _        || _        d| _        d| _        y )N)rF   r   F)codecsIncrementalDecoderr   	translatedecoderseennl	pendingcr)rf   r  r  rF   s       r   r   z"IncrementalNewlineDecoder.__init__f  s7    !!**4*?"r   c                 8   | j                   |}n| j                   j                  ||      }| j                  r|s|rd|z   }d| _        |j                  d      r|s|d d }d| _        |j	                  d      }|j	                  d      |z
  }|j	                  d      |z
  }| xj
                  |xr | j                  |xr | j                  z  |xr | j                  z  z  c_        | j                  r(|r|j                  dd      }|r|j                  dd      }|S )NfinalFr*   T

)r  decoder  r   r  r  _LF_CR_CRLFr  replace)rf   inputr  outputcrlfcrlfs          r   r  z IncrementalNewlineDecoder.decodem  s   <<F\\((e(<F>>vF]F"DN ??4 CR[F!DN ||F#\\$$&\\$$&txxBO488<*

, 	, >>5d3r   c                     | j                   d}d}n| j                   j                         \  }}|dz  }| j                  r|dz  }||fS )Nr   r   r   )r  getstater  )rf   r  flags      r   r	  z"IncrementalNewlineDecoder.getstate  sO    <<CD--/IC
>>AIDDyr   c                     |\  }}t        |dz        | _        | j                  !| j                  j                  ||dz	  f       y y r   )boolr  r  setstate)rf   stater  r
  s       r   r  z"IncrementalNewlineDecoder.setstate  sD    	TdQh<<#LL!!3	"23 $r   c                 n    d| _         d| _        | j                  | j                  j                          y y )Nr   F)r  r  r  resetrq   s    r   r  zIncrementalNewlineDecoder.reset  s/    <<#LL  $r   r   r      c                      d| j                      S )N)Nr  r  )r  r  r  )r  r  )r  r  )r  r  r  )r  rq   s    r   r  z"IncrementalNewlineDecoder.newlines  s      	r   N)strict)F)r]   r^   r_   r   r  r	  r  r  r  r   r  r   r  r`   r   r   r  r  _  sC    >	4! C
CE	 	r   r  c                   n   e Zd Z	 dZdZ	 	 d)dZd Z	 	 d)dZd Ze	d        Z
e	d        Ze	d	        Ze	d
        Ze	d        ZddeddddZd Zd Zd Zd Zd Ze	d        Ze	d        Zd Z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*d"Z%d# Z&d,d$Z'd*d%Z(d& Z)d*d'Z*e	d(        Z+y)-rA   i   Nc                 `   | j                  |       t        |      }|dk(  r| j                         }t        |t              st        d|z        t        j                  |      j                  sd}t        ||z        |d}n9t        |t              st        d|z        t        rt        j                  |       || _        d| _        d| _        d | _        | j                   j#                         x| _        | _        t)        | j                   d      | _        | j-                  |||||       y )	Nr   r   zG%r is not a text encoding; use codecs.open() to handle arbitrary codecsr  r    r(   r   r   )_check_newliner   _get_locale_encodingr+   r/   r4   r  lookup_is_text_encodingLookupError_CHECK_ERRORSlookup_errorr  _decoded_chars_decoded_chars_used	_snapshotrU   r   r  _tellingr   
_has_read1
_configure)rf   rU   r   rF   rG   rS   write_throughr   s           r   r   zTextIOWrapper.__init__  s   G$ *x002H(C(3h>??}}X&88BCcHn-->Ffc* !5!>??##F+ #$ )-)=)=)??!$++w7&'&	7r   c                 z    |'t        |t              st        dt        |            |dvrt	        d|      y )Nzillegal newline type: )Nr(   r  r  r  zillegal newline value: )r+   r/   r1   typer4   )rf   rG   s     r   r  zTextIOWrapper._check_newline  s?    z'3'?$w-IJJ88GEFF 9r   c                    || _         || _        d | _        d | _        d| _        | | _        |d u | _        || _        |dk7  | _        |xs t        j                  | _        || _        || _        | j                  rR| j                         rA| j                   j#                         }|dk7  r!	 | j%                         j'                  d       y y y y # t(        $ r Y y w xY w)N        r(   r   )	_encoding_errors_encoder_decoder	_b2cratio_readuniversal_readtranslate_readnl_writetranslater-   linesep_writenl_line_buffering_write_throughr  r   rU   rr   _get_encoderr  r  )rf   r   rF   rG   rS   r#  positions          r   r"  zTextIOWrapper._configure  s    !")k%o&"}-2::-+ >>dmmo{{'')H1}%%'003  .>
 # s   )C 	CCc                 r   dj                  | j                  j                  | j                  j                        }	 | j                  }|dj                  |      z  }	 | j                  }|dj                  |      z  }|dj                  | j                        z   S # t
        $ r Y Jw xY w# t
        $ r Y 8w xY w)Nz<{}.{}z name={0!r}z mode={0!r}z encoding={0!r}>)r	  re   r^   r_   rg   r=   rB   r   )rf   rR   rg   rB   s       r   r  zTextIOWrapper.__repr__   s    !:!:!%!<!<>	199D m**400F	199D m**400F*11$--@@@  		  		s#   B B* 	B'&B'*	B65B6c                     | j                   S ry   )r(  rq   s    r   r   zTextIOWrapper.encoding1  s    ~~r   c                     | j                   S ry   )r)  rq   s    r   rF   zTextIOWrapper.errors5      ||r   c                     | j                   S ry   )r3  rq   s    r   rS   zTextIOWrapper.line_buffering9  s    ###r   c                     | j                   S ry   )r4  rq   s    r   r#  zTextIOWrapper.write_through=  s    """r   c                     | j                   S ry   )r  rq   s    r   rU   zTextIOWrapper.bufferA  r:  r   )r   rF   rG   rS   r#  c                    	 | j                   |
||t        urt        d      ||| j                  }n!d}nt	        |t
              st        d|z        || j                  }n3t	        |t
              st        d|z        |dk(  r| j                         }|t        u r| j                  }| j                  |       || j                  }|| j                  }| j                          | j                  |||||       y )NzPIt is not possible to set the encoding or newline of stream after the first readr  r    r   r   )r+  Ellipsisr\   r)  r+   r/   r1   r(  r  r/  r  rS   r#  r|   r"  )rf   r   rF   rG   rS   r#  s         r   reconfigurezTextIOWrapper.reconfigureE  s   	 MM%)V-?x/&'( ( >!FC(069::~~Hh, 6 ABB8#446hllGG$!!00N  ..M

&'&	7r   c                 H    | j                   rt        d      | j                  S r   )r   r4   r  rq   s    r   r   zTextIOWrapper.seekablep  s    ;;<==~~r   c                 6    | j                   j                         S ry   )rU   r   rq   s    r   r   zTextIOWrapper.readableu  r  r   c                 6    | j                   j                         S ry   )rU   r   rq   s    r   r   zTextIOWrapper.writablex  r  r   c                 Z    | j                   j                          | j                  | _        y ry   )rU   r|   r  r   rq   s    r   r|   zTextIOWrapper.flush{  s    r   c                     | j                   9| j                  s,	 | j                          | j                   j                          y y y # | j                   j                          w xY wry   )rU   r   r|   rC   rq   s    r   rC   zTextIOWrapper.close  sL    ;;"4;;$

!!#	 ,7" !!#r   c                 .    | j                   j                  S ry   )rU   r   rq   s    r   r   zTextIOWrapper.closed  r  r   c                 .    | j                   j                  S ry   )rU   rg   rq   s    r   rg   zTextIOWrapper.name  s    {{r   c                 6    | j                   j                         S ry   )rU   r:   rq   s    r   r:   zTextIOWrapper.fileno      {{!!##r   c                 6    | j                   j                         S ry   )rU   r7   rq   s    r   r7   zTextIOWrapper.isatty  rI  r   c                    	 | j                   rt        d      t        |t              s"t	        d|j
                  j                  z        t        |      }| j                  xs | j                  xr d|v }|r7| j                  r+| j                  dk7  r|j                  d| j                        }| j                  xs | j                         }|j                  |      }| j                  j!                  |       | j                  r|sd|v r| j#                          | j%                  d       d | _        | j(                  r| j(                  j+                          |S )Nr'  zcan't write %s to text streamr  r  r(   )r   r4   r+   r/   r1   re   r]   r3   r0  r3  r2  r  r*  r5  encoderU   r   r|   _set_decoded_charsr  r+  r  )rf   r  lengthhaslfencoderr'   s         r   r   zTextIOWrapper.write  s   &;;344!S!;KK001 2 2Q%%=)=)=L419T))dmmt.C		$.A--64#4#4#6NN1!UdaiJJL#==MM!r   c                     t        j                  | j                        } || j                        | _        | j                  S ry   )r  getincrementalencoderr(  r)  r*  )rf   make_encoders     r   r5  zTextIOWrapper._get_encoder  s0    33DNNC$T\\2}}r   c                     t        j                  | j                        } || j                        }| j                  rt        || j                        }|| _        |S ry   )r  getincrementaldecoderr(  r)  r-  r  r.  r+  )rf   make_decoderr  s      r   _get_decoderzTextIOWrapper._get_decoder  sK    33DNNCt||,/9L9LMGr   c                 "    	 || _         d| _        y r   )r  r  )rf   charss     r   rM  z TextIOWrapper._set_decoded_chars  s    ,##$ r   c                     	 | j                   }|| j                  |d  }n| j                  |||z    }| xj                   t        |      z  c_         |S ry   )r  r  r3   )rf   r   offsetrY  s       r   _get_decoded_charsz TextIOWrapper._get_decoded_chars  sW    5))9''0E''vz:E  CJ. r   c                 J    	 dd l }|j                         S # t        $ r Y yw xY w)Nr   r   )r   getencodingImportError)rf   r   s     r   r  z"TextIOWrapper._get_locale_encoding  s/    	(
 %%''	  		s    	""c                 d    	 | j                   |k  rt        d      | xj                   |z  c_         y )Nz"rewind decoded_chars out of bounds)r  AssertionErrorrt  s     r   _rewind_decoded_charsz#TextIOWrapper._rewind_decoded_chars  s0    /##a' !EFF  A% r   c                 (   	 | j                   t        d      | j                  r| j                   j                         \  }}| j                  r&| j
                  j                  | j                        }n%| j
                  j                  | j                        }| }| j                   j                  ||      }| j                  |       |r't        |      t        | j                        z  | _        nd| _        | j                  r|z   f| _        | S )Nz
no decoderr'  )r+  r4   r   r	  r!  rU   r   _CHUNK_SIZEr   r  rM  r3   r  r,  r  )rf   
dec_buffer	dec_flagsinput_chunkeofdecoded_charss         r   _read_chunkzTextIOWrapper._read_chunk  s    	 == \**== %)MM$:$:$<!J	
 ??++++D,<,<=K++**4+;+;<Ko,,[#>. -D4G4G0HHDN DN== (k)ABDNwr   c                 H    ||dz  z  |dz  z  |dz  z  t        |      dz  z  S )N@            )r  )rf   r6  rf  bytes_to_feedneed_eofchars_to_skips         r   _pack_cookiezTextIOWrapper._pack_cookie	  s=     IrM*mS.@As"$&*8nc&9: 	;r   c                     t        |d      \  }}t        |d      \  }}t        |d      \  }}t        |d      \  }}|||t        |      |fS )Nl            )divmodr  )rf   bigintrestr6  rf  rp  rq  rr  s           r   _unpack_cookiezTextIOWrapper._unpack_cookie	  sY    .h u-i$T51m"(u"5-M4>=PPr   c           
      2   | j                   st        d      | j                  st        d      | j	                          | j
                  j                         }| j                  }|| j                  | j                  rt        d      |S | j                  \  }}|t        |      z  }| j                  }|dk(  r| j                  ||      S |j                         }	 t        | j                   |z        }d}|dkD  rs|j#                  d|f       t        |j%                  |d |             }	|	|k  r.|j                         \  }
}|
s|}||	z  }n6|t        |
      z  }d}n
||z  }|dz  }|dkD  rsd}|j#                  d|f       ||z   }|}|dk(  r#| j                  ||      |j#                  |       S d}d}d}t'        |t        |            D ][  }|dz  }|t        |j%                  |||dz                z  }|j                         \  }}|s||k  r||z  }||z  }|dd}}}||k\  s[ n2 |t        |j%                  dd	
            z  }d	}||k  rt        d      | j                  |||||      |j#                  |       S # |j#                  |       w xY w)N!underlying stream is not seekablez(telling position disabled by next() callzpending decoded textr   r   r   r   FTr  z'can't reconstruct logical file position)r  r\   r   r<   r|   rU   rr   r+  r  r  ra  r3   r  rs  r	  r,   r,  r  r  range)rf   r6  r  rf  
next_inputrr  saved_state
skip_bytes	skip_backr   r'   d	start_posstart_flags	bytes_fedrq  chars_decodedire  s                      r   rr   zTextIOWrapper.tell	  s   ~~&'JKK}}DEE

;;##%--?dnn4""$%;<<O !%	:C
O# 00A$$Xy99 &&(F	* T^^m;<JIq.  #y!12z+:'>?@%"++-DAq$%	%*#a&(J !I )+J )AI# q.& 
  #y!12 !:-I#K!((K@@ [)5 IHM:s:7 MQ	W^^Jq14E%F!GG(/(8(8(:%
I!m}&D*I!]2M<Eq!MK M1M W^^Ct^%D!EE =0!"KLL $$;	8]L [)G[)s!   BJ /2J 3A5J )AJ Jc                 |    | j                          || j                         }| j                  j                  |      S ry   )r|   rr   rU   ru   rv   s     r   ru   zTextIOWrapper.truncatew	  s0    

;))+C{{##C((r   c                 z    | j                   t        d      | j                          | j                  }d | _        |S )Nzbuffer is already detached)rU   r4   r|   r  )rf   rU   s     r   r   zTextIOWrapper.detach}	  s6    ;;9::

r   c                      fd} j                   rt        d       j                  st        d      |t        k(  r#|dk7  rt        d      d} j                         }n|t        k(  r|dk7  rt        d       j                           j                  j                  d|      } j                  d       d  _         j                  r j                  j                           ||       |S |dk7  rt        d|d	      |dk  rt        d
|       j                           j                  |      \  }}}}}	 j                  j                  |        j                  d       d  _        |dk(  r' j                  r j                  j                          nY j                  s|s|	rI j                  xs  j                          _         j                  j!                  d|f       |df _        |	ry j                  j#                  |      }
 j                   j                  j%                  |
|             ||
f _        t'         j(                        |	k  rt+        d      |	 _         ||       |S )Nc                     	 	 j                   xs j                         }| dk7  r|j                  d       y |j                          y # t        $ r Y y w xY wr   )r*  r5  r  r  r  )r6  rP  rf   s     r   _reset_encoderz*TextIOWrapper.seek.<locals>._reset_encoder	  sV    K	$-->4+<+<+>
 q=$$Q'MMO  s   A
 
	AAr2  rz  r   z#can't do nonzero cur-relative seeksz#can't do nonzero end-relative seeksr(   zunsupported whence ()r.  r   z#can't restore logical file position)r   r4   r  r\   r	   rr   r
   r|   rU   rj   rM  r  r+  r  rx  rW  r  r   r  r3   r  r<   r  )rf   cookiern   r  r6  r  rf  rp  rq  rr  rg  s   `          r   rj   zTextIOWrapper.seek	  s-   	$ ;;233~~&'JKKX{*+PQQ FYY[Fx{*+PQQJJL{{''62H##B'!DN}}##%8$OQ;&BCCA:FDEE


 ' 	E	9mX} 	## Q;4==MM!]]i= MM@T->->-@DMMM""C#34'-DN++**=9K##$$[(;='5DN 4&&'-7CDD'4D$vr   c                 J   | j                          |d}n	 |j                  } |       }| j                  xs | j                         }|dk  rV| j                         |j                  | j                  j                         d      z   }| j                  d       d | _        |S d}| j                  |      }t        |      |k  rD|sB| j                          }|| j                  |t        |      z
        z  }t        |      |k  r|sB|S # t        $ r t        |d      w xY w)Nr*   r   r   Tr  r(   F)r   r   r=   r1   r+  rW  r\  r  rU   r   rM  r  r3   rj  )rf   r   r   r  rR   rh  s         r   r   zTextIOWrapper.read	  s'   <D$!^^
 "|--64#4#4#6!8--/nnT[[%5%5%7tnDEF##B'!DNM C,,T2Ff+$S**,,$11$V2DEE f+$S M' " ?4(*< =>>?s   D
 
D"c                 t    d| _         | j                         }|sd | _        | j                  | _         t        |S r   )r   r   r  r  r   r   s     r   r   zTextIOWrapper.__next__	  s4    }}!DN NNDMr   c                 $   | j                   rt        d      |d}n	 |j                  } |       }| j                         }d}| j                  s| j                          d x}}	 | j                  r*|j                  d|      }|dk\  r|dz   }n;t        |      }n| j                  rj|j                  d|      }|j                  d|      }|dk(  r|dk(  rt        |      }ni|dz   }n|dk(  r|dz   }n||k  r|dz   }n||dz   k(  r|dz   }n|dz   }n|j                  | j                        }|dk\  r|t        | j                        z   }n|dk\  rt        |      |k\  r|}nj| j                         r| j                  rn| j                         r| j                  r|| j                         z  }n| j                  d	       d | _        |S e|dk\  r||kD  r|}| j#                  t        |      |z
         |d | S # t        $ r t	        |d      w xY w)
Nr#  r*   r   r   r  r   r  r   r(   )r   r4   r   r=   r1   r\  r+  rW  r.  r   r3   r-  r/  rj  r  rM  r  rb  )	rf   r   r   r   startrm   endposnlposcrposs	            r   r   zTextIOWrapper.readline	  sN   ;;455<D$!^^
 "| &&(}}f""iie,!8 1WFIE$$
 		$.		$.B;{ #D	 "'b["QYFU]"QYFeai'"QYF #QYF ii-!8 3t||#44FqySY$. ""$&& ""$ ""//11 ''+!%} @ 19$F 	""3t9v#56GV}g " ?4(*< =>>?s   G7 7Hc                 J    | j                   r| j                   j                  S d S ry   )r+  r  rq   s    r   r  zTextIOWrapper.newlinesR
  s    )-t}}%%@D@r   )NNNFFry   )r   r   Fr   r   ),r]   r^   r_   rd  r  r   r  r"  r  r   r   rF   rS   r#  rU   r?  r@  r   r   r   r|   rC   r   rg   r:   r7   r   r5  rW  rM  r\  r  rb  rj  rs  rx  rr   ru   r   rj   r   r   r   r  r`   r   r   rA   rA     s~   , K G
 DH5:7BG >B7<HA"     $ $ # #   "$#'t)7V
&&'$ " "    $$.
%
(&(T 01JK;Qa*F)IV8[z A Ar   rA   c                   T     e Zd Z	 d fd	Zd Zd Zed        Zed        Zd Z	 xZ
S )StringIOc                    t         t        |   t               dd|       |d| _        |`t        |t              s-t        dj                  t        |      j                              | j                  |       | j                  d       y y )Nr   surrogatepass)r   rF   rG   Fz*initial_value must be str or None, not {0}r   )r   r  r   r  r0  r+   r/   r1   r	  r%  r]   r   rj   )rf   initial_valuerG   re   s      r   r   zStringIO.__init__^
  s    h&wy07.=/6 	' 	8 ?#(D $mS1 L!'](;(D(D!EG GJJ}%IIaL %r   c                 D   | j                          | j                  xs | j                         }|j                         }|j	                          	 |j                  | j                  j                         d      |j                  |       S # |j                  |       w xY w)NTr  )	r|   r+  rW  r	  r  r  rU   r  r  )rf   r  	old_states      r   r  zStringIO.getvaluen
  sx    

--64#4#4#6$$&		(>>$++"6"6"8>EY'GY's   *B Bc                 ,    t         j                  |       S ry   )objectr  rq   s    r   r  zStringIO.__repr__x
  s     t$$r   c                      y ry   r`   rq   s    r   rF   zStringIO.errors}
      r   c                      y ry   r`   rq   s    r   r   zStringIO.encoding
  r  r   c                 &    | j                  d       y r   rk   rq   s    r   r   zStringIO.detach
  s    (#r   )r(   r  )r]   r^   r_   r   r  r  r   rF   r   r   r9  r:  s   @r   r  r  W
  sD     (%
    $r   r  )r   )r"   r*   NNNTN)8r-   abcr  rj  r  r   _threadr   r@  platformmsvcrtr   r  ior   r   r	   r
   r`  r   addr   	SEEK_DATAr8   ri  r   dev_moder   r  r   staticmethodrV   rZ   	open_coder=   r\   r<   r4   ABCMetarb   registerr   _ior6   r   r   r  r@   r?   ry  r>   r  r  r  rA   r  r`   r   r   <module>r     sa   
 
    
 )<<&&*H 	 6 6 
2{&&   " $C);<R		@R@R (B =A,0K K^ (I22_s{{ _B	 		  6 8# 8#t   i    	  6 e$V e$N     > *h!~ h!VLn L^E% ENf!% f!RF"^ F"RG-^^ G-TTY Tn
> >@   z "R 9 9 Rj`
AJ `
AF0$} 0$SI  ('I(  w
 s$   H H HHH43H4