o ?Ogq@sr ddlZddlZddlZddlZddlZddlZddlmZej dvr+ddl m Z ndZ ddl Z ddl mZmZmZmZhdZeedrReejeejdZeZeed p^ejjZeZd6d d Ze  d7ddZddZ ze j!Z!Wn e"ye Z!YnwddZ#ze j$Z$Wne"yGddde%e&Z$YnwGdddej'dZ(e j()e(Gddde(Z*e j*)e*ddl+m,Z,e*)e,Gddde(Z-e j-)e-Gd d!d!e-Z.Gd"d#d#e-Z/Gd$d%d%e.Z0Gd&d'd'e.Z1Gd(d)d)e-Z2Gd*d+d+e1e0Z3Gd,d-d-e*Z,Gd.d/d/e(Z4e j4)e4Gd0d1d1ej5Z6Gd2d3d3e4Z7Gd4d5d5e7Z8dS)8N) allocate_lock>Zwin32cygwin)setmode)__all__SEEK_SETSEEK_CURSEEK_END>r SEEK_HOLEi Zgettotalrefcountr cCs4 |durd}tjjrddl}|dt|d|S)Nlocalerz"'encoding' argument not specified.r )sysflagswarn_default_encodingwarningswarnEncodingWarning)encoding stacklevelrr,/opt/alt/python310/lib64/python3.10/_pyio.py text_encoding+s rrTc Csr t|ts t|}t|tttfstd|t|ts$td|t|ts/td||dur>t|ts>td||durMt|tsMtd|t|}|tds_t|t|kret d|d|v} d|v} d |v} d |v} d |v} d |v}d |v}d|vr| s| s| s| rt dddl }| dt dd} |r|rt d| | | | dkrt d| s| s| s| st d|r|durt d|r|durt d|r|durt d|r|dkrddl }| dt dt|| rdpd| rdpd| rd pd| r d p d| rd pd||d}|}zd}|dks-|dkr1|r1d}d}|dkrVt}z t|j}Wn ttfyNYnw|dkrV|}|dkr_t d |dkrn|rj|WSt d!| rwt||}n| s| s| rt||}n| rt||}nt d"||}|r|WSt|}t|||||}|}||_|WS|)#Nzinvalid file: %rzinvalid mode: %rzinvalid buffering: %rinvalid encoding: %rinvalid errors: %rzaxrwb+tUxrwa+tbUz4mode U cannot be combined with 'x', 'w', 'a', or '+'rz'U' mode is deprecatedr Tz'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 argumentzaline buffering (buffering=1) isn't supported in binary mode, the default buffer size will be used)openerFrzinvalid buffering sizezcan't have unbuffered text I/Ozunknown mode: %r) isinstanceintosfspathstrbytes TypeErrorsetlen ValueErrorrrDeprecationWarningRuntimeWarningFileIOisattyDEFAULT_BUFFER_SIZEfstatfileno st_blksizeOSErrorAttributeErrorBufferedRandomBufferedWriterBufferedReaderr TextIOWrappermodeclose)filer= bufferingrerrorsnewlineclosefdr$ZmodesZcreatingZreadingZwritingZ appendingZupdatingtextZbinaryrrawresultline_bufferingZbsbufferrrropenHs x                       rIcCs" ddl}|dtdt|dS)Nrz(_pyio.open_code() may not be using hooksr rb)rrr0rI)pathrrrr_open_code_with_warning$s   rLcCs0|dkrddl}|jdtddtatSt|)N OpenWrapperrz+OpenWrapper is deprecated, use open insteadr )r)rrr/rIrMr8)namerrrr __getattr__:srOc@s eZdZdS)UnsupportedOperationN)__name__ __module__ __qualname__rrrrrPOsrPc@seZdZ ddZd5ddZddZd6d d Zd d Zd ZddZ ddZ ddZ d6ddZ ddZ d6ddZddZd6ddZeddZd6d d!Zd"d#Zd$d%Zd&d'Zd(d)Zd7d+d,Zd-d.Zd/d0Zd6d1d2Zd3d4ZdS)8IOBasecCs td|jj|f)Nz%s.%s() not supported)rP __class__rQ)selfrNrrr _unsupportedus zIOBase._unsupportedrcC |ddS)NseekrWrVposwhencerrrrY|s z IOBase.seekcCs |ddSNrr )rYrVrrrtell z IOBase.tellNcCrXNtruncaterZrVr\rrrrczIOBase.truncatecC |dSN _checkClosedr_rrrflushs z IOBase.flushFcCs* |jsz |Wd|_dSd|_wdS)NT)_IOBase__closedrjr_rrrr>s  z IOBase.closecCsV z|j}Wn tyYdSw|rdStr|dSz|WdSYdSrg)closedr8_IOBASE_EMITS_UNRAISABLEr>)rVrlrrr__del__s   zIOBase.__del__cC dSNFrr_rrrseekableszIOBase.seekablecC$ |st|dur d|dS)NzFile or stream is not seekable.)rqrPrVmsgrrr_checkSeekablezIOBase._checkSeekablecCrorprr_rrrreadablezIOBase.readablecCrr)NzFile or stream is not readable.)rwrPrsrrr_checkReadablervzIOBase._checkReadablecCrorprr_rrrwritablerxzIOBase.writablecCrr)NzFile or stream is not writable.)rzrPrsrrr_checkWritablervzIOBase._checkWritablecC |jSrg)rkr_rrrrlsz IOBase.closedcCs" |jrt|dur d|dSNI/O operation on closed file.rlr.rsrrrriszIOBase._checkClosedcCs ||Srgrhr_rrr __enter__szIOBase.__enter__cGrfrg)r>)rVargsrrr__exit__ razIOBase.__exit__cCrX)Nr5rZr_rrrr5z IOBase.filenocCs |dSrprhr_rrrr2sz IOBase.isattyrcs tdrfdd}ndd}durdnzj}Wnty,tdw|t}dks=t|krb|}|sJ t|S||7}|drX t|Sdks=t|ks=t|S) Npeekcs>d}|s dS|ddpt|}dkrt|}|S)Nr  r)rfindr-min)Z readaheadnrVsizerr nreadahead0s  z#IOBase.readline..nreadaheadcSsdSNr rrrrrr9sr is not an integerrr) hasattr __index__r8r+ bytearrayr-readendswithr*)rVrr size_indexresr!rrrreadline$s0      zIOBase.readlinecCs ||Srgrhr_rrr__iter__NszIOBase.__iter__cCs|}|st|Srg)r StopIterationrVlinerrr__next__RszIOBase.__next__cCsT |dus |dkr t|Sd}g}|D]}|||t|7}||kr'|Sq|SNr)listappendr-)rVZhintrlinesrrrr readlinesXs  zIOBase.readlinescCs" ||D]}||qdSrg)riwrite)rVrrrrr writelinesjs  zIOBase.writelinesrrgr)rQrRrSrWrYr`rcrjrkr>rnrqrurwryrzr{propertyrlrirrr5r2rrrrrrrrrrTSs8           *  rT) metaclassc@s0eZdZ d ddZddZddZdd Zd S) RawIOBasercCsR |durd}|dkr|St|}||}|dur dS||d=t|S)Nrr)readallrrreadintor*)rVrr!rrrrrs   zRawIOBase.readcCs4 t} |t}|s n||7}q|rt|S|Srg)rrr3r*)rVrdatarrrrs zRawIOBase.readallcCrX)NrrZrVr!rrrrrezRawIOBase.readintocCrXNrrZrrrrrrezRawIOBase.writeNr)rQrRrSrrrrrrrrrws   r)r1c@sJeZdZ dddZdddZddZdd Zd d Zd d ZddZ dS)BufferedIOBasercCrXNrrZrrrrrszBufferedIOBase.readcCrX)Nread1rZrrrrrszBufferedIOBase.read1cC |j|ddS)NFr _readintorrrrrs zBufferedIOBase.readintocCr)NTrrrrrr readinto1zBufferedIOBase.readinto1cCsVt|ts t|}|d}|r|t|}n|t|}t|}||d|<|SNB)r% memoryviewcastrr-r)rVr!rrrrrrrs   zBufferedIOBase._readintocCrXrrZrrrrr rzBufferedIOBase.writecCrXNdetachrZr_rrrrzBufferedIOBase.detachNr) rQrRrSrrrrrrrrrrrrs    rc@seZdZ ddZd#ddZddZd$d d Zd d Zd dZddZ ddZ e ddZ e ddZ e ddZe ddZddZddZdd Zd!d"ZdS)%_BufferedIOMixincCs ||_dSrg_rawrVrErrr__init__, z_BufferedIOMixin.__init__rcCs"|j||}|dkrtd|S)Nrz#seek() returned an invalid position)rErYr7)rVr\r]Z new_positionrrrrY1sz_BufferedIOMixin.seekcCs|j}|dkr td|S)Nrz#tell() returned an invalid position)rEr`r7rdrrrr`7s z_BufferedIOMixin.tellNcCs4||||dur|}|j|Srg)rir{rjr`rErcrdrrrrc=s  z_BufferedIOMixin.truncatecCs|jrtd|jdS)Nflush on closed file)rlr.rErjr_rrrrjNsz_BufferedIOMixin.flushcC>|jdur|jsz |W|jdS|jwdSdSrg)rErlrjr>r_rrrr>Ss  z_BufferedIOMixin.closecC*|jdur td||j}d|_|S)Nzraw stream already detached)rEr.rjrrrrrr[ z_BufferedIOMixin.detachcC |jSrg)rErqr_rrrrqerz_BufferedIOMixin.seekablecC|jSrgrr_rrrrEhz_BufferedIOMixin.rawcC|jjSrg)rErlr_rrrrllz_BufferedIOMixin.closedcCrrg)rErNr_rrrrNprz_BufferedIOMixin.namecCrrg)rEr=r_rrrr=trz_BufferedIOMixin.modecCtd|jjdNzcannot pickle z objectr+rUrQr_rrr __getstate__xz_BufferedIOMixin.__getstate__cCsH|jj}|jj}z|j}Wntyd||YSwd|||S)Nz<{}.{}>z<{}.{} name={!r}>)rUrRrSrNr8format)rVmodnameZclsnamerNrrr__repr__{s  z_BufferedIOMixin.__repr__cCrrg)rEr5r_rrrr5rz_BufferedIOMixin.filenocCrrg)rEr2r_rrrr2rz_BufferedIOMixin.isattyrrg)rQrRrSrrYr`rcrjr>rrqrrErlrNr=rrr5r2rrrrr#s,        rcseZdZ dZd ddZddZddZdd Zfd d Zd!d dZ d!ddZ ddZ d"ddZ ddZ d ddZddZddZddZZS)#BytesIONcCs&t}|dur ||7}||_d|_dSr)r_buffer_pos)rVZ initial_bytesbufrrrrs  zBytesIO.__init__cCs|jrtd|jS)Nz__getstate__ on closed file)rlr.__dict__copyr_rrrrs zBytesIO.__getstate__cC |jrtdt|jS)Nzgetvalue on closed file)rlr.r*rr_rrrgetvalue zBytesIO.getvaluecCr)Nzgetbuffer on closed file)rlr.rrr_rrr getbufferrzBytesIO.getbuffercs"|jdur |jtdSrg)rclearsuperr>r_rUrrr>s  z BytesIO.closercCs|jrtd|durd}nz|j}Wnty!t|dw|}|dkr.t|j}t|j|jkr8dStt|j|j|}|j|j|}||_t |S)Nread from closed filerrr) rlr.rr8r+r-rrrr*)rVrrZnewposr!rrrrs$   z BytesIO.readcCs ||Srg)rrrrrrs z BytesIO.read1cCs|jrtdt|trtdt| }|j}Wdn1s"wY|dkr-dS|j}|t|j krGd|t|j }|j |7_ ||j |||<|j|7_|S)Nwrite to closed file can't write str to binary streamr) rlr.r%r)r+rnbytesrr-r)rVr!Zviewrr\Zpaddingrrrrs   z BytesIO.writercCs|jrtdz|j}Wntyt|dw|}|dkr3|dkr-td|f||_|jS|dkrCtd|j||_|jS|dkrUtdt|j||_|jStd)Nzseek on closed filerrnegative seek position %rr r zunsupported whence value) rlr.rr8r+rmaxr-r)rVr\r] pos_indexrrrrYs(  z BytesIO.seekcC|jrtd|jS)Ntell on closed file)rlr.rr_rrrr`z BytesIO.tellcCsr|jrtd|dur|j}n"z|j}Wnty"t|dw|}|dkr1td|f|j|d=|S)Nztruncate on closed filerrznegative truncate position %r)rlr.rrr8r+r)rVr\rrrrrcs   zBytesIO.truncatecC|jrtddSNr~Trr_rrrrw zBytesIO.readablecCrrrr_rrrrzrzBytesIO.writablecCrrrr_rrrrqrzBytesIO.seekablergrr)rQrRrSrrrrrr>rrrrYr`rcrwrzrq __classcell__rrrrrs"      rc@sveZdZ efddZddZddZddd Zdd d Zdd dZ dddZ dddZ ddZ ddZ dddZdS)r;cCsH |s tdt|||dkrtd||_|t|_dS)Nz "raw" argument must be readable.rinvalid buffer size) rwr7rrr. buffer_size_reset_read_bufLock _read_lockrVrErrrrr(s  zBufferedReader.__init__cCrrg)rErwr_rrrrw5rzBufferedReader.readablecCsd|_d|_dS)Nrr) _read_buf _read_posr_rrrr8s zBufferedReader._reset_read_bufNcCsN |dur |dkr td|j ||WdS1s wYdS)Nrzinvalid number of bytes to read)r.r_read_unlockedrrrrr<s $zBufferedReader.readc Csd}d}|j}|j}|dus|dkr^|t|jdr5|j}|dur-||dp,dS||d|S||dg}d} |j}||vrK|}n |t|7}||q?d |p]|St||} || krw|j|7_||||S||dg}t |j |} | |kr|j| }||vr|}n| t|7} ||| |kst || }d |} | |d|_d|_| r| d|S|S)Nr)rNrrr) rrrrrErrr-rjoinrrr) rVrZ nodata_valZ empty_valuesrr\chunkZchunksZ current_sizeavailZwantedoutrrrrIsR           zBufferedReader._read_unlockedrcCs6 |j ||WdS1swYdSrg)r_peek_unlockedrrrrr}s$zBufferedReader.peekcCsrt||j}t|j|j}||ks|dkr1|j|}|j|}|r1|j|jd||_d|_|j|jdSr)rrr-rrrEr)rVrZwantZhaveZto_readZcurrentrrrrs   zBufferedReader._peek_unlockedrcCsl |dkr|j}|dkrdS|j|d|t|t|j|jWdS1s/wYdS)Nrrr )rrrrrr-rrrrrrrs $zBufferedReader.read1cCs| t|ts t|}|jdkrdS|d}d}|j|t|krtt|j|jt|}|rT|j|j|j|||||<|j|7_||7}|t|krTn@t|||j kro|j ||d}|sjn2||7}n |rs|sy| dsyn+|r~|r~n.|t|ks"Wd|SWd|SWd|SWd|SWd|SWd|S1swY|S)Nrrr ) r%rrrrr-rrrrrErr)rVrrwrittenrrrrrrs^             zBufferedReader._readintocCst|t|j|jSrg)rr`r-rrr_rrrr`szBufferedReader.tellcCsp|tvrtd|j#|dkr|t|j|j8}t|||}||WdS1s1wYdS)Ninvalid whence valuer ) valid_seek_flagsr.rr-rrrrYrr[rrrrYs$zBufferedReader.seekrgrr)rQrRrSr3rrwrrrrrrrr`rYrrrrr;s    4 .r;c@s^eZdZ efddZddZddZddd Zd d Zd d Z ddZ dddZ ddZ dS)r:cCsF|stdt|||dkrtd||_t|_t|_ dS)Nz "raw" argument must be writable.rr) rzr7rrr.rr _write_bufr _write_lockrrrrrs  zBufferedWriter.__init__cCrrg)rErzr_rrrrzrzBufferedWriter.writablec Cst|tr td|ju|jrtdt|j|jkr | t|j}|j |t|j|}t|j|jkrxz| Wn7t yw}z+t|j|jkrmt|j|j}||8}|jd|j|_t |j |j |WYd}~nd}~ww|WdS1swYdS)Nrr)r%r)r+rrlr.r-rr_flush_unlockedextendBlockingIOErrorerrnostrerror)rVr!ZbeforereZoveragerrrrs0     $zBufferedWriter.writeNcCsP|j||dur|j}|j|WdS1s!wYdSrg)rrrEr`rcrdrrrrcs   $zBufferedWriter.truncatecCs4|j |WddS1swYdSrg)rrr_rrrrjs "zBufferedWriter.flushcCs|jrtd|jrDz |j|j}Wn tytdw|dur*ttjdd|t |jks5|dkr9t d|jd|=|js dSdS)NrzHself.raw should implement RawIOBase: it should not raise BlockingIOErrorz)write could not complete without blockingrz*write() returned incorrect number of bytes) rlr.rrErr RuntimeErrorrZEAGAINr-r7rVrrrrrs"  zBufferedWriter._flush_unlockedcCst|t|jSrg)rr`r-rr_rrrr`.rzBufferedWriter.tellrcCsP|tvrtd|j|t|||WdS1s!wYdS)Nr)rr.rrrrYr[rrrrY1s  $zBufferedWriter.seekcCs|j|jdus |jr WddSWdn1swYz |W|j|jWddS1s>wYdS|j |jWdw1sXwYwrg)rrErlrjr>r_rrrr>8s  * zBufferedWriter.closergr) rQrRrSr3rrzrrcrjrr`rYr>rrrrr:s     r:c@seZdZ efddZdddZddZdd Zdd d Zdd dZ ddZ ddZ ddZ ddZ ddZddZeddZdS) BufferedRWPaircCs> |s td|stdt|||_t|||_dS)Nz#"reader" argument must be readable.z#"writer" argument must be writable.)rwr7rzr;readerr:writer)rVr r rrrrrXs zBufferedRWPair.__init__rcCs|durd}|j|SNr)r rrrrrrfs zBufferedRWPair.readcC |j|Srg)r rrrrrrk zBufferedRWPair.readintocCrrg)r rrrrrrnrzBufferedRWPair.writercCrrg)r rrrrrrqrzBufferedRWPair.peekcCrrg)r rrrrrrtrzBufferedRWPair.read1cCrrg)r rrrrrrwrzBufferedRWPair.readinto1cCrrg)r rwr_rrrrwzrzBufferedRWPair.readablecCrrg)r rzr_rrrrz}rzBufferedRWPair.writablecCrrg)r rjr_rrrrjrzBufferedRWPair.flushcCs(z |jW|jdS|jwrg)r r>r r_rrrr>s zBufferedRWPair.closecCs|jp |jSrg)r r2r r_rrrr2rzBufferedRWPair.isattycCrrg)r rlr_rrrrlrzBufferedRWPair.closedNrr)rQrRrSr3rrrrrrrrwrzrjr>r2rrlrrrrr Hs     r c@sleZdZ efddZdddZddZdd d Zdd d Zd dZ dddZ dddZ ddZ ddZ dS)r9cCs(|t|||t|||dSrg)rur;rr:rrrrrszBufferedRandom.__init__rcCs|tvrtd||jr/|j|j|jt|jdWdn1s*wY|j||}|j | Wdn1sHwY|dkrUt d|S)Nrr rz seek() returned invalid position) rr.rjrrrErYrr-rr7r[rrrrYs zBufferedRandom.seekcCs|jrt|St|Srg)rr:r`r;r_rrrr`s  zBufferedRandom.tellNcCs|dur|}t||Srg)r`r:rcrdrrrrcs zBufferedRandom.truncatecCs |durd}|t||Sr)rjr;rrrrrrs zBufferedRandom.readcC|t||Srg)rjr;rrrrrr zBufferedRandom.readintocCrrg)rjr;rrrrrrrzBufferedRandom.peekrcCrrg)rjr;rrrrrrrzBufferedRandom.read1cCrrg)rjr;rrrrrrrzBufferedRandom.readinto1cCsZ|jr'|j|j|jt|jd|Wdn1s"wYt||Sr) rrrErYrr-rr:rrrrrrs   zBufferedRandom.writerrgr)rQrRrSr3rrYr`rcrrrrrrrrrrr9s       r9cseZdZdZdZdZdZdZdZdZ d0ddZ dd Z d d Z d d Z ddZd1ddZd1ddZddZddZddZefddZddZd1ddZfd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zed,d-Zed.d/Z Z!S)2r1rFNTrc Cs0 |jdkrz|jrt|jWd|_nd|_wt|tr"tdt|tr2|}|dkr1tdnd}t|t s@td|ft |t dksOtd|ft dd|Dd ksa| d d kretd d |vrvd |_ d |_tjtjB}n(d|vrd |_d}nd|vrd |_tjtjB}nd|vrd |_d |_tjtjB}d |vrd |_d |_|jr|jr|tjO}n|jr|tjO}n|tjO}|ttddO}ttddpttdd}||O}d}z|dkr|std|durt||d}n|||}t|tstd|dkr td|}|st|d||_t|} zt| jr2t t!j"t#t!j"|Wn t$y=Ynwt| dd|_%|j%d krNt&|_%t'rWt'|tj(||_)|jrz t*|dt+Wnty} z| j!t!j,krxWYd} ~ nd} ~ wwWn|durt|||_dS)Nrrz$integer argument expected, got floatznegative file descriptorzinvalid mode: %szxrwab+css|]}|dvVqdS)ZrwaxNr).0crrr sz"FileIO.__init__..r rzKMust have exactly one of create/read/write/append mode and at most one plusrTrrrO_BINARYZ O_NOINHERIT O_CLOEXECz'Cannot use closefd=False with file nameizexpected integer from openerzNegative file descriptorFr6)-_fd_closefdr'r>r%floatr+r&r.r)r,sumcount_created _writableO_EXCLO_CREAT _readableO_TRUNC _appendingO_APPENDO_RDWRO_RDONLYO_WRONLYgetattrrIr7set_inheritabler4statS_ISDIRst_modeIsADirectoryErrorrZEISDIRrr8_blksizer3_setmoderrNlseekrZESPIPE) rVr?r=rCr$fdrZnoinherit_flagZowned_fdZfdfstatrrrrrs     $                    zFileIO.__init__cCsN|jdkr!|jr#|js%ddl}|jd|ftd|d|dSdSdSdS)Nrzunclosed file %rr )rsource)rrrlrrResourceWarningr>)rVrrrrrn]s  zFileIO.__del__cCrrrr_rrrrdrzFileIO.__getstate__cCsjd|jj|jjf}|jrd|Sz|j}Wnty*d||j|j|jfYSwd|||j|jfS)Nz%s.%sz <%s [closed]>z<%s fd=%d mode=%r closefd=%r>z<%s name=%r mode=%r closefd=%r>) rUrRrSrlrNr8rr=r)rV class_namerNrrrrgs  zFileIO.__repr__cC|jstddS)NzFile not open for reading)r!rPr_rrrryuzFileIO._checkReadablecCr5)NzFile not open for writing)rrPrsrrrr{yr6zFileIO._checkWritablecCsP |||dus|dkr|Szt|j|WSty'YdSwr)riryrr'rrrrrrrr}s z FileIO.readcCs ||t}zt|jdt}t|jj}||kr%||d}Wn t y/Ynwt } t ||krEt |}|t |t7}|t |}z t |j|}Wntye|rbYt|SYdSw|sm t|S||7}q4r^)riryr3r'r0rrr4st_sizer7rr-rrrr*)rVbufsizer\endrFrrrrrrs@     zFileIO.readallcCs6 t|d}|t|}t|}||d|<|Sr)rrrr-)rVr!mrrrrrrs  zFileIO.readintocCs8 ||zt|j|WStyYdSwrg)rir{r'rrrrrrrrs z FileIO.writecCs, t|tr td|t|j||S)Nzan integer is required)r%rr+rir'r0rr[rrrrYs  z FileIO.seekcCs |t|jdtSr)rir'r0rrr_rrrr`sz FileIO.tellcCs4 |||dur|}t|j||Srg)rir{r`r' ftruncaterrrrrrcszFileIO.truncatecsL |js$z|jrt|jWtdSWtdStwdSrg)rlrr'r>rrr_rrrr>sz FileIO.closecCsJ ||jdur"z|Wntyd|_Y|jSwd|_|jS)NFT)ri _seekabler`r7r_rrrrqs   zFileIO.seekablecC ||jSrg)rir!r_rrrrwzFileIO.readablecCr=rg)rirr_rrrrzr>zFileIO.writablecCr=rg)rirr_rrrr5 r>z FileIO.filenocCs |t|jSrg)rir'r2rr_rrrr2s z FileIO.isattycCr|rg)rr_rrrrCszFileIO.closefdcCsB |jr |jr dSdS|jr|jrdSdS|jr|jrdSdSdS)Nzxb+Zxbzab+Zabzrb+rJwb)rr!r#rr_rrrr=sz FileIO.mode)rTNrg)"rQrRrSrrr!rr#r<rrrnrrryr{rrrrrrYr`rcr>rqrwrzr5r2rrCr=rrrrrr1s> y  #      r1c@s^eZdZ dddZddZdddZd d Zd d Zed dZ eddZ eddZ dS) TextIOBasercCrXrrZrrrrr:szTextIOBase.readcCrXrrZ)rVsrrrrDzTextIOBase.writeNcCrXrbrZrdrrrrcHrBzTextIOBase.truncatecCrX)NrrZr_rrrrLrzTextIOBase.readlinecCrXrrZr_rrrrSrzTextIOBase.detachcC dSrgrr_rrrr\szTextIOBase.encodingcCrCrgrr_rrrnewlinesaszTextIOBase.newlinescCrCrgrr_rrrrAkszTextIOBase.errorsrrg) rQrRrSrrrcrrrrrDrArrrrr@2s     r@c@sReZdZ dddZdddZddZd d Zd d Zd ZdZ dZ e ddZ dS)IncrementalNewlineDecoderstrictcCs,tjj||d||_||_d|_d|_dS)N)rArF)codecsIncrementalDecoderr translatedecoderseennl pendingcr)rVrJrIrArrrr|s  z"IncrementalNewlineDecoder.__init__FcCs|jdur|}n|jj||d}|jr|s|rd|}d|_|dr.|s.|dd}d|_|d}|d|}|d|}|j|oH|j|oL|jB|oQ|jBO_|j rh|r`| dd}|rh| dd}|S)Nfinal FrT  ) rJdecoderLrrrK_LF_CR_CRLFrIreplace)rVinputrNoutputZcrlfZcrZlfrrrrRs*     z IncrementalNewlineDecoder.decodecCs@|jdur d}d}n|j\}}|dK}|jr|dO}||fS)Nrrr )rJgetstaterL)rVrflagrrrrYs z"IncrementalNewlineDecoder.getstatecCs<|\}}t|d@|_|jdur|j||d?fdSdSr)boolrLrJsetstate)rVstaterrZrrrr\s  z"IncrementalNewlineDecoder.setstatecCs(d|_d|_|jdur|jdSdS)NrF)rKrLrJresetr_rrrr^s  zIncrementalNewlineDecoder.resetr r cCs d|jS)N)NrQrO)rOrQrP)rQrP)rOrP)rOrQrP)rKr_rrrrDsz"IncrementalNewlineDecoder.newlinesN)rF)F) rQrRrSrrRrYr\r^rSrTrUrrDrrrrrEus   rEc@seZdZ dZdZ  dNddZddZ  dNdd Zd d Ze d d Z e ddZ e ddZ e ddZ e ddZddedddddZddZddZddZdd Zd!d"Ze d#d$Ze d%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2ZdOd3d4Zd5d6Zd7d8Z 9 9dPd:d;Z!dd?Z#dOd@dAZ$dBdCZ%dQdDdEZ&dOdFdGZ'dHdIZ(dOdJdKZ)e dLdMZ*dS)Rr<iNFc Cs0||t|}|dkr$z t|pd}Wn ttfy#Ynw|dkr?zddl}Wn ty9d}Ynw| d}t |t sJt d|t |jsXd}t|||dur_d}nt |t sjt d|trqt |||_d |_d|_d|_|j|_|_t|jd |_||||||dS) Nr rutf-8FrzG%r is not a text encoding; use codecs.open() to handle arbitrary codecsrFrr#r)_check_newlinerr'device_encodingr5r8rPr ImportErrorZgetpreferredencodingr%r)r.rGlookup_is_text_encoding LookupError _CHECK_ERRORS lookup_errorr_decoded_chars_decoded_chars_used _snapshotrHrqr<_tellingr _has_read1 _configure) rVrHrrArBrG write_throughr rtrrrrsF            zTextIOWrapper.__init__cCs>|durt|tstdt|f|dvrtd|fdS)Nzillegal newline type: %r)Nr#rQrOrPzillegal newline value: %r)r%r)r+typer.)rVrBrrrras zTextIOWrapper._check_newlinecCs||_||_d|_d|_d|_| |_|du|_||_|dk|_|p$t j |_ ||_ ||_ |jrQ|rS|j}|dkrUz |dWdStyPYdSwdSdSdS)Nr#r) _encoding_errors_encoder_decoder _b2cratio_readuniversal_readtranslate_readnl_writetranslater'linesep_writenl_line_buffering_write_throughr<rzrHr` _get_encoderr\rf)rVrrArBrGropositionrrrrns,     zTextIOWrapper._configurecCs|d|jj|jj}z|j}Wn tyYnw|d|7}z|j}Wn ty.Ynw|d|7}|d|jS)Nz<{}.{}z name={0!r}z mode={0!r}z encoding={0!r}>)rrUrRrSrNr8r=r)rVrFrNr=rrrrBs     zTextIOWrapper.__repr__cCrrg)rrr_rrrrSrzTextIOWrapper.encodingcCrrg)rsr_rrrrAWrzTextIOWrapper.errorscCrrg)r}r_rrrrG[rzTextIOWrapper.line_bufferingcCrrg)r~r_rrrro_rzTextIOWrapper.write_throughcCrrg)rr_rrrrHcrzTextIOWrapper.buffer)rrArBrGrocCs |jdur|dus|dus|turtd|dur%|dur"|j}nd}n t|ts0td||dur8|j}n t|tsCtd||turJ|j}| ||durV|j }|dur]|j }| | |||||dS)NzPIt is not possible to set the encoding or newline of stream after the first readrFrr)ruEllipsisrPrsr%r)r+rrryrarGrorjrn)rVrrArBrGrorrr reconfiguregs8       zTextIOWrapper.reconfigurecCrr})rlr.r<r_rrrrqrzTextIOWrapper.seekablecCrrg)rHrwr_rrrrwrzTextIOWrapper.readablecCrrg)rHrzr_rrrrzrzTextIOWrapper.writablecCs|j|j|_dSrg)rHrjr<rlr_rrrrjs  zTextIOWrapper.flushcCrrg)rHrlrjr>r_rrrr>s  zTextIOWrapper.closecCrrg)rHrlr_rrrrlrzTextIOWrapper.closedcCrrg)rHrNr_rrrrNrzTextIOWrapper.namecCrrg)rHr5r_rrrr5rzTextIOWrapper.filenocCrrg)rHr2r_rrrr2rzTextIOWrapper.isattycCs |jrtdt|tstd|jjt|}|js|j o"d|v}|r4|jr4|j dkr4| d|j }|j p:| }||}|j||j rS|sOd|vrS||dd|_|jrc|j|S)Nrzcan't write %s to text streamrQrOr#)rlr.r%r)r+rUrQr-rzr}r|rVrtrencoderHrrj_set_decoded_charsrkrur^)rVrAZlengthZhaslfencoderr!rrrrs*     zTextIOWrapper.writecCst|j}||j|_|jSrg)rGgetincrementalencoderrrrsrt)rVZ make_encoderrrrrs  zTextIOWrapper._get_encodercCs2t|j}||j}|jrt||j}||_|Srg)rGgetincrementaldecoderrrrsrwrErxru)rVZ make_decoderrJrrr _get_decoders   zTextIOWrapper._get_decodercCs ||_d|_dSr)rirj)rVcharsrrrrs z TextIOWrapper._set_decoded_charscCsH |j}|dur|j|d}n |j|||}|jt|7_|Srg)rjrir-)rVroffsetrrrr_get_decoded_charssz TextIOWrapper._get_decoded_charscCs& |j|kr td|j|8_dS)Nz"rewind decoded_chars out of bounds)rjAssertionErrorr rrr_rewind_decoded_charss z#TextIOWrapper._rewind_decoded_charscCs |jdur td|jr|j\}}|jr|j|j}n|j|j}| }|j ||}| ||rBt |t |j |_ nd|_ |jrO|||f|_| S)Nz no decoderrq)rur.rlrYrmrHr _CHUNK_SIZErrRrr-rirvrk)rV dec_buffer dec_flags input_chunkeofZ decoded_charsrrr _read_chunks"  zTextIOWrapper._read_chunkrcCs(||d>B|d>B|d>Bt|d>BS)N@)r[)rVrr bytes_to_feedneed_eof chars_to_skiprrr _pack_cookie s  zTextIOWrapper._pack_cookiecCsJt|d\}}t|d\}}t|d\}}t|d\}}|||t||fS)Nl)divmodr[)rVZbigintrestrrrrrrrr_unpack_cookie$ s zTextIOWrapper._unpack_cookiec Cs>|jstd|jstd||j}|j}|dus#|jdur,|j r*t d|S|j\}}|t |8}|j }|dkrD| ||S|}zt|j|}d}|dkr|d|ft ||d|} | |kr|\} } | s{| }|| 8}n|t | 8}d}n||8}|d}|dksVd}|d|f||} |} |dkr| | | W||Sd}d}d}t|t |D]7}|d7}|t ||||d7}|\}}|s||kr| |7} ||8}|dd} }}||krnq|t |jdd d 7}d }||kr td | | | |||W||S||w) N!underlying stream is not seekablez(telling position disabled by next() callzpending decoded textrr rr FTrMz'can't reconstruct logical file position)r<rPrlr7rjrHr`rurkrirr-rjrrYr&rvr\rRrange)rVrrJrZ next_inputrZ saved_stateZ skip_bytesZ skip_backrr!d start_posZ start_flagsZ bytes_fedrZ chars_decodedirrrrr`+ s~            zTextIOWrapper.tellcCs$||dur |}|j|Srg)rjr`rHrcrdrrrrc s zTextIOWrapper.truncatecCr)Nzbuffer is already detached)rHr.rjr)rVrHrrrr rzTextIOWrapper.detachc sfdd}jr tdjstd|tkr'|dkr tdd}}n-|tkrT|dkr3tdj d|} dd_ j rNj |||S|dkr_td |f|dkrjtd |f|\}}}}} j | dd_ |dkrj rj nj s|s| rj p_ j d |f|d f_ | rԈj|} j | ||| f_ tj| krtd | _|||S) NcsL z jp}Wn tyYdSw|dkr |ddS|dSr)rtrrfr\r^)rrr_rr_reset_encoder s  z*TextIOWrapper.seek.._reset_encoderrrrz#can't do nonzero cur-relative seeksz#can't do nonzero end-relative seeksr#zunsupported whence (%r)rrz#can't restore logical file position)rlr.r<rPrr`rrjrHrYrrkrur^rrr\rrRr-rir7rj) rVZcookier]rrrrrrrrrr_rrY s`            zTextIOWrapper.seekcCs||dur d}nz|j}Wntyt|dw|}|jp(|}|dkrE||j|j dd}| dd|_ |Sd}||}t ||krl|sl| }|||t |7}t ||krl|rT|S)NrrrTrMr#F)ryrr8r+rurrrRrHrrrkr-r)rVrrrJrFrrrrr s0     zTextIOWrapper.readcCs(d|_|}|sd|_|j|_t|Srp)rlrrkr<rrrrrr szTextIOWrapper.__next__c Cs|jrtd|durd}nz|j}Wnty!t|dw|}|}d}|js2|d}} |jrN| d|}|dkrI|d}nt |}nU|j r| d|}| d|}|dkro|dkrjt |}n9|d}nb|dkrx|d}nY||kr|d}nP||dkr|d }nE|d}n@| |j }|dkr|t |j }n.|dkrt ||kr|}n!| r|jrn| s|jr||7}n |d d|_|Sq7|dkr||kr|}|t |||d|S) NrrrrTrQr rOr r#)rlr.rr8r+rrurrxrr-rwryrrirrkr) rVrrrstartr\endposZnlposZcrposrrrr s|          @ zTextIOWrapper.readlinecCs|jr|jjSdSrg)rurDr_rrrrDi szTextIOWrapper.newlines)NNNFFrg)rrFrr)+rQrRrSrrrrarnrrrrArGrorHrrrqrwrzrjr>rlrNr5r2rrrrrrrrrr`rcrrYrrrrDrrrrr<sp - $      )    *   c  K ]r<csPeZdZ dfdd ZddZddZed d Zed d Zd dZ Z S)StringIOr#rQcsjtt|jtdd|d|durd|_|dur3t|ts'tdt |j | || ddSdS)Nr` surrogatepass)rrArBFz*initial_value must be str or None, not {0}r) rrrrrzr%r)r+rrprQrrY)rVZ initial_valuerBrrrru s   zStringIO.__init__c CsT||jp |}|}|z|j|jddW||S||w)NTrM) rjrurrYr^rRrHrr\)rVrJZ old_staterrrr szStringIO.getvaluecCs t|Srg)objectrr_rrrr s zStringIO.__repr__cCdSrgrr_rrrrA zStringIO.errorscCrrgrr_rrrr rzStringIO.encodingcCs|ddSrrZr_rrrr szStringIO.detach)r#rQ) rQrRrSrrrrrArrrrrrrrn s   r)r )rrNNNTN)9r'abcrGrr*r _threadrrplatformZmsvcrtrr/iorrrrrraddr SEEK_DATAr3rrdev_modermrgr staticmethodrIrL open_coder8rOrPr7r.ABCMetarTregisterr_ior1rrrr;r:r r9r@rHrEr<rrrrrs       \     # =   gkCiIJY @U)