3 \nO�@s�ddlZddlZddlZddlZddlZddlZddlZddlZddddgZd\Z Z Z Z Z d\ZZdd d�Zdd�ZGdd�d�ZGdd�dej�ZGdd�dej�Zddd�Zdd�Zdd�Zedkr�e�dS)�N�GzipFile�open�compress� decompress������rb� cCs�d|kr d|krPtd|f��n0|dk r0td��|dk r@td��|dk rPtd��|jdd�}t|tttjf�r|t|||�}n,t|d�s�t|d �r�td|||�}nt d ��d|kr�t j ||||�S|SdS) N�t�bzInvalid mode: %rz0Argument 'encoding' not supported in binary modez.Argument 'errors' not supported in binary modez/Argument 'newline' not supported in binary mode��read�writez1filename must be a str or bytes object, or a file) � ValueError�replace� isinstance�str�bytes�os�PathLiker�hasattr� TypeError�io� TextIOWrapper)�filename�mode� compresslevel�encoding�errors�newlineZgz_modeZ binary_file�r#�/usr/lib64/python3.6/gzip.pyrs$ cCs|jtjd|��dS)Nz|jdkr||_n|jt|�8_dSt|j�|_d|_dS)Nr)r/r+r,r-)r0r2r#r#r$r2]s   z_PaddedFile.prependcCsd|_d|_|jj|�S)N)r/r+r.�seek)r0Zoffr#r#r$r5fsz_PaddedFile.seekcCsdS)NTr#)r0r#r#r$�seekableksz_PaddedFile.seekableN)r*)r*)�__name__� __module__� __qualname__r3rr2r5r6r#r#r#r$r)Es   r)c@s�eZdZdZd,dd�Zedd��Zedd��Zd d �Zd d �Z d d�Z dd�Z d.dd�Z d0dd�Z dd�Zedd��Zdd�Zejfdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zejfd(d)�Zd2d*d+�ZdS)3rNr cCs2|r"d|ksd|kr"tdj|���|r6d|kr6|d7}|dkrTtj||pJd�}|_|dkr|t|dd�}t|ttf�s�d}n t j |�}|dkr�t|dd�}|j d �r�t |_ t|�}tj|�|_||_nN|j d��rt|_ |j|�tj|tjtj tjd �|_||_ntdj|���||_|j tk�r.|j�dS)Nr �UzInvalid mode: {!r}rr �namerr�r�w�a�xr)r=r>r?)r�format�builtinsr� myfileobj�getattrrrrr�fspath� startswith�READr� _GzipReaderr�BufferedReaderr+r;�WRITE� _init_write�zlibZ compressobjZDEFLATED� MAX_WBITSZ DEF_MEM_LEVELr� _write_mtime�fileobj�_write_gzip_header)r0rrrrN�mtime�rawr#r#r$r3{s>#         zGzipFile.__init__cCsBddl}|jdtd�|jtkr<|jdd�dkr<|jdS|jS)Nrzuse the name attributer�z.gz�����)�warnings�warn�DeprecationWarningrrIr;)r0rTr#r#r$r�s  zGzipFile.filenamecCs |jjjS)N)r+rQ� _last_mtime)r0r#r#r$rP�szGzipFile.mtimecCs.t|j�}d|dd�dtt|��dS)Nz�����)�reprrN�hex�id)r0�sr#r#r$�__repr__�s zGzipFile.__repr__cCs.||_tjd�|_d|_g|_d|_d|_dS)Nr*r)r;rK�crc32�crcr4Zwritebuf�bufsize�offset)r0rr#r#r$rJ�s  zGzipFile._init_writec Cs�|jjd�|jjd�ytjdd�}|o|ddk}|r.|dd�}|s8dg}�x�|D]�}|r�|dkrltddtjjd�}tjj}q�|d d�d kr�td t|��q@t|d�}t j|dd�d �}n>|dkr�tjj}tdd tjjd�}nt j|d�}t|d d �}x |j d �}|�s�P|j |�q�W|tjjk �r"|j �|tjjk r@|j �q@WdS)Nrrz-d�-rr )rrrNrRz.gzzfilename doesn't end in .gz:r�irSrS) �sys�argvr�stdin�buffer�stdout�printr[rrArrr)�argsr�argr1�gr�r#r#r$�_tests<       r��__main__)rrrr r )rr)r r NNN)r )r%r�rorrKrArZ _compression�__all__ZFTEXTr�r�rmr�rFrIrr(r)Z BaseStreamrZDecompressReaderrGrrr�r7r#r#r#r$�s*   +)  &