xje"UddlmZddlZddlmZddlZddlZddlm Z m Z ddl m Z m Z mZmZmZdZej$j'dZded<dd ZGd d ZGd d ZGddeZddZddZy)) annotationsN)NoReturn)HeadersMutableHeaders)ASGIAppMessageReceiveScopeSend) zapplication/gzipzapplication/x-gzipzapplication/zipzaudio/*z font/woffz font/woff2z image/avifz image/gifz image/jpegz image/pngz image/webpztext/event-streamzvideo/*_gzip_capacity_limiterz,anyio.lowlevel.RunVar[anyio.CapacityLimiter]c tjS#t$r/tjd}tj ||cYSwxYw)zDReturn the capacity limiter used for worker-thread GZip compression.()r get LookupErroranyioCapacityLimitersetlimiters m/mnt/ssd/data/Dropbox/adrian/sandbox/mcp-query/venv/lib/python3.12/site-packages/starlette/middleware/gzip.py_get_gzip_capacity_limiterr sJ%))++ ''+""7+ s5A Ac@eZdZ ded ddZddZy)GZipMiddlewareexclude_content_typesc\||_||_||_||_t ||_yN)app minimum_size compresslevelthread_minimum_size_normalize_content_typesr)selfrrr r!rs r__init__zGZipMiddleware.__init__-s1(*#6 %=>S%T"cK|ddk7r|j|||d{yt|}d|jddvrCt|j|j|j |j |j}n,t|j|j|j}||||d{y77w) Ntypehttp)scopegzipAccept-Encoding)r r!rr) rrr GZipResponderrr r!rIdentityResponder)r#r)receivesendheaders responders r__call__zGZipMiddleware.__call__<s =F "((5'40 0 0 & W[[!2B7 7%!!"00$($<$<&*&@&@ I*$((D4E4E]a]w]wxIw---! 1 .s"C C B!C C C  C N)i  rrrintr r7r!r7rtuple[str, ...]returnNoner)r r/r r0r r9r:)__name__ __module__ __qualname__DEFAULT_EXCLUDED_CONTENT_TYPESr$r3r%rrr,sd #- U2P U  U U U ! U / U  U.r%rcLeZdZUded<ed d dZd dZd dZd dZy) r.strcontent_encodingrc||_||_t||_t|_i|_d|_d|_d|_ d|_ y)NF) rrr"runattached_sendr0initial_messagestartedcontent_encoding_setcontent_type_is_excludedpartial_response)r#rrrs rr$zIdentityResponder.__init__TsO(%=>S%T") (* $)!(-% %r%chK||_|j|||jd{y7wr)r0rsend_with_compression)r#r)r/r0s rr3zIdentityResponder.__call__es) hhugt'A'ABBBs (202cK|d}|dk(r||_t|jd}d|v|_|ddk(|_|j dd j d d j j}||j d d d zh}|j|j |_ y|dk(rt|js|js |jrP|js*d|_ |j|jd{|j|d{y|dk(r|jsd|_ |j dd}|j dd}t||jkr?|s=|j|jd{|j|d{y|s|j|dd{}t!|jd}|j#d||dk7r+|j$|d<t't||d<||d<|j|jd{|j|d{y|j|dd{}t!|jd}|j#d||dk7r|j$|d<|d=||d<|j|jd{|j|d{y|dk(r\|j dd}|j dd}|j||d{|d<|j|d{y|dk(r=|j|jd{|j|d{yy777!7 77s7]7D7777f7?7(w)Nr'zhttp.response.startr1)rawzcontent-encodingstatusz content-typer,;r/z/*zhttp.response.bodyTbodyr% more_bodyF)rTr+zContent-EncodingzContent-Lengthzhttp.response.pathsend)rFrrHrJr partitionstriplower isdisjointrrIrGr0lenrapply_compressionradd_vary_headerrCrB)r#message message_typer1 media_type media_typesrSrTs rrLz'IdentityResponder.send_with_compressionisv 0 0$+D $"6"6y"ABG(:g(ED %$+H$5$)>$B_B_<<# ii 4 4555))G$ $ $ 1 1$,,DL;;vs+D K7I4y4,,,Yii 4 4555ii(((!33DE3JJ(T-A-A)-LM''(9:76?*262G2GG./03CIG,-&*GFOii 4 4555ii((("33DD3II(T-A-A)-LM''(9:76?*262G2GG./ 01&*GFOii 4 4555ii((( 1 1;;vs+D K7I$($:$:49$:$UUGFO))G$ $ $ 5 5))D001 1 1))G$ $ $6Y6 $6(K6(J6( V $ 2 $sDO,OO,1O 2A;O,-O.O,OO,$O%A?O,$O%O,=O>O,OA+O,O O,O"AO,#O$$O,?O&(O,(O()O,O*O, O,O,O,O,O,O,O, O,"O,$O,&O,(O,*O,cK|Sw)zApply compression on the response body. If more_body is False, the compression stream is finalized. Compression resources are only allocated once a body is actually compressed. r@r#rSrTs rrZz#IdentityResponder.apply_compressions  sN)rrrr7rr8r9r:r;)r\rr9r:rSbytesrTboolr9rc) r<r=r>__annotations__r?r$r3rLrZr@r%rr.r.QsK2P & && / &  &"C@%Dr%r.cheZdZdZ dded d fdZed dZd dZd dZ xZ S) r-r*r5)r!rcTt||||||_||_d|_y)Nr)superr$r r! _compressor)r#rrr r!r __class__s rr$zGZipResponder.__init__s2 lBWX*#6 26r%c|jEtj|jtjdtj z|_|jS)N)rizlib compressobjr DEFLATED MAX_WBITS)r#s r compressorzGZipResponder.compressorsH    ##//0B0BDMMSUX\XfXfSfgD r%cKt||jk\r?t}tjj |j |||d{S|j ||S7w)Nr)rYr!rr to_threadrun_sync_compress_body)r#rSrTrs rrZzGZipResponder.apply_compressionsa t900 002G11$2E2EtY`g1hh h""433isAA.A,A.c|rE|jj||jjtjzS|jj||jjzSr)rqcompressflushrm Z_SYNC_FLUSHras rruzGZipResponder._compress_bodys[ ??++D1DOO4I4I$J[J[4\\ \''-0E0E0GGGr%)r4r6)r9zzlib._Compressrb) r<r=r>rCr?r$propertyrqrZru __classcell__)rjs@rr-r-sy  7 $.1O 7  7 7 7 ! 7 / 7  7  4Hr%r-c Ktdw)Nzsend awaitable not set) RuntimeError)r\s rrErEs / 00s c&td|DS)Nc3|K|]4}|jddjj6yw)rQrN)rUrVrW).0 content_types r z+_normalize_content_types..s2bL'',Q/557==?bs:<)tuple) content_typess rr"r"s bTab bbr%)r9zanyio.CapacityLimiter)r\rr9r)rr8r9r8) __future__rrmtypingranyio.lowlevelranyio.to_threadstarlette.datastructuresrrstarlette.typesrrr r r r?lowlevelRunVarr rerrr.r-rEr"r@r%rrs}" <BB" HM~~G\G\]uGvDv ".".J``F"H%"HJ1cr%