File: //lib64/python3.9/__pycache__/lzma.cpython-39.opt-2.pyc
a
    �DOg�3  �                	   @   s�   g d �Z ddlZddlZddlZddlT ddlmZmZ ddlZdZdZ	dZ
G dd� dej�Zddd
dddddd�dd
�Z
ed
ddfdd�Zeddfdd�ZdS ))$�
CHECK_NONE�CHECK_CRC32�CHECK_CRC64�CHECK_SHA256�CHECK_ID_MAX�
CHECK_UNKNOWN�FILTER_LZMA1�FILTER_LZMA2�FILTER_DELTA�
FILTER_X86�FILTER_IA64�
FILTER_ARM�FILTER_ARMTHUMB�FILTER_POWERPC�FILTER_SPARC�FORMAT_AUTO�	FORMAT_XZ�FORMAT_ALONE�
FORMAT_RAW�MF_HC3�MF_HC4�MF_BT2�MF_BT3�MF_BT4�	MODE_FAST�MODE_NORMAL�PRESET_DEFAULT�PRESET_EXTREME�LZMACompressor�LZMADecompressor�LZMAFile�	LZMAError�open�compress�
decompress�is_check_supported�    N)�*)�_encode_filter_properties�_decode_filter_properties�   �   c                   @   s�   e Zd Zd!ddddd�dd�Zdd� Zed	d
� �Zdd� Zd
d� Zdd� Z	dd� Z
d"dd�Zd#dd�Zd$dd�Z
d%dd�Zdd� Zejfdd�Zdd � ZdS )&r   N�r�����format�check�preset�filtersc          	      C   s&  d | _ d| _t| _|dv rL|dkr*td��|d ur:td��|d u rFt}t}n@|dv r~|d u r`t}t}t	||||d�| _
d| _ntd	�|���t
|tttjf�r�d
|vr�|d
7 }t�||�| _ d| _|| _n*t|d�s�t|d
�r�|| _ || _ntd��| jtk�r"tj| j tt||d�}t�|�| _d S )NF)r+   �rbr,   zACannot specify an integrity check when opening a file for readingzICannot specify a preset compression level when opening a file for reading)�w�wb�a�ab�x�xbr-   r%   zInvalid mode: {!r}�bT�read�writez6filename must be a str, bytes, file or PathLike object)�trailing_errorr.   r1   )�_fp�_closefp�_MODE_CLOSED�_mode�
ValueErrorr   �
_MODE_READr   �_MODE_WRITEr   �_compressor�_posr.   �
isinstance�str�bytes�os�PathLike�builtinsr!   �hasattr�	TypeError�_compression�DecompressReaderr   r    �io�BufferedReader�_buffer)	�self�filename�moder.   r/   r0   r1   �	mode_code�raw� rX   �/usr/lib64/python3.9/lzma.py�__init__1   sF    ,�
�zLZMAFile.__init__c                 C   s�   | j tkrd S z~| j tkr,| j��  d | _n"| j tkrN| j�| j�	� � d | _W z&| j
rb| j��  W d | _d| _
t| _ q�d | _d| _
t| _ 0 n>z&| j
r�| j��  W d | _d| _
t| _ nd | _d| _
t| _ 0 0 d S )NF)r@   r?   rB   rR   �closerC   r=   r;   rD   �flushr>