
    i                    6   S SK Jr  S SK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    H/app/mltbenv/lib/python3.13/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                 h     [         R                  S:  a  SSKJn   gSSKJn   g! [
         a     gf = f)N      r   r   TF)sysversion_infocompressionr   	backportsr   r   s    r   
_have_zstdr   .   s7    w&(  ' s   $ $ 
11c                    UR                  S5      nUS S   GH  nU[        ;  a+  UR	                  U5        [
        R                  " SU 3SS9  M9  US:X  a7  [        5       (       d(  UR	                  U5        [
        R                  " SSS9  Mv  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
:  a  [
        R                  " SSS9  GM	  [
        R                  " SSS9  GM!     U$ ! [         a    [        U5      n GNBf = 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   r   zhWire protocol compression with zstandard is not available. The compression.zstd module is not available.z|Wire protocol compression with zstandard is not available. You must install the backports.zstd module for zstandard support.)splitAttributeErrorlist_SUPPORTED_COMPRESSORSremovewarningswarnr   r   r   r   r   )dummyvaluecompressors
compressors       r   validate_compressorsr.   :   s1   "kk#&
 "!n
33z*MM4ZLAaP8#LNNz*MMP
 6!*,,z*MM4
 6!*,,z*7*D  X 7 %@ I  "5k"s   D= =EE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_levelr8   e   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)CompressionSettingso   c                    Xl         X l        g Nr,   zlib_compression_level)selfr,   r?   s      r   __init__CompressionSettings.__init__p   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ZlibContextr?   ZstdContext)r@   r,   chosens      r   get_compression_context+CompressionSettings.get_compression_contextt   sO      ^F!$&6!"4#>#>??6!"}$rC   r>   N)r,   	list[str]r?   r2   )r,   zOptional[list[str]]returnz4Union[SnappyContext, ZlibContext, ZstdContext, None])__name__
__module____qualname____firstlineno__rA   rI   __static_attributes__ rC   r   r:   r:   o   s    =.	=rC   r:   c                  ,    \ rS rSrSr\SS j5       rSrg)rE         c                ,    SS K nUR                  U 5      $ Nr   )r   compress)datar   s     r   rX   SnappyContext.compress   s    t$$rC   rR   NrY   bytesrL   r\   rM   rN   rO   rP   compressor_idstaticmethodrX   rQ   rR   rC   r   rE   rE      s    M% %rC   rE   c                  ,    \ rS rSrSrSS jrSS jrSrg)	rF      r!   c                    Xl         g r=   r7   )r@   r7   s     r   rA   ZlibContext.__init__   s    
rC   c                @    SS K nUR                  XR                  5      $ rW   )r
   rX   r7   )r@   rY   r
   s      r   rX   ZlibContext.compress   s    }}T::..rC   rc   N)r7   r2   r[   )rM   rN   rO   rP   r^   rA   rX   rQ   rR   rC   r   rF   rF      s    M/rC   rF   c                  ,    \ rS rSrSr\SS j5       rSrg)rG      r   c                f    [         R                  S:  a  SSKJn  OSSKJn  UR                  U 5      $ )Nr   r   r   )r   r   r   r   r   rX   )rY   r   s     r   rX   ZstdContext.compress   s%    w&(&}}T""rC   rR   Nr[   r]   rR   rC   r   rG   rG      s    M# #rC   rG   c                b   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  a2  [        R                  S:  a  SSKJn  OSSKJn  UR                  U 5      $ [        SU4-  5      e)Nr   r   r   zUnknown compressorId %d)rE   r^   r   
uncompressr\   rF   r
   
decompressrG   r   r   r   r   r   r5   )rY   r^   r   r
   r   s        r   rm   rm      s    333
 	  t--	+33	3t$$	+33	3w&(&t$$2m5EEFFrC   )rL   bool)r*   r   r+   zUnion[str, Iterable[str]]rL   rK   )r6   strr+   r   rL   r2   )rY   zbytes | memoryviewr^   r2   rL   r\   )
__future__r   r   r(   typingr   r   r   r   pymongo.hellor   pymongo.helpers_sharedr	   r&   CMD
LEGACY_CMD_NO_COMPRESSIONupdater   r   r   r.   r8   r:   rE   rF   rG   rm   rR   rC   r   <module>rx      s    # 
  1 1 % 63 ??K$:$:;   * +	(V (% %	/ 	/
# 
#GrC   