
    dafG.                         	 g d Z dZddlmZ ddlZddlZddlZddlm	Z	m
Z
 dZdZdZ G d d	ej                        Z	 	 dd
ZddZd Zy))BZ2FileBZ2CompressorBZ2Decompressoropencompress
decompressz%Nadeem Vawda <nadeem.vawda@gmail.com>    )r   N)r   r         c                       e Zd Z	 ddddZd Zed        Zd Zd Zd Z	d	 Z
dd
ZddZddZd ZddZddZd Zd Zej(                  fdZd Zy)r   	   compresslevelc                   	 d | _         d| _        t        | _        d|cxk  rdk  st	        d       t	        d      |dv r	d}t
        }ne|dv rd}t        }t        |      | _        nH|d	v rd
}t        }t        |      | _        n+|dv rd}t        }t        |      | _        nt	        d|      t        |t        t        t        j                  f      r t        ||      | _         d| _        || _        n2t        |d      st        |d      r|| _         || _        nt!        d      | j                  t
        k(  rEt#        j$                  | j                   t&        t(              }t+        j,                  |      | _        y d| _        y )NFr	   r   z%compresslevel must be between 1 and 9) rrbr   )wwbr   )xxbr   )aabr   Invalid mode: Treadwritez6filename must be a str, bytes, file or PathLike object)trailing_errorr   )_fp_closefp_MODE_CLOSED_mode
ValueError
_MODE_READ_MODE_WRITEr   _compressor
isinstancestrbytesosPathLike_builtin_openhasattr	TypeError_compressionDecompressReaderr   OSErrorioBufferedReader_buffer_pos)selffilenamemoder   	mode_coderaws         /root/Python-3.12.4/Lib/bz2.py__init__zBZ2File.__init__%   sc   	" !
]'a'DEE (DEE?"D"I[ D#I,];D[ D#I,];D[ D#I,];D49::heR[[ 9:$Xt4DH DM"DJXv&'(G*DDH"DJTUU::#//9C,,S1DLDI    c                    	 | j                   t        k(  ry 	 | j                   t        k(  r| j                  j	                          nM| j                   t
        k(  r:| j                  j                  | j                  j                                d | _        	 | j                  r| j                  j	                          d | _        d| _
        t        | _         d | _        y # d | _        d| _
        t        | _         d | _        w xY w# 	 | j                  r| j                  j	                          d | _        d| _
        t        | _         d | _        w # d | _        d| _
        t        | _         d | _        w xY wxY w)NF)r    r   r"   r2   closer#   r   r   r$   flushr   r4   s    r9   r=   zBZ2File.closea   s   	
 ::%	$zzZ'""${*t//5578#' $==HHNN$ %)
#   %)
#$==HHNN$ %)
#   %)
#s0   A;C? &C "C<?E-&E'!E-"E**E-c                 *    	 | j                   t        k(  S N)r    r   r?   s    r9   closedzBZ2File.closedy   s    *zz\))r;   c                 X    	 | j                          | j                  j                         S rA   )_check_not_closedr   filenor?   s    r9   rE   zBZ2File.fileno~   s"    A xx  r;   c                 \    	 | j                         xr | j                  j                         S rA   )readabler2   seekabler?   s    r9   rH   zBZ2File.seekable   s#    7}}:4<<#8#8#::r;   c                 J    	 | j                          | j                  t        k(  S rA   )rD   r    r"   r?   s    r9   rG   zBZ2File.readable   s     = zzZ''r;   c                 J    	 | j                          | j                  t        k(  S rA   )rD   r    r#   r?   s    r9   writablezBZ2File.writable   s     = zz[((r;   c                 Z    	 | j                          | j                  j                  |      S rA   )_check_can_readr2   peek)r4   ns     r9   rN   zBZ2File.peek   s,    	
 	 ||  ##r;   c                 Z    	 | j                          | j                  j                  |      S rA   )rM   r2   r   r4   sizes     r9   r   zBZ2File.read   s*    	
 	||  &&r;   c                     	 | j                          |dk  rt        j                  }| j                  j	                  |      S )Nr   )rM   r0   DEFAULT_BUFFER_SIZEr2   read1rQ   s     r9   rU   zBZ2File.read1   s<    	 	!8))D||!!$''r;   c                 Z    	 | j                          | j                  j                  |      S rA   )rM   r2   readinto)r4   bs     r9   rW   zBZ2File.readinto   s*    	 	||$$Q''r;   c                     	 t        |t              s't        |d      st        d      |j	                         }| j                          | j                  j                  |      S N	__index__zInteger argument expected)r%   intr+   r,   r[   rM   r2   readlinerQ   s     r9   r]   zBZ2File.readline   sV    	 $$4- ;<<>>#D||$$T**r;   c                     	 t        |t              s't        |d      st        d      |j	                         }| j                          | j                  j                  |      S rZ   )r%   r\   r+   r,   r[   rM   r2   	readlinesrQ   s     r9   r_   zBZ2File.readlines   sV    	 $$4- ;<<>>#D||%%d++r;   c                 0   	 | j                          t        |t        t        f      rt	        |      }nt        |      }|j                  }| j                  j                  |      }| j                  j                  |       | xj                  |z  c_        |S rA   )_check_can_writer%   r'   	bytearraylen
memoryviewnbytesr$   r   r   r   r3   )r4   datalength
compresseds       r9   r   zBZ2File.write   s{    	 	dUI./YF d#D[[F%%..t4
z"		V	r;   c                 D    	 t         j                  j                  | |      S rA   )r-   
BaseStream
writelines)r4   seqs     r9   rk   zBZ2File.writelines   s"    	 &&11$<<r;   c                 \    	 | j                          | j                  j                  ||      S rA   )_check_can_seekr2   seek)r4   offsetwhences      r9   ro   zBZ2File.seek   s,    	 	||  00r;   c                     	 | j                          | j                  t        k(  r| j                  j	                         S | j
                  S rA   )rD   r    r"   r2   tellr3   r?   s    r9   rs   zBZ2File.tell  s:    / ::#<<$$&&yyr;   N)r   )r   ))__name__
__module____qualname__r:   r=   propertyrB   rE   rH   rG   rK   rN   r   rU   rW   r]   r_   r   rk   r0   SEEK_SETro   rs    r;   r9   r   r      s|    :A :x$0 * *!
;(
)

$'
((+,*= #%++ 1$r;   r   c                 $   	 d|v rd|v r5t        d|      |t        d      |t        d      |t        d      |j                  dd      }t        | ||      }d|v r-t        j                  |      }t        j
                  ||||      S |S )	NtrX   r   z0Argument 'encoding' not supported in binary modez.Argument 'errors' not supported in binary modez/Argument 'newline' not supported in binary moder   r   )r!   replacer   r0   text_encodingTextIOWrapper)r5   r6   r   encodingerrorsnewlinebz_modebinary_files           r9   r   r     s    & d{$;49::OPPMNNNOOll3#G(G=IK
d{##H-XvwGGr;   c                 ^    	 t        |      }|j                  |       |j                         z   S rA   )r   r   r>   )rf   r   comps      r9   r   r   9  s-     'D==--r;   c                     	 g }| rSt               }	 |j                  |       }|j                  |       |j                  st        d      |j                  } | rSdj                  |      S # t        $ r |rY  w xY w)NzACompressed data ended before the end-of-stream marker was reachedr;   )r   r   r/   appendeofr!   unused_datajoin)rf   resultsdecompress       r9   r   r   D  s     G
 "	##D)C 	szz @ A A!!  88G  			s   A* *A97A9)r   r   NNN)r   )__all__
__author__builtinsr   r*   r0   r(   r-   _bz2r   r   r   r"   r#   rj   r   r   r   rz   r;   r9   <module>r      se   - 5
 * 	 	  / 
rl%% rj -.-1'T.r;   