xL iddlmZddlZddlZddlmZddlmZm Z m Z m Z m Z m Z ddlmZddlmZmZddlmZdd lmZmZmZmZmZmZdd lmZmZd gZGd d eeZ Gd deZ!GddeZ"GddeeZ# ddZ$ ddZ% ddZ&ddZ'ddZ(d dZ) d! d"dZ* d# d$dZ+y)%) annotationsN)dumps)Any AsyncIterable AsyncIteratorIterableIteratorMapping) urlencode) StreamClosedStreamConsumed)MultipartStream)AsyncByteStreamRequestContent RequestData RequestFilesResponseContentSyncByteStream)peek_filelike_lengthprimitive_value_to_str ByteStreamc$eZdZddZddZddZy)rc||_yN_streamselfstreams T/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/httpx/_content.py__init__zByteStream.__init__ s  c#(K|jywrrrs r!__iter__zByteStream.__iter__#sllsc*K|jywrrr%s r! __aiter__zByteStream.__aiter__&sllsN)r bytesreturnNoner*zIterator[bytes]r*zAsyncIterator[bytes])__name__ __module__ __qualname__r"r&r(r#r!rrsr#c eZdZdZddZddZy)IteratorByteStreamcT||_d|_tj||_yNF)r_is_stream_consumedinspect isgenerator _is_generatorrs r!r"zIteratorByteStream.__init__-s$ #( $008r#c#^K|jr|jr td|_t|jdrU|jj |j }|r-||jj |j }|r,yy|jD]}|yw)NTread)r7r:rhasattrrr< CHUNK_SIZErchunkparts r!r&zIteratorByteStream.__iter__2s  # #(:(: " "#' 4<< (LL%%doo6E  ))$//:     s BB-B-N)r zIterable[bytes]r*r+r,)r.r/r0r>r"r&r1r#r!r3r3*sJ9 r#r3c eZdZdZddZddZy)AsyncIteratorByteStreamr4cT||_d|_tj||_yr6)rr7r8 isasyncgenr:rs r!r"z AsyncIteratorByteStream.__init__Fs$ #( $//7r#cK|jr|jr td|_t|jdrf|jj |j d{}|r6||jj |j d{}|r5yy|j23d{}|7X7&76yw)NTaread)r7r:rr=rrGr>r?s r!r(z!AsyncIteratorByteStream.__aiter__Ks  # #(:(: " "#' 4<< ),,,,T__==E "ll00AA #ll  d >B lsNA(C *C+3C CC &C 4C 8C9C <C C C  C N)r zAsyncIterable[bytes]r*r+r-)r.r/r0r>r"r(r1r#r!rCrCCsJ8 r#rCc eZdZdZddZddZy)UnattachedStreamz If a request or response is serialized using pickle, then it is no longer attached to a stream for I/O purposes. Any stream operations should result in `httpx.StreamClosed`. ctrr r%s r!r&zUnattachedStream.__iter__cs nr#cKtwrrKr%s r!r(zUnattachedStream.__aiter__fsns Nr,r-)r.r/r0__doc__r&r(r1r#r!rIrI\s r#rIct|ttfrLt|tr|jdn|}t |}|r dt|ini}|t |fSt|t r ! )*I6G'-C)DEG*7333 G] +& 2/888 5d7m5FG HHr#c g}|jD]b\}}t|ttfr+|j |Dcgc]}|t |fc}G|j |t |fdt|djd}tt|}d}||d}|t|fScc}w)NT)doseqrOz!application/x-www-form-urlencodedrPz Content-Type) itemsrRlisttupleextendrappendr rTrSrUr) data plain_datakeyvalueitemrZr[ content_typer\s r!encode_urlencoded_datarmsJjjlD U edE] +   uUt%;D%ABU V   s$:5$AB C D Zt , 3 3G , ). z5Use 'content=<...>' to upload raw bytes/text content.) stacklevelr#) rRr warningswarnDeprecationWarningr^rsrmrr)rYrgrorrpmessages r!encode_requestrs  4 9J g1a@d##g&& $TZRAA %d++ 4  z# r#c| t|S| t|S| t|S| t|Sit dfS)zc Handles encoding the given `content`, returning a two-tuple of (, ). r#)r^rwrzrr)rYrvryrs r!encode_responsersWg&& 4  4  4  z# r#)rYz4str | bytes | Iterable[bytes] | AsyncIterable[bytes]r*7tuple[dict[str, str], SyncByteStream | AsyncByteStream])rgrr*!tuple[dict[str, str], ByteStream])rgrrorrp bytes | Noner*z&tuple[dict[str, str], MultipartStream])rvrSr*r)ryrSr*r)rrr*r)NNNNN) rYzRequestContent | NonergzRequestData | NonerozRequestFiles | Noner Any | Nonerprr*r)NNNN) rYzResponseContent | Nonerv str | Noneryrrrr*r), __future__rr8rrrrtypingrrrrr r urllib.parser _exceptionsr r _multipartr_typesrrrrrr_utilsrr__all__rr3rCrIr^rmrsrwrzrrrr1r#r!rsb"$#5'A ..2o2  I AI<I: %  %& %  *6B+%%%&*#!%!  "          = H'+  #     = r#