grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a XC?h„lã@svddlZddlZddlZddlZddlZddlZddlmZej dvrTddl m Z ndZ ddl Z ddl mZmZmZmZhd£Zeedƒr¢e ej¡e ej¡dZeZeed ƒpºejjZeZd5d d„Zdd„Zz e jZWne �yôeZYn0Gdd„dƒZ!Gdd„dƒZ"z e j#Z#Wn&e �yBGdd„de$e%ƒZ#Yn0Gdd„dej&d�Z'e j' (e'¡Gdd„de'ƒZ)e j) (e)¡ddl*m+Z+e) (e+¡Gdd„de'ƒZ,e j, (e,¡Gdd „d e,ƒZ-Gd!d"„d"e,ƒZ.Gd#d$„d$e-ƒZ/Gd%d&„d&e-ƒZ0Gd'd(„d(e,ƒZ1Gd)d*„d*e0e/ƒZ2Gd+d,„d,e)ƒZ+Gd-d.„d.e'ƒZ3e j3 (e3¡Gd/d0„d0ej4ƒZ5Gd1d2„d2e3ƒZ6Gd3d4„d4e6ƒZ7dS)6éN)Ú allocate_lock>Zwin32Úcygwin)Úsetmode)Ú__all__ÚSEEK_SETÚSEEK_CURÚSEEK_END>rééÚ SEEK_HOLEi ZgettotalrefcountÚréÿÿÿÿTc Cs¤t|tƒst |¡}t|tttfƒs0td|ƒ‚t|tƒsFtd|ƒ‚t|tƒs\td|ƒ‚|durzt|tƒsztd|ƒ‚|dur˜t|tƒs˜td|ƒ‚t|ƒ}|tdƒs¼t|ƒt|ƒkrÈt d|ƒ‚d|v} d|v} d |v} d |v} d |v} d |v}d |v}d|v�rD| �s"| �s"| �s"| �r*t dƒ‚ddl }|  dt d¡d} |�rX|�rXt dƒ‚| | | | dk�rvt dƒ‚| �s–| �s–| �s–| �s–t dƒ‚|�r®|du�r®t dƒ‚|�rÆ|du�rÆt dƒ‚|�rÞ|du�rÞt dƒ‚|�r|dk�rddl }|  dt d¡t|| �rd�pd| �r"d�p$d| �r2d �p4d| �rBd �pDd| �rRd �pTd||d�}|}�z"d}|dk�sŠ|dk�r’| ¡�r’d}d}|dk�rÜt}zt | ¡¡j}Wnttf�yÌYn0|dk�rÜ|}|dk�rît d ƒ‚|dk�r |�r|WSt d!ƒ‚| �rt||ƒ}n<| �s0| �s0| �rˆ d¡}|sdS| d¡dp&t|ƒ}ˆdkr:t|ˆƒ}|S)Nr ó r)rzÚfindr!Úmin)Z readaheadÚn©rHÚsizer@rAÚ nreadaheads  z#IOBase.readline..nreadaheadcSsdS©Nr r@r@r@r@rAr�!sr ú is not an integerrr{) ÚhasattrÚ __index__r.rÚ bytearrayr!ÚreadÚendswithr)rHr€r�Ú size_indexÚresrr@rrAÚreadline s&      zIOBase.readlinecCs | ¡|SrPrer`r@r@rAÚ__iter__6szIOBase.__iter__cCs| ¡}|st‚|SrP)r‹Ú StopIteration©rHÚliner@r@rAÚ__next__:szIOBase.__next__cCsP|dus|dkrt|ƒSd}g}|D]&}| |¡|t|ƒ7}||kr$qLq$|S©Nr)ÚlistÚappendr!)rHÚhintr~Úlinesr�r@r@rAÚ readlines@s  zIOBase.readlinescCs | ¡|D]}| |¡q dSrP)rfÚwrite)rHr•r�r@r@rAÚ writelinesRszIOBase.writelines)r)N)N)N)N)N)r )N)rLrMrNrYrZrarcrgrhr4rkrmrprqrrrsrtÚpropertyrirfrxryr+r(r‹rŒr�r–r˜r@r@r@rArV;s4"         * rV)Ú metaclassc@s.eZdZd dd„Zdd„Zdd„Zdd „Zd S) Ú RawIOBaser cCsP|dur d}|dkr| ¡St| ¡ƒ}| |¡}|dur>dS||d…=t|ƒS)Nr r)Úreadallr†r…Úreadintor)rHr€rr~r@r@rAr‡ms   zRawIOBase.readcCs4tƒ}| t¡}|sq ||7}q|r,t|ƒS|SdSrP)r†r‡r)r)rHrŠÚdatar@r@rArœ~s  zRawIOBase.readallcCs| d¡dS)Nr�r[©rHrr@r@rAr�ŒszRawIOBase.readintocCs| d¡dS©Nr—r[rŸr@r@rAr—”szRawIOBase.writeN)r )rLrMrNr‡rœr�r—r@r@r@rAr›_s r›)r'c@sHeZdZddd„Zddd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dS)ÚBufferedIOBaser cCs| d¡dS©Nr‡r[rr@r@rAr‡²szBufferedIOBase.readcCs| d¡dS)NÚread1r[rr@r@rAr£ÆszBufferedIOBase.read1cCs|j|dd�S)NF©r£©Ú _readintorŸr@r@rAr�Ìs zBufferedIOBase.readintocCs|j|dd�S)NTr¤r¥rŸr@r@rAÚ readinto1Ús zBufferedIOBase.readinto1cCsVt|tƒst|ƒ}| d¡}|r0| t|ƒ¡}n| t|ƒ¡}t|ƒ}||d|…<|S©NÚB)rÚ memoryviewÚcastr£r!r‡)rHrr£ržr~r@r@rAr¦ås   zBufferedIOBase._readintocCs| d¡dSr r[rŸr@r@rAr—ôs zBufferedIOBase.writecCs| d¡dS©NÚdetachr[r`r@r@rAr­ÿszBufferedIOBase.detachN)r )r ) rLrMrNr‡r£r�r§r¦r—r­r@r@r@rAr¡¡s    r¡c@s eZdZdd„Zd#dd„Zdd„Zd$d d „Zd d „Zd d„Zdd„Z dd„Z e dd„ƒZ e dd„ƒZ e dd„ƒZe dd„ƒZdd„Zdd„Zdd „Zd!d"„ZdS)%Ú_BufferedIOMixincCs ||_dSrP©Ú_raw©rHr<r@r@rAÚ__init__sz_BufferedIOMixin.__init__rcCs"|j ||¡}|dkrtdƒ‚|S)Nrz#seek() returned an invalid position)r<rZr-)rHr]r^Z new_positionr@r@rArZsz_BufferedIOMixin.seekcCs|j ¡}|dkrtdƒ‚|S)Nrz#tell() returned an invalid position)r<rar-rdr@r@rAras z_BufferedIOMixin.tellNcCs4| ¡| ¡| ¡|dur(| ¡}|j |¡SrP)rfrtrgrar<rcrdr@r@rArc%s z_BufferedIOMixin.truncatecCs|jrtdƒ‚|j ¡dS)Núflush on closed file)rir"r<rgr`r@r@rArg6sz_BufferedIOMixin.flushcCs8|jdur4|js4z| ¡W|j ¡n |j ¡0dSrP)r<rirgr4r`r@r@rAr4;s z_BufferedIOMixin.closecCs*|jdurtdƒ‚| ¡|j}d|_|S)Nzraw stream already detached)r<r"rgr°r±r@r@rAr­Cs  z_BufferedIOMixin.detachcCs |j ¡SrP)r<rmr`r@r@rArmMsz_BufferedIOMixin.seekablecCs|jSrPr¯r`r@r@rAr<Psz_BufferedIOMixin.rawcCs|jjSrP)r<rir`r@r@rAriTsz_BufferedIOMixin.closedcCs|jjSrP)r<rXr`r@r@rArXXsz_BufferedIOMixin.namecCs|jjSrP)r<r3r`r@r@rAr3\sz_BufferedIOMixin.modecCstd|jj›d�ƒ‚dS©Nzcannot pickle z object©rrWrLr`r@r@rAÚ __getstate__`sz_BufferedIOMixin.__getstate__cCsL|jj}|jj}z |j}Wnty8d ||¡YS0d |||¡SdS)Nz<{}.{}>z<{}.{} name={!r}>)rWrMrNrXr.Úformat)rHÚmodnameZclsnamerXr@r@rAÚ__repr__cs  z_BufferedIOMixin.__repr__cCs |j ¡SrP)r<r+r`r@r@rAr+osz_BufferedIOMixin.filenocCs |j ¡SrP)r<r(r`r@r@rAr(rsz_BufferedIOMixin.isatty)r)N)rLrMrNr²rZrarcrgr4r­rmr™r<rirXr3r¶r¹r+r(r@r@r@rAr® s(         r®cs’eZdZdZd dd„Zdd„Zdd„Zdd „Z‡fd d „Zd!d d„Z d"dd„Z dd„Z d#dd„Z dd„Z d$dd„Zdd„Zdd„Zdd„Z‡ZS)%ÚBytesIONcCs&tƒ}|dur||7}||_d|_dSr‘)r†Ú_bufferÚ_pos)rHZ initial_bytesÚbufr@r@rAr²~s zBytesIO.__init__cCs|jrtdƒ‚|j ¡S)Nz__getstate__ on closed file)rir"Ú__dict__Úcopyr`r@r@rAr¶…szBytesIO.__getstate__cCs|jrtdƒ‚t|jƒS)Nzgetvalue on closed file)rir"rr»r`r@r@rAÚgetvalueŠszBytesIO.getvaluecCs|jrtdƒ‚t|jƒS)Nzgetbuffer on closed file)rir"rªr»r`r@r@rAÚ getbuffer‘szBytesIO.getbuffercs"|jdur|j ¡tƒ ¡dSrP)r»ÚclearÚsuperr4r`©rWr@rAr4˜s  z BytesIO.closer cCs¨|jrtdƒ‚|durd}n2z |j}Wn tyFt|›d�ƒ‚Yn0|ƒ}|dkr`t|jƒ}t|jƒ|jkrtdStt|jƒ|j|ƒ}|j|j|…}||_t |ƒS)Núread from closed filer rƒró) rir"r…r.rr!r»r¼r}r)rHr€r‰Znewposrr@r@rAr‡�s"   z BytesIO.readcCs | |¡SrP)r‡rr@r@rAr£²sz BytesIO.read1cCs²|jrtdƒ‚t|tƒr tdƒ‚t|ƒ�}|j}Wdƒn1sD0Y|dkrZdS|j}|t|j ƒkrŽd|t|j ƒ}|j |7_ ||j |||…<|j|7_|S)Núwrite to closed fileú can't write str to binary streamró) rir"rrrrªÚnbytesr¼r!r»)rHrZviewr~r]Zpaddingr@r@rAr—·s  $z BytesIO.writercCs°|jrtdƒ‚z |j}Wn ty8t|›d�ƒ‚Yn0|ƒ}|dkrf|dkr^td|fƒ‚||_nD|dkr‚td|j|ƒ|_n(|dkr¢tdt|jƒ|ƒ|_ntdƒ‚|jS)Nzseek on closed filerƒrúnegative seek position %rr r zunsupported whence value) rir"r…r.rr¼Úmaxr!r»)rHr]r^Ú pos_indexr@r@rArZÊs"  z BytesIO.seekcCs|jrtdƒ‚|jS)Nútell on closed file)rir"r¼r`r@r@rAraßsz BytesIO.tellcCsv|jrtdƒ‚|dur|j}nHz |j}Wn tyHt|›d�ƒ‚Yn0|ƒ}|dkrftd|fƒ‚|j|d…=|S)Nztruncate on closed filerƒrznegative truncate position %r)rir"r¼r…r.rr»)rHr]rÍr@r@rArcäs   zBytesIO.truncatecCs|jrtdƒ‚dS©NrvTrwr`r@r@rArqõszBytesIO.readablecCs|jrtdƒ‚dSrÏrwr`r@r@rArsúszBytesIO.writablecCs|jrtdƒ‚dSrÏrwr`r@r@rArmÿszBytesIO.seekable)N)r )r )r)N)rLrMrNr»r²r¶rÀrÁr4r‡r£r—rZrarcrqrsrmÚ __classcell__r@r@rÄrArºvs      rºc@steZdZefdd„Zdd„Zdd„Zddd „Zdd d „Zdd d„Z ddd„Z ddd„Z dd„Z dd„Z ddd„ZdS) r1cCsF| ¡stdƒ‚t ||¡|dkr,tdƒ‚||_| ¡tƒ|_dS)Nz "raw" argument must be readable.rúinvalid buffer size) rqr-r®r²r"Ú buffer_sizeÚ_reset_read_bufÚLockÚ _read_lock©rHr<rÒr@r@rAr²s zBufferedReader.__init__cCs |j ¡SrP)r<rqr`r@r@rArqszBufferedReader.readablecCsd|_d|_dS)NrÆr)Ú _read_bufÚ _read_posr`r@r@rArÓ szBufferedReader._reset_read_bufNcCsL|dur|dkrtdƒ‚|j�| |¡WdƒS1s>0YdS)Nr zinvalid number of bytes to read)r"rÕÚ_read_unlockedrr@r@rAr‡$szBufferedReader.readc Cs†d}d}|j}|j}|dus$|dkrº| ¡t|jdƒrj|j ¡}|durZ||d…pXdS||d…|S||d…g}d}|j ¡}||vr”|}q¬|t|ƒ7}| |¡q|d  |¡p¸|St|ƒ|} || krì|j|7_||||…S||d…g}t |j |ƒ} | |k�rH|j | ¡}||v�r.|}�qH| t|ƒ7} | |¡�qt || ƒ}d  |¡} | |d…|_d|_| �r‚| d|…S|S)NrÆ)rÆNr rœr) r×rØrÓr„r<rœr‡r!r“ÚjoinrÌrÒr}) rHr~Z nodata_valZ empty_valuesr½r]ÚchunkZchunksZ current_sizeÚavailZwantedÚoutr@r@rArÙ1sL             zBufferedReader._read_unlockedrcCs4|j�| |¡WdƒS1s&0YdSrP)rÕÚ_peek_unlockedrr@r@rArzeszBufferedReader.peekcCsrt||jƒ}t|jƒ|j}||ks,|dkrb|j|}|j |¡}|rb|j|jd…||_d|_|j|jd…Sr‘)r}rÒr!r×rØr<r‡)rHr~ZwantZhaveZto_readZcurrentr@r@rArÞos   zBufferedReader._peek_unlockedr cCsj|dkr|j}|dkrdS|j�6| d¡| t|t|jƒ|jƒ¡WdƒS1s\0YdS)NrrÆr )rÒrÕrÞrÙr}r!r×rØrr@r@rAr£zs ÿzBufferedReader.read1cCs t|tƒst|ƒ}|jdkr dS| d¡}d}|j�Ö|t|ƒkrütt|jƒ|jt|ƒƒ}|r¦|j|j|j|…||||…<|j|7_||7}|t|ƒkr¦qüt|ƒ||j krÜ|j   ||d…¡}|sÒqü||7}n|rä|sð|  d¡sðqü|r6|r6qüq6Wdƒn1�s0Y|S)Nrr©r ) rrªrÊr«rÕr!r}r×rØrÒr<r�rÞ)rHr½r£ÚwrittenrÜr~r@r@rAr¦Œs6    ÿ   $zBufferedReader._readintocCst |¡t|jƒ|jSrP)r®rar!r×rØr`r@r@rAraºszBufferedReader.tellcCsp|tvrtdƒ‚|j�F|dkr4|t|jƒ|j8}t |||¡}| ¡|WdƒS1sb0YdS)Núinvalid whence valuer ) Úvalid_seek_flagsr"rÕr!r×rØr®rZrÓr\r@r@rArZ½szBufferedReader.seek)N)N)r)r)r )r)rLrMrNr)r²rqrÓr‡rÙrzrÞr£r¦rarZr@r@r@rAr1s  4 .r1c@s\eZdZefdd„Zdd„Zdd„Zddd „Zd d „Zd d „Z dd„Z ddd„Z dd„Z dS)r0cCsF| ¡stdƒ‚t ||¡|dkr,tdƒ‚||_tƒ|_tƒ|_ dS)Nz "raw" argument must be writable.rrÑ) rsr-r®r²r"rÒr†Ú _write_bufrÔÚ _write_lockrÖr@r@rAr²Ðs zBufferedWriter.__init__cCs |j ¡SrP)r<rsr`r@r@rArsÛszBufferedWriter.writablec Cst|tƒrtdƒ‚|j�ê|jr(tdƒ‚t|jƒ|jkr@|  ¡t|jƒ}|j  |¡t|jƒ|}t|jƒ|jkrðz |  ¡Wnnt yî}zVt|jƒ|jkrÚt|jƒ|j}||8}|jd|j…|_t |j |j |ƒ‚WYd}~n d}~00|WdƒS1�s 0YdS)NrÈrÇ)rrrrãrir"r!rârÒÚ_flush_unlockedÚextendÚBlockingIOErrorÚerrnoÚstrerror)rHrZbeforerßÚeZoverager@r@rAr—Þs(    &zBufferedWriter.writeNcCsP|j�6| ¡|dur"|j ¡}|j |¡WdƒS1sB0YdSrP)rãrär<rarcrdr@r@rArcús  zBufferedWriter.truncatecCs2|j�| ¡Wdƒn1s$0YdSrP)rãrär`r@r@rArgszBufferedWriter.flushcCsˆ|jrtdƒ‚|jr„z|j |j¡}Wnty@tdƒ‚Yn0|durXttjddƒ‚|t |jƒksn|dkrvt dƒ‚|jd|…=qdS)Nr³zHself.raw should implement RawIOBase: it should not raise BlockingIOErrorz)write could not complete without blockingrz*write() returned incorrect number of bytes) rir"râr<r—ræÚ RuntimeErrorrçZEAGAINr!r-©rHr~r@r@rAräs þzBufferedWriter._flush_unlockedcCst |¡t|jƒSrP)r®rar!râr`r@r@rAraszBufferedWriter.tellrcCsP|tvrtdƒ‚|j�&| ¡t |||¡WdƒS1sB0YdS)Nrà)rár"rãrär®rZr\r@r@rArZs zBufferedWriter.seekcCsº|j�0|jdus|jr(WdƒdSWdƒn1s<0Yz<| ¡W|j�|j ¡Wdƒq¶1sx0Yn2|j�|j ¡Wdƒn1sª0Y0dSrP)rãr<rirgr4r`r@r@rAr4 s. *ÿzBufferedWriter.close)N)r) rLrMrNr)r²rsr—rcrgrärarZr4r@r@r@rAr0Çs   r0c@s‚eZdZefdd„Zddd„Zdd„Zdd „Zdd d „Zd d d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zedd„ƒZdS)!ÚBufferedRWPaircCs<| ¡stdƒ‚| ¡s tdƒ‚t||ƒ|_t||ƒ|_dS)Nz#"reader" argument must be readable.z#"writer" argument must be writable.)rqr-rsr1Úreaderr0Úwriter)rHrírîrÒr@r@rAr²@s  zBufferedRWPair.__init__r cCs|dur d}|j |¡S©Nr )rír‡rr@r@rAr‡NszBufferedRWPair.readcCs |j |¡SrP)rír�rŸr@r@rAr�SszBufferedRWPair.readintocCs |j |¡SrP)rîr—rŸr@r@rAr—VszBufferedRWPair.writercCs |j |¡SrP)rírzrr@r@rArzYszBufferedRWPair.peekcCs |j |¡SrP)rír£rr@r@rAr£\szBufferedRWPair.read1cCs |j |¡SrP)rír§rŸr@r@rAr§_szBufferedRWPair.readinto1cCs |j ¡SrP)rírqr`r@r@rArqbszBufferedRWPair.readablecCs |j ¡SrP)rîrsr`r@r@rArseszBufferedRWPair.writablecCs |j ¡SrP)rîrgr`r@r@rArghszBufferedRWPair.flushcCs*z|j ¡W|j ¡n |j ¡0dSrP)rîr4rír`r@r@rAr4ks zBufferedRWPair.closecCs|j ¡p|j ¡SrP)rír(rîr`r@r@rAr(qszBufferedRWPair.isattycCs|jjSrP)rîrir`r@r@rAritszBufferedRWPair.closedN)r )r)r )rLrMrNr)r²r‡r�r—rzr£r§rqrsrgr4r(r™rir@r@r@rArì0s    rìc@sjeZdZefdd„Zddd„Zdd„Zdd d „Zdd d „Zd d„Z ddd„Z ddd„Z dd„Z dd„Z dS)r/cCs(| ¡t |||¡t |||¡dSrP)rpr1r²r0rÖr@r@rAr²‚szBufferedRandom.__init__rcCs®|tvrtdƒ‚| ¡|jr^|j�*|j |jt|jƒd¡Wdƒn1sT0Y|j ||¡}|j�|  ¡Wdƒn1s�0Y|dkrªt dƒ‚|S)Nràr rz seek() returned invalid position) rár"rgr×rÕr<rZrØr!rÓr-r\r@r@rArZ‡s8&zBufferedRandom.seekcCs|jrt |¡St |¡SdSrP)râr0rar1r`r@r@rAra˜s zBufferedRandom.tellNcCs|dur| ¡}t ||¡SrP)rar0rcrdr@r@rArcžszBufferedRandom.truncatecCs |dur d}| ¡t ||¡Srï)rgr1r‡rr@r@rAr‡¤szBufferedRandom.readcCs| ¡t ||¡SrP)rgr1r�rŸr@r@rAr�ªszBufferedRandom.readintocCs| ¡t ||¡SrP)rgr1rzrr@r@rArz®szBufferedRandom.peekr cCs| ¡t ||¡SrP)rgr1r£rr@r@rAr£²szBufferedRandom.read1cCs| ¡t ||¡SrP)rgr1r§rŸr@r@rAr§¶szBufferedRandom.readinto1cCsZ|jrN|j�2|j |jt|jƒd¡| ¡Wdƒn1sD0Yt ||¡Sr‚) r×rÕr<rZrØr!rÓr0r—rŸr@r@rAr—ºs &zBufferedRandom.write)r)N)N)r)r )rLrMrNr)r²rZrarcr‡r�rzr£r§r—r@r@r@rAr/ys      r/csìeZdZdZdZdZdZdZdZdZ d0dd„Z dd „Z d d „Z d d „Z dd„Zd1dd„Zd2dd„Zdd„Zdd„Zdd„Zefdd„Zdd„Zd3dd„Z‡fd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zed,d-„ƒZed.d/„ƒZ ‡Z!S)4r'r FNTr c CsH|jdkr0z|jrt |j¡Wd|_nd|_0t|tƒrBtdƒ‚t|tƒrb|}|dkrftdƒ‚nd}t|t ƒs~td|fƒ‚t |ƒt dƒksœtd|fƒ‚t dd„|Dƒƒd ksÀ|  d ¡d krÈtd ƒ‚d |vrêd |_ d |_tjtjB}nTd|vrþd |_d}n@d|v�rd |_tjtjB}n"d|v�r>d |_d |_tjtjB}d |v�rTd |_d |_|j�rp|j�rp|tjO}n|j�r„|tjO}n |tjO}|ttddƒO}ttddƒ�p¶ttddƒ}||O}d}�zT|dk�r@|�sàtdƒ‚|du�rút ||d¡}n0|||ƒ}t|tƒ�stdƒ‚|dk�r*tdƒ‚|}|�s@t |d¡||_t |¡} z(t | j¡�rvt t!j"t #t!j"¡|ƒ‚Wnt$�yŒYn0t| ddƒ|_%|j%d k�r®t&|_%t'�rÀt'|tj(ƒ||_)|j�rzt *|dt+¡Wn6t�y} z| j!t!j,k�r‚WYd} ~ n d} ~ 00Wn"|du�r6t |¡‚Yn0||_dS)Nrr z$integer argument expected, got floatznegative file descriptorzinvalid mode: %szxrwab+css|]}|dvVqdS)ZrwaxNr@)Ú.0Úcr@r@rAÚ îrÆz"FileIO.__init__..r rzKMust have exactly one of create/read/write/append mode and at most one plusrTr rrÚO_BINARYZ O_NOINHERITÚ O_CLOEXECz'Cannot use closefd=False with file namei¶zexpected integer from openerzNegative file descriptorFr,)-Ú_fdÚ_closefdrr4rÚfloatrrr"rr ÚsumÚcountÚ_createdÚ _writableÚO_EXCLÚO_CREATÚ _readableÚO_TRUNCÚ _appendingÚO_APPENDÚO_RDWRÚO_RDONLYÚO_WRONLYÚgetattrrBr-Úset_inheritabler*ÚstatÚS_ISDIRÚst_modeÚIsADirectoryErrorrçZEISDIRrèr.Ú_blksizer)Ú_setmoderórXÚlseekrZESPIPE) rHr5r3r:rÚfdÚflagsZnoinherit_flagZowned_fdZfdfstatrér@r@rAr²Ìs¬     $        ÿ        ÿ    zFileIO.__init__cCsB|jdkr>|jr>|js>ddl}|jd|ftd|d�| ¡dS)Nrzunclosed file %rr )Ú stacklevelÚsource)rõrörir#r$ÚResourceWarningr4)rHr#r@r@rArkEs ÿzFileIO.__del__cCstd|jj›d�ƒ‚dSr´rµr`r@r@rAr¶LszFileIO.__getstate__cCsnd|jj|jjf}|jr"d|Sz |j}Wn(tyTd||j|j|jfYS0d|||j|jfSdS)Nz%s.%sz <%s [closed]>z<%s fd=%d mode=%r closefd=%r>z<%s name=%r mode=%r closefd=%r>) rWrMrNrirXr.rõr3rö)rHÚ class_namerXr@r@rAr¹Osÿ  ÿ ÿzFileIO.__repr__cCs|jstdƒ‚dS)NzFile not open for reading)rþrUr`r@r@rArr]szFileIO._checkReadablecCs|jstdƒ‚dS)NzFile not open for writing)rûrUrnr@r@rArtaszFileIO._checkWritablecCsR| ¡| ¡|dus |dkr(| ¡Szt |j|¡WStyLYdS0dSr‘)rfrrrœrr‡rõrærr@r@rAr‡es z FileIO.readcCsÚ| ¡| ¡t}z6t |jdt¡}t |j¡j}||krH||d}Wnt y\Yn0t ƒ}t |ƒ|kr†t |ƒ}|t |tƒ7}|t |ƒ}zt  |j|¡}WntyÀ|rºYqÒYdS0|sÈqÒ||7}qdt|ƒSr_)rfrrr)rr rõrr*Úst_sizer-r†r!rÌr‡rær)rHÚbufsizer]Úendr=r~rÛr@r@rArœus2     zFileIO.readallcCs4t|ƒ d¡}| t|ƒ¡}t|ƒ}||d|…<|Sr¨)rªr«r‡r!)rHrÚmržr~r@r@rAr�˜s  zFileIO.readintocCs:| ¡| ¡zt |j|¡WSty4YdS0dSrP)rfrtrr—rõrærŸr@r@rAr— s  z FileIO.writecCs*t|tƒrtdƒ‚| ¡t |j||¡S)Nzan integer is required)rr÷rrfrr rõr\r@r@rArZ®s z FileIO.seekcCs| ¡t |jdt¡Sr‘)rfrr rõrr`r@r@rAra¾sz FileIO.tellcCs2| ¡| ¡|dur | ¡}t |j|¡|SrP)rfrtrarÚ ftruncaterõrr@r@rArcÅs zFileIO.truncatecs8|js4z |jrt |j¡Wtƒ ¡n tƒ ¡0dSrP)rirörr4rõrÃr`rÄr@rAr4Òs z FileIO.closecCsD| ¡|jdur>z | ¡Wnty6d|_Yn0d|_|jS)NFT)rfÚ _seekablerar-r`r@r@rArmßs    zFileIO.seekablecCs| ¡|jSrP)rfrþr`r@r@rArqëszFileIO.readablecCs| ¡|jSrP)rfrûr`r@r@rArsðszFileIO.writablecCs| ¡|jSrP)rfrõr`r@r@rAr+õsz FileIO.filenocCs| ¡t |j¡SrP)rfrr(rõr`r@r@rAr(úsz FileIO.isattycCs|jSrP)rör`r@r@rAr:ÿszFileIO.closefdcCsJ|jr|jrdSdSn0|jr,|jr&dSdSn|jrB|jrd?„Z#dRd@dA„Z$dBdC„Z%dSdDdE„Z&dTdFdG„Z'dHdI„Z(dUdJdK„Z)e dLdM„ƒZ*dS)Vr2iNFc Cs$| |¡|durrzt | ¡¡}Wnttfy:Yn0|durrz ddl}Wntyfd}Yn 0| d¡}t |t ƒsˆt d|ƒ‚t   |¡js¤d}t||ƒ‚|dur²d}n$t |t ƒsÈt d|ƒ‚trÖt  |¡||_d|_d|_d|_|j ¡|_|_t|jd ƒ|_| |||||¡dS) NrÚasciiFrzG%r is not a text encoding; use codecs.open() to handle arbitrary codecsrrrr£)Ú_check_newlinerÚdevice_encodingr+r.rUÚlocaleÚ ImportErrorZgetpreferredencodingrrr"r ÚlookupÚ_is_text_encodingÚ LookupErrorÚ _CHECK_ERRORSÚ lookup_errorr»Ú_decoded_charsÚ_decoded_chars_usedÚ _snapshotr?rmrÚ_tellingr„Ú _has_read1Ú _configure) rHr?r7r8r9r>Ú write_throughr<ror@r@rAr²Ós@             ÿzTextIOWrapper.__init__cCs>|dur$t|tƒs$tdt|ƒfƒ‚|dvr:td|fƒ‚dS)Nzillegal newline type: %r)Nrr*r(r)zillegal newline value: %r)rrrÚtyper")rHr9r@r@rAr:ýszTextIOWrapper._check_newlinecCs¢||_||_d|_d|_d|_| |_|du|_||_|dk|_|pHt j |_ ||_ ||_ |jrž| ¡rž|j ¡}|dkržz| ¡ d¡WntyœYn0dS)Nçrr)Ú _encodingÚ_errorsÚ_encoderÚ_decoderÚ _b2cratioÚ_readuniversalÚ_readtranslateÚ_readnlÚ_writetranslaterÚlinesepÚ_writenlÚ_line_bufferingÚ_write_throughrrsr?raÚ _get_encoderr5r@)rHr7r8r9r>rIÚpositionr@r@rArHs&     zTextIOWrapper._configurecCs|d |jj|jj¡}z |j}Wnty0Yn0|d |¡7}z |j}Wnty\Yn0|d |¡7}|d |j¡S)Nz<{}.{}z name={0!r}z mode={0!r}z encoding={0!r}>)r·rWrMrNrXr.r3r7)rHr=rXr3r@r@rAr¹'s ÿ    zTextIOWrapper.__repr__cCs|jSrP)rLr`r@r@rAr78szTextIOWrapper.encodingcCs|jSrP)rMr`r@r@rAr8<szTextIOWrapper.errorscCs|jSrP)rWr`r@r@rAr>@szTextIOWrapper.line_bufferingcCs|jSrP)rXr`r@r@rArIDszTextIOWrapper.write_throughcCs|jSrP)r»r`r@r@rAr?HszTextIOWrapper.buffer)r7r8r9r>rIcCsÖ|jdur*|dus"|dus"|tur*tdƒ‚|durH|durB|j}q^d}nt|tƒs^td|ƒ‚|durn|j}nt|tƒs„td|ƒ‚|tur’|j}|  |¡|durª|j }|dur¸|j }|  ¡|  |||||¡dS)NzPIt is not possible to set the encoding or newline of stream after the first readrrr)rOÚEllipsisrUrMrrrrLrSr:r>rIrgrH)rHr7r8r9r>rIr@r@rAÚ reconfigureLs> ÿÿþÿ      ÿzTextIOWrapper.reconfigurecCs|jrtdƒ‚|jSru)rir"rr`r@r@rArmuszTextIOWrapper.seekablecCs |j ¡SrP)r?rqr`r@r@rArqzszTextIOWrapper.readablecCs |j ¡SrP)r?rsr`r@r@rArs}szTextIOWrapper.writablecCs|j ¡|j|_dSrP)r?rgrrFr`r@r@rArg€s zTextIOWrapper.flushcCs8|jdur4|js4z| ¡W|j ¡n |j ¡0dSrP)r?rirgr4r`r@r@rAr4„s zTextIOWrapper.closecCs|jjSrP)r?rir`r@r@rAri‹szTextIOWrapper.closedcCs|jjSrP)r?rXr`r@r@rArX�szTextIOWrapper.namecCs |j ¡SrP)r?r+r`r@r@rAr+“szTextIOWrapper.filenocCs |j ¡SrP)r?r(r`r@r@rAr(–szTextIOWrapper.isattycCsÈ|jrtdƒ‚t|tƒs(td|jjƒ‚t|ƒ}|js<|j oBd|v}|rf|jrf|j dkrf|  d|j ¡}|j pr|  ¡}| |¡}|j |¡|j r¤|sœd|vr¤| ¡| d¡d|_|jrÄ|j ¡|S)NrÇzcan't write %s to text streamr*r(r)rir"rrrrWrLr!rTrWrVr/rNrYÚencoder?r—rgÚ_set_decoded_charsrErOr7)rHrZlengthZhaslfÚencoderrr@r@rAr—™s( ÿ    zTextIOWrapper.writecCst |j¡}||jƒ|_|jSrP)r ÚgetincrementalencoderrLrMrN)rHZ make_encoderr@r@rArY°s  zTextIOWrapper._get_encodercCs2t |j¡}||jƒ}|jr(t||jƒ}||_|SrP)r ÚgetincrementaldecoderrLrMrQrrRrO)rHZ make_decoderr#r@r@rAÚ _get_decoderµs    zTextIOWrapper._get_decodercCs||_d|_dSr‘)rCrD)rHÚcharsr@r@rAr^Àsz TextIOWrapper._set_decoded_charscCsF|j}|dur|j|d…}n|j|||…}|jt|ƒ7_|SrP)rDrCr!)rHr~Úoffsetrcr@r@rAÚ_get_decoded_charsÅs z TextIOWrapper._get_decoded_charscCs$|j|krtdƒ‚|j|8_dS)Nz"rewind decoded_chars out of bounds)rDÚAssertionErrorrër@r@rAÚ_rewind_decoded_charsÏs z#TextIOWrapper._rewind_decoded_charscCs¢|jdurtdƒ‚|jr&|j ¡\}}|jr<|j |j¡}n|j |j¡}| }|j  ||¡}|  |¡|r‚t |ƒt |j ƒ|_ nd|_ |jrœ|||f|_| S)Nz no decoderrK)rOr"rFr2rGr?r£Ú _CHUNK_SIZEr‡r+r^r!rCrPrE)rHÚ dec_bufferÚ dec_flagsÚ input_chunkÚeofZ decoded_charsr@r@rAÚ _read_chunkÕs  zTextIOWrapper._read_chunkrcCs(||d>B|d>B|d>Bt|ƒd>BS)Né@é€éÀé)r4)rHrZrjÚ bytes_to_feedÚneed_eofÚ chars_to_skipr@r@rAÚ _pack_cookieÿs ÿ ÿzTextIOWrapper._pack_cookiecCsJt|dƒ\}}t|dƒ\}}t|dƒ\}}t|dƒ\}}|||t|ƒ|fS)Nl)Údivmodr4)rHZbigintÚrestrZrjrrrsrtr@r@rAÚ_unpack_cookie s zTextIOWrapper._unpack_cookiec CsP|jstdƒ‚|jstdƒ‚| ¡|j ¡}|j}|dusF|jdurX|j rTt dƒ‚|S|j\}}|t |ƒ8}|j }|dkrˆ|  ||¡S| ¡}�z¬t|j|ƒ}d}|dk�r"| d|f¡t | |d|…¡ƒ} | |k�r| ¡\} } | sþ| }|| 8}�q4|t | ƒ8}d}q¦||8}|d}q¦d}| d|f¡||} |} |dk�rb|  | | ¡W| |¡Sd}d}d}t|t |ƒƒD]x}|d7}|t | |||d…¡ƒ7}| ¡\}}|�sâ||k�râ| |7} ||8}|dd} }}||k�r|�q"�q||t |jdd d �ƒ7}d }||k�r"td ƒ‚|  | | |||¡W| |¡S| |¡0dS) Nú!underlying stream is not seekablez(telling position disabled by next() callzpending decoded textrr rÆr FTr&z'can't reconstruct logical file position)rrUrFr-rgr?rarOrErCrfr!rDrur2rrPr5r+Úrange)rHrZr#rjZ next_inputrtZ saved_stateZ skip_bytesZ skip_backr~rÚdÚ start_posZ start_flagsZ bytes_fedrsZ chars_decodedÚirir@r@rAra s€           à     ÿ ýzTextIOWrapper.tellcCs$| ¡|dur| ¡}|j |¡SrP)rgrar?rcrdr@r@rArcs szTextIOWrapper.truncatecCs*|jdurtdƒ‚| ¡|j}d|_|S)Nzbuffer is already detached)r?r"rgr»)rHr?r@r@rAr­y s  zTextIOWrapper.detachc sćfdd„}ˆjrtdƒ‚ˆjs(tdƒ‚|tkrN|dkr@tdƒ‚d}ˆ ¡}nZ|tkr¨|dkrftdƒ‚ˆ ¡ˆj  d|¡}ˆ  d¡dˆ_ ˆj rœˆj   ¡||ƒ|S|dkr¾td |fƒ‚|dkrÔtd |fƒ‚ˆ ¡ˆ |¡\}}}}} ˆj  |¡ˆ  d¡dˆ_ |dk�r*ˆj �r*ˆj   ¡n@ˆj �s>|�s>| �rjˆj �pLˆ ¡ˆ_ ˆj  d |f¡|d fˆ_ | �r¸ˆj |¡} ˆ  ˆj  | |¡¡|| fˆ_ tˆjƒ| k�r²td ƒ‚| ˆ_||ƒ|S) NcsFzˆjpˆ ¡}Wnty$Yn0|dkr:| d¡n| ¡dSr‘)rNrYr@r5r7)rZr_r`r@rAÚ_reset_encoder‚ s  z*TextIOWrapper.seek.._reset_encoderrÎryrz#can't do nonzero cur-relative seeksz#can't do nonzero end-relative seeksrzunsupported whence (%r)rËrÆz#can't restore logical file position)rir"rrUrrarrgr?rZr^rErOr7rxrbr5r‡r+r!rCr-rD) rHZcookier^r~rZr|rjrrrsrtrkr@r`rArZ� s`    ÿ       ÿ zTextIOWrapper.seekcCsÖ| ¡|durd}n2z |j}Wn ty@t|›d�ƒ‚Yn0|ƒ}|jpT| ¡}|dkrŽ| ¡|j|j  ¡dd�}|  d¡d|_ |Sd}| |¡}t |ƒ|krÎ|sÎ|  ¡ }|| |t |ƒ¡7}qœ|SdS)Nr rƒrTr&rF)rrr…r.rrOrbrer+r?r‡r^rEr!rm)rHr€r‰r#r=rlr@r@rAr‡Ì s,  ÿ   zTextIOWrapper.readcCs(d|_| ¡}|s$d|_|j|_t‚|Srl)rFr‹rErr�rŽr@r@rAr�è szTextIOWrapper.__next__c Cs|jrtdƒ‚|durd}n2z |j}Wn tyFt|›d�ƒ‚Yn0|ƒ}| ¡}d}|jsh| ¡d}}|jr¢|  d|¡}|dkr˜|d}�qÒnt |ƒ}nÊ|j �rD|  d|¡}|  d|¡}|dkrê|dkrÜt |ƒ}n |d}�qÒnX|dk�r|d}�qÒn@||k�r|d}�qÒn(||dk�r6|d}�qÒn |d}�qÒn(|  |j ¡}|dk�rl|t |j ƒ}�qÒ|dk�rŒt |ƒ|k�rŒ|}�qÒ|  ¡�r¦|j�rŒ�q¦�qŒ|j�r¼|| ¡7}qp| d ¡d|_|Sqp|dk�rê||k�rê|}| t |ƒ|¡|d|…S) NrÅr rƒrr*r r(r r)rir"r…r.rrerOrbrRr|r!rQrSrmrCr^rErg) rHr€r‰r�Ústartr]ÚendposZnlposZcrposr@r@rAr‹ñ st             zTextIOWrapper.readlinecCs|jr|jjSdSrP)rOrr`r@r@rArN szTextIOWrapper.newlines)NNNFF)NNNFF)N)rrFr)N)r)N)N)+rLrMrNrhr»r²r:rHr¹r™r7r8r>rIr?r[r\rmrqrsrgr4rirXr+r(r—rYrbr^rergrmrurxrarcr­rZr‡r�r‹rr@r@r@rAr2²slÿ *ÿ $     þ )    *ÿ c  K  ]r2csNeZdZd‡fdd„ Zdd„Zdd„Zed d „ƒZed d „ƒZd d„Z ‡Z S)ÚStringIOrr*csftt|ƒjtƒdd|d�|dur(d|_|durbt|tƒsNtd t |ƒj ¡ƒ‚|  |¡|  d¡dS)Nzutf-8Ú surrogatepass)r7r8r9Fz*initial_value must be str or None, not {0}r) rÃr�r²rºrTrrrr·rJrLr—rZ)rHZ initial_valuer9rÄr@rAr²Z sý ÿ zStringIO.__init__c CsX| ¡|jp| ¡}| ¡}| ¡z |j|j ¡dd�W| |¡S| |¡0dS)NTr&) rgrOrbr2r7r+r?rÀr5)rHr#Z old_stater@r@rArÀj s þzStringIO.getvaluecCs t |¡SrP)Úobjectr¹r`r@r@rAr¹t szStringIO.__repr__cCsdSrPr@r`r@r@rAr8y szStringIO.errorscCsdSrPr@r`r@r@rAr7} szStringIO.encodingcCs| d¡dSr¬r[r`r@r@rAr­� szStringIO.detach)rr*) rLrMrNr²rÀr¹r™r8r7r­rÐr@r@rÄrAr�S s   r�)r r NNNTN)8rÚabcr rçrÚsysÚ_threadrrÔÚplatformZmsvcrtrr Úiorrrrrár„Úaddr Ú SEEK_DATAr)rærÚdev_moderjrArBrEÚ open_coder.rFrOrUr-r"ÚABCMetarVÚregisterr›Ú_ior'r¡r®rºr1r0rìr/rr!rr2r�r@r@r@rAÚs‚     ÿ [    # =   g kCiIJY@ U&