
    &g                    .   S SK Jr  S SKrS SKJrJrJrJr  S SKJ	r	  S SK
Jr  1 Skr\	R                  \	R                  1r\R!                  \5        SS jrSS jrSS	 jrSS
 jrSS jr " S S5      r " S S5      r " S S5      r " S S5      rSS jrg)    )annotationsN)AnyIterableOptionalUnion)HelloCompat)_SENSITIVE_COMMANDS>   zlibzstdsnappyc                 .     SS K n g! [         a     gf = fNr   TF)r   ImportError)r   s    `C:\Suresh\moveshuttle\MDcreated\moveengine\venv\Lib\site-packages\pymongo/compression_support.py_have_snappyr      s         
c                 .     SS K n g! [         a     gf = fr   )r
   r   )r
   s    r   
_have_zlibr   $   s     r   c                 .     SS K n g! [         a     gf = fr   )	zstandardr   )r   s    r   
_have_zstdr   -   s     r   c                V    UR                  S5      nUS S   H  nU[        ;  a+  UR	                  U5        [
        R                  " SU 3SS9  M8  US:X  a7  [        5       (       d(  UR	                  U5        [
        R                  " SSS9  Mu  US:X  a7  [        5       (       d(  UR	                  U5        [
        R                  " SSS9  M  US	:X  d  M  [        5       (       a  M  UR	                  U5        [
        R                  " S
SS9  M     U$ ! [         a    [        U5      n GNf = f)N,zUnsupported compressor:    )
stacklevelr   zuWire protocol compression with snappy is not available. You must install the python-snappy module for snappy support.r
   zWWire protocol compression with zlib is not available. The zlib module is not available.r   zwWire protocol compression with zstandard is not available. You must install the zstandard module for zstandard support.)
splitAttributeErrorlist_SUPPORTED_COMPRESSORSremovewarningswarnr   r   r   )dummyvaluecompressors
compressors       r   validate_compressorsr'   6   s
   "kk#&
 "!n
33z*MM4ZLAaP8#LNNz*MMP
 6!*,,z*MM4
 6!*,,z*MMO) %2 ;  "5k"s   D D('D(c                     [        U5      nUS:  d  US:  a  [        SX4-  5      eU$ ! [         a    [        U  SU< 35      S ef = f)Nz must be an integer, not 	   z$%s must be between -1 and 9, not %d.)int	Exception	TypeError
ValueError)optionr$   levels      r   validate_zlib_compression_levelr1   Z   sd    QE
 rzUQY?6/QRRL	  Q6(";E9EFDPQs	   * Ac                  0    \ rS rSrSS jr    SS jrSrg)CompressionSettingsd   c                    Xl         X l        g Nr%   zlib_compression_level)selfr%   r8   s      r   __init__CompressionSettings.__init__e   s    &&<#    c                    U(       aA  US   nUS:X  a
  [        5       $ US:X  a  [        U R                  5      $ US:X  a
  [        5       $ g g )Nr   r   r
   r   )SnappyContextZlibContextr8   ZstdContext)r9   r%   chosens      r   get_compression_context+CompressionSettings.get_compression_contexti   sO      ^F!$&6!"4#>#>??6!"}$r<   r7   N)r%   	list[str]r8   r+   )r%   zOptional[list[str]]returnz4Union[SnappyContext, ZlibContext, ZstdContext, None])__name__
__module____qualname____firstlineno__r:   rB   __static_attributes__ r<   r   r3   r3   d   s    =.	=r<   r3   c                  ,    \ rS rSrSr\SS j5       rSrg)r>   x      c                ,    SS K nUR                  U 5      $ Nr   )r   compress)datar   s     r   rQ   SnappyContext.compress{   s    t$$r<   rK   NrR   bytesrE   rU   rF   rG   rH   rI   compressor_idstaticmethodrQ   rJ   rK   r<   r   r>   r>   x   s    M% %r<   r>   c                  ,    \ rS rSrSrSS jrSS jrSrg)	r?      r   c                    Xl         g r6   r0   )r9   r0   s     r   r:   ZlibContext.__init__   s    
r<   c                @    SS K nUR                  XR                  5      $ rP   )r
   rQ   r0   )r9   rR   r
   s      r   rQ   ZlibContext.compress   s    }}T::..r<   r\   N)r0   r+   rT   )rF   rG   rH   rI   rW   r:   rQ   rJ   rK   r<   r   r?   r?      s    M/r<   r?   c                  ,    \ rS rSrSr\SS j5       rSrg)r@         c                H    SS K nUR                  5       R                  U 5      $ rP   )r   ZstdCompressorrQ   )rR   r   s     r   rQ   ZstdContext.compress   s!    
 	'')22488r<   rK   NrT   rV   rK   r<   r   r@   r@      s    M9 9r<   r@   c                D   U[         R                  :X  a  SS KnUR                  [	        U 5      5      $ U[
        R                  :X  a  SS KnUR                  U 5      $ U[        R                  :X  a#  SS K	nUR                  5       R                  U 5      $ [        SU4-  5      e)Nr   zUnknown compressorId %d)r>   rW   r   
uncompressrU   r?   r
   
decompressr@   r   ZstdDecompressorr.   )rR   rW   r   r
   r   s        r   rh   rh      s    333
 	  t--	+33	3t$$	+33	3 	))+66t<<2m5EEFFr<   )rE   bool)r#   r   r$   zUnion[str, Iterable[str]]rE   rD   )r/   strr$   r   rE   r+   )rR   rU   rW   r+   rE   rU   )
__future__r   r!   typingr   r   r   r   pymongo.hellor   pymongo.helpers_sharedr	   r   CMD
LEGACY_CMD_NO_COMPRESSIONupdater   r   r   r'   r1   r3   r>   r?   r@   rh   rK   r<   r   <module>rt      s    #  1 1 % 63 ??K$:$:;   * +!H (% %	/ 	/
9 
9Gr<   