+\h"ddlmZddlZddlmZmZmZmZddlm Z ddl m Z hdZ e je jhZej!e ddZddZdd Zdd Zdd ZGd d ZGddZGddZGddZddZy)) annotationsN)AnyIterableOptionalUnion) HelloCompat)_SENSITIVE_COMMANDS>zlibzstdsnappyc, ddl}y#t$rYywxYwNrTF)r ImportError)r s ^/root/niggaflix-v3/playground/venv/lib/python3.12/site-packages/pymongo/compression_support.py _have_snappyrs   c, ddl}y#t$rYywxYwr)r r)r s r _have_zlibr$s rc, ddl}y#t$rYywxYwr) zstandardr)rs r _have_zstdr-s rc, |jd}|ddD]}|tvr,|j |t j d|d7|dk(r3ts)|j |t j ddo|dk(r3ts)|j |t j dd|d k(str|j |t j d d|S#t$rt|}YwxYw) N,zUnsupported 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.) splitAttributeErrorlist_SUPPORTED_COMPRESSORSremovewarningswarnrrr)dummyvalue compressors compressors rvalidate_compressorsr'6s "kk#& "!n 3 3   z * MM4ZLAa P 8 #LN   z * MMP  6 !*,   z * MM4  6 !*,   z * MMO )2 ; "5k "sC<<DDc t|}|dks|dkDrtd||fz|S#t$rt|d|dwxYw)Nz must be an integer, not z$%s must be between -1 and 9, not %d.)int Exception TypeError ValueError)optionr$levels rvalidate_zlib_compression_levelr1ZsfQE  rzUQY?65/QRR L Q6(";E9EFDPQs )Ac$eZdZddZ ddZy)CompressionSettingsc ||_||_yN)r%zlib_compression_level)selfr%r6s r__init__zCompressionSettings.__init__es&&<#c|r>|d}|dk(r tS|dk(rt|jS|dk(r tSyy)Nrr r r ) SnappyContext ZlibContextr6 ZstdContext)r7r%chosens rget_compression_contextz+CompressionSettings.get_compression_contextisO  ^F!$&6!"4#>#>??6!"}$r9N)r% list[str]r6r+)r%zOptional[list[str]]returnz4Union[SnappyContext, ZlibContext, ZstdContext, None])__name__ __module__ __qualname__r8r?r9rr3r3ds= .  = r9r3c"eZdZdZeddZy)r;c,ddl}|j|SNr)r compress)datar s rrJzSnappyContext.compress{st$$r9NrKbytesrArMrBrCrD compressor_id staticmethodrJrEr9rr;r;xsM%%r9r;c eZdZdZddZddZy)r<rc||_yr5)r0)r7r0s rr8zZlibContext.__init__s  r9cBddl}|j||jSrI)r rJr0)r7rKr s rrJzZlibContext.compresss}}T4::..r9N)r0r+rL)rBrCrDrOr8rJrEr9rr<r<sM/r9r<c"eZdZdZeddZy)r=cHddl}|jj|SrI)rZstdCompressorrJ)rKrs rrJzZstdContext.compresss! '')22488r9NrLrNrEr9rr=r=sM99r9r=c>|tjk(rddl}|jt |S|t jk(rddl}|j|S|tjk(r#ddl }|jj|Std|fz)NrzUnknown compressorId %d) r;rOr uncompressrMr<r decompressr=rZstdDecompressorr.)rKrOr r rs rrZrZs 333   t-- +33 3t$$ +33 3 ))+66t<<2m5EEFFr9)rAbool)r#rr$zUnion[str, Iterable[str]]rAr@)r/strr$rrAr+)rKrMrOr+rArM) __future__rr!typingrrrr pymongo.hellorpymongo.helpers_sharedr rCMD LEGACY_CMD_NO_COMPRESSIONupdaterrrr'r1r3r;r<r=rZrEr9rrfs#11%63??K$:$:;*+!H(%% / / 9 9Gr9