a DOg0@sgdZdZddlmZddlZddlZddlZddlm Z ddl m Z m Z dZ dZdZGd d d ejZdd dZdddZddZdS))BZ2File BZ2CompressorBZ2Decompressoropencompress decompressz%Nadeem Vawda )rN)RLock)rrc@seZdZd)ddddZddZedd Zd d Zd d ZddZ ddZ d*ddZ d+ddZ d,ddZ ddZd-ddZd.ddZd d!Zd"d#Zejfd$d%Zd&d'Zd(S)/rr  compresslevelcCs8t|_d|_d|_t|_d|kr.dks8ntd|dvrJd}t}nb|dvrfd}t}t ||_ nF|d vrd }t}t ||_ n*|d vrd }t}t ||_ ntd |ft |t t tjfrt|||_d|_||_n*t|dst|dr||_||_ntd|jtkr.tj|jttd}t||_nd|_dS)NFr r z%compresslevel must be between 1 and 9)r rbr)wwbr)xxbr)aabrInvalid mode: %rTreadwritez6filename must be a str, bytes, file or PathLike object)trailing_errorr)r_lock_fp_closefp _MODE_CLOSED_mode ValueError _MODE_READ _MODE_WRITEr _compressor isinstancestrbytesosPathLike _builtin_openhasattr TypeError _compressionDecompressReaderrOSErrorioBufferedReader_buffer_pos)selffilenamemoder mode_coderawr8/usr/lib64/python3.9/bz2.py__init__&sH     zBZ2File.__init__cCs|j|jtkr"WddSz|jtkr:|jn"|jtkr\|j|j d|_ Wz,|j rp|jWd|_d|_ t|_d|_qd|_d|_ t|_d|_0nJz,|j r|jWd|_d|_ t|_d|_nd|_d|_ t|_d|_00Wdn1s0YdS)NF) rrrr!r1closer"rrr#flushrr3r8r8r9r;es>       z BZ2File.closecCs |jtkSN)rrr=r8r8r9closed~szBZ2File.closedcCs||jSr>)_check_not_closedrfilenor=r8r8r9rAszBZ2File.filenocCs|o|jSr>)readabler1seekabler=r8r8r9rCszBZ2File.seekablecCs||jtkSr>)r@rr!r=r8r8r9rBszBZ2File.readablecCs||jtkSr>)r@rr"r=r8r8r9writableszBZ2File.writablercCs>|j$||j|WdS1s00YdSr>)r_check_can_readr1peek)r3nr8r8r9rFsz BZ2File.peekcCs>|j$||j|WdS1s00YdSr>)rrEr1rr3sizer8r8r9rsz BZ2File.readcCsL|j2||dkrtj}|j|WdS1s>0YdS)Nr)rrEr/DEFAULT_BUFFER_SIZEr1read1rIr8r8r9rLs z BZ2File.read1cCs>|j$||j|WdS1s00YdSr>)rrEr1readinto)r3br8r8r9rMszBZ2File.readintocCsbt|ts$t|dstd|}|j$||j|WdS1sT0YdSN __index__zInteger argument expected) r$intr*r+rPrrEr1readlinerIr8r8r9rRs  zBZ2File.readlinecCsbt|ts$t|dstd|}|j$||j|WdS1sT0YdSrO) r$rQr*r+rPrrEr1 readlinesrIr8r8r9rSs  zBZ2File.readlinescCs|jh|t|ttfr(t|}nt|}|j}|j |}|j ||j |7_ |WdS1st0YdSr>) r_check_can_writer$r& bytearraylen memoryviewnbytesr#rrrr2)r3datalength compressedr8r8r9rs   z BZ2File.writecCs8|jtj||WdS1s*0YdSr>)rr, BaseStream writelines)r3seqr8r8r9r]szBZ2File.writelinescCs@|j&||j||WdS1s20YdSr>)r_check_can_seekr1seek)r3offsetwhencer8r8r9r`sz BZ2File.seekcCsZ|j@||jtkr2|jWdS|jWdS1sL0YdSr>)rr@rr!r1tellr2r=r8r8r9rcs  z BZ2File.tellN)r )r)rH)rH)rH)rH)__name__ __module__ __qualname__r:r;propertyr?rArCrBrDrFrrLrMrRrSrr]r/SEEK_SETr`rcr8r8r8r9rs$ ?     rrr cCsd|vr d|vrPtd|fn0|dur0td|dur@td|durPtd|dd}t|||d}d|vrt||||S|SdS) NtrNrz0Argument 'encoding' not supported in binary modez.Argument 'errors' not supported in binary modez/Argument 'newline' not supported in binary moderr )r replacerr/ TextIOWrapper)r4r5rencodingerrorsnewlinebz_mode binary_filer8r8r9rs rcCst|}|||Sr>)rrr<)rYrcompr8r8r9rGsrcCsfg}|r\t}z||}Wnty:|r4Yq\nYn0|||jsTtd|j}qd|S)NzACompressed data ended before the end-of-stream marker was reached)rrr.appendeofr unused_datajoin)rYresultsdecompresr8r8r9rRs  r)rr NNN)r )__all__ __author__builtinsrr)r/r'r, threadingr_bz2rrrr!r"r\rrrr8r8r8r9s$   )