
    whC                     n   d Z ddlmZmZ ddlZddlZddlZddlZddlZej                  dk\  rddl
mZ nddlmZ ej                  j                  dd      j!                         Zedk(  r? ej$                         d	v rd
dl dZnd ej$                         dv rd
dl dZnI	 d
dl dZn@edk(  r		 d
dl dZn2edk(  rd
dl dZn%edk(  rd
dl dZnedk(  rd
dl dZn edez        dZdZd
ZdZ	 	 	 	 	 	 	 ddZddededefdZddededefdZ y# e$ r
 d
dl dZY 8w xY w# e$ r
 d
dl dZY Jw xY w)z=Python interface to the Zstandard (zstd) compression library.    )absolute_importunicode_literalsN)      )Buffer)
ByteStringPYTHON_ZSTANDARD_IMPORT_POLICYdefault)CPython   )*cext)PyPycfficffi_fallbackrustzKunknown module import policy: %s; use default, cffi_fallback, cext, or cffiz0.25.0   c                    |j                  dd      }|dv r|xs
 t               }d}	d}
nG|dv r)|xs
 t               }d}	|}
|
j                  d      s |
dz   }
nt	        d	j                  |            t        t        d
      rt        t        t        j                  f}nt        t        f}t        | |      rt        j                  | |
      }d}n1t        | d      st        | d      r| }t        |      }nt        d      |	dk(  r|j!                  ||      }n$|	dk(  r|j#                  ||      }nt%        d      d|vrt'        j(                  ||||      S |S )a  Create a file object with zstd (de)compression.

    The object returned from this function will be a
    :py:class:`ZstdDecompressionReader` if opened for reading in binary mode,
    a :py:class:`ZstdCompressionWriter` if opened for writing in binary mode,
    or an ``io.TextIOWrapper`` if opened for reading or writing in text mode.

    :param filename:
       ``bytes``, ``str``, or ``os.PathLike`` defining a file to open or a
       file object (with a ``read()`` or ``write()`` method).
    :param mode:
       ``str`` File open mode. Accepts any of the open modes recognized by
       ``open()``.
    :param cctx:
       ``ZstdCompressor`` to use for compression. If not specified and file
       is opened for writing, the default ``ZstdCompressor`` will be used.
    :param dctx:
       ``ZstdDecompressor`` to use for decompression. If not specified and file
       is opened for reading, the default ``ZstdDecompressor`` will be used.
    :param encoding:
        ``str`` that defines text encoding to use when file is opened in text
        mode.
    :param errors:
       ``str`` defining text encoding error handling mode.
    :param newline:
       ``str`` defining newline to use in text mode.
    :param closefd:
       ``bool`` whether to close the file when the returned object is closed.
        Only used if a file object is passed. If a filename is specified, the
        opened file is always closed when the returned object is closed.
    t )rrbr   r   )wwbaabxxbr   bzInvalid mode: {!r}PathLikeTreadwritez6filename must be a str, bytes, file or PathLike object)closefdz2logic error in zstandard.open() handling open mode)encodingerrorsnewline)replaceZstdDecompressorZstdCompressorendswith
ValueErrorformathasattrosstrbytesr    
isinstancebuiltinsopenbool	TypeErrorstream_readerstream_writerRuntimeErrorioTextIOWrapper)filenamemodecctxdctxr$   r%   r&   r#   normalized_mode	open_moderaw_open_modetypesinner_fhfhs                 P/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/zstandard/__init__.pyr3   r3   a   sj   R ll3+O+%)')		=	='~'	'%%c*)C/M-44T:;;r:eR[[)e(E"===9	6	"gh&@w-D
 	
 C':	c	':OPP
/!&'
 	
 	    datalevelreturnc                 <    t        |      }|j                  |       S )a  Compress source data using the zstd compression format.

    This performs one-shot compression using basic/default compression
    settings.

    This method is provided for convenience and is equivalent to calling
    ``ZstdCompressor(level=level).compress(data)``.

    If you find yourself calling this function in a tight loop,
    performance will be greater if you construct a single ``ZstdCompressor``
    and repeatedly call ``compress()`` on it.
    )rH   )r)   compress)rG   rH   r=   s      rE   rK   rK      s     &D==rF   max_output_sizec                 <    t               }|j                  | |      S )a  Decompress a zstd frame into its original data.

    This performs one-shot decompression using basic/default compression
    settings.

    This method is provided for convenience and is equivalent to calling
    ``ZstdDecompressor().decompress(data, max_output_size=max_output_size)``.

    If you find yourself calling this function in a tight loop, performance
    will be greater if you construct a single ``ZstdDecompressor`` and
    repeatedly call ``decompress()`` on it.
    )rL   )r(   
decompress)rG   rL   r>   s      rE   rN   rN      s     D??4?AArF   )r   NNNNNN)r   )r   )!__doc__
__future__r   r   r2   r9   r.   platformsysversion_infocollections.abcr   typingr   environgetstrip_module_policypython_implementation	backend_cbackendbackend_cffiImportErrorbackend_rust__version___MODE_CLOSED
_MODE_READ_MODE_WRITEr3   intr0   rK   rN    rF   rE   <module>rf      s   D 8  	 	  
w&+ $i%'  Y%x%%'<7 	'	'	'	)Y	6#	$G
 & 
 vGvGvG
	(	)  

 
		Tn6 # e $BV Bc B% Ba  	'G	  #s$   !D /D% D"!D"%D43D4