L i!rUddlZddlmZmZmZmZmZmZmZm Z m Z ddl m Z m Z mZmZddlmZmZmZmZmZddlmZddlmZmZmZmZmZmZmZm Z ddl!m"Z"m#Z#m$Z$m%Z%d gZ&ejNe jPd Z)ejNd Z*d ee+d ee+fdZ,d ee+d eee+e+ffdZ-ejNejPd Z.ded eefdZ/ejNejPd Z0ded e eedffdZ1GddZ2ejNe jPd Z3GddZ4GddZ5ded dfdZ6ee e e$ee e$e e$ffe edefee7edeffffZ8eefe/e efe1e efe1eefe6eefe6eefe6e efe6e efe6e efe6ee4e2e5di Z9e8e:d <y)N) AnyCallableDictIterableNoReturnOptionalTupleTypeUnion) chunk_header header_field request_line status_line)Data EndOfMessageInformationalResponseRequestResponse) ReceiveBuffer)CLIENTCLOSEDDONEIDLE MUST_CLOSE SEND_BODY SEND_RESPONSESERVER)LocalProtocolErrorRemoteProtocolErrorSentinelvalidateREADERSasciis[ \t]+linesreturnc#Kt|}d}|D]e}tj|}|rD| tdt |t s t |}|dz }|||j dz }^|||}g||yyw)Nz%continuation line at start of headers )iter obs_fold_rematchr isinstance bytearrayend)r%itlastliner+s R/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/h11/_readers.py_obsolete_line_foldr3+s eB D !!$' |()PQQdI.  DLD D' 'D D   sBBc#hKt|D] }tt|d|}|d|df"yw)Nzillegal header line: {!r} field_name field_value)r3r"header_field_re)r%r1matchess r2_decode_header_linesr9@sB$E*>?D2MtT|$gm&<==>s02bufc |j}||jr tdy|s tdtt|dd|d}t dt t|dddd|S) Nillegal request linezno request line receivedrzillegal request line: {!r}r T)headers_parsed)maybe_extract_lines+is_next_line_obviously_invalid_request_linerr"request_line_rerlistr9)r:r%r8s r2maybe_read_from_IDLE_clientrDKs  # # %E }  : : <$%;< <  !;<<q#?qG  )%)45t GN c Z|j}||jr tdy|s tdtt|dd|d}|ddn|d}|ddn|d}t |d }|d krt nt}|tt|d dd ||| S)Nr<zno response line receivedrzillegal status line: {!r} http_versions1.1reasonrE status_coder T)r=r>rIrHrG) r@rArr"status_line_reintrrrCr9)r:r%r8rGrHrIclass_s r2$maybe_read_from_SEND_RESPONSE_serverrN^s  # # %E }  : : <$%;< <  !<==~uQx1LeTUhWG.)1w~7NH%-S783DFgm,-K!,s!2  )%)45!  rEcDeZdZdeddfdZdedeeedffdZ de fdZ y)ContentLengthReaderlengthr&Nc ||_||_yN)_length _remaining)selfrQs r2__init__zContentLengthReader.__init__{s  rEr:c|jdk(r tS|j|j}|y|xjt|zc_t |S)Nrdata)rUrmaybe_extract_at_mostlenrrVr:rZs r2__call__zContentLengthReader.__call__sN ??a > !((9 < 3t9$rEcztdj|j|jz |j)Nz]peer closed connection without sending complete message body (received {} bytes, expected {}))r formatrTrUrVs r2read_eofzContentLengthReader.read_eofs4! //5v t. 0  rE) __name__ __module__ __qualname__rLrWrr rrr^rrbr?rEr2rPrPzs@!s!t!MeD,4L.M ( rErPc<eZdZddZdedeeedffdZde fdZ y) ChunkedReaderr&Nc.d|_d|_d|_y)NrrEF)_bytes_in_chunk_bytes_to_discard_reading_trailerras r2rWzChunkedReader.__init__s "% %rEr:c|jr1|j}|yttt |S|j r|j t|j }|y||j dt|k7rtd|d|j d|j t|d|_|j ry|j dk(sJ|jdk(r[|j}|ytt|d|}t|dd |_ |jdk(rd |_||Sd }nd }|jdkDsJ|j |j}|y|xjt|zc_ |jdk(r d |_d }nd }t|||S)N)r=zmalformed chunk footer: z (expected )rErzillegal chunk header: {!r} chunk_size)baseTFs )rZ chunk_start chunk_end)rkr@rrCr9rjr[r\rrimaybe_extract_next_liner"chunk_header_rerLr)rVr:r%rZr r8rqrrs r2r^zChunkedReader.__call__s  ++-E}-A%-H(IJ J  ! !,,S1G1G-HID|t--kD ::(.thk$BXBXA[[\]&*%;%;CIK%HD "%%%%,,,   1 $668L#, G$'w|'<2#FD ##q((,%Cy KK##a'''(()=)=> < D )   1 $%,D "II;)LLrEctd)NzVpeer closed connection without sending complete message body (incomplete chunked read))r ras r2rbzChunkedReader.read_eofs! (  rE)r&N) rcrdrerWrr rrr^rrbr?rEr2rgrgs6&0MM0MeD,4L.M0Md ( rErgc.eZdZdedeefdZdefdZy) Http10Readerr:r&cB|jd}|yt|S)Niɚ;rY)r[rr]s r2r^zHttp10Reader.__call__s$((3 <rEctSrS)rras r2rbzHttp10Reader.read_eofs ~rEN) rcrdrerrrr^rrbr?rEr2rwrws%Mhtn ,rErwc|r tdy)NzGot data when expecting EOF)r)r:s r2expect_nothingr{s  !>?? rE.)chunkedzcontent-lengthzhttp/1.0);retypingrrrrrrr r r _abnfr rrr_eventsrrrrr_receivebufferr_staterrrrrrrr_utilrr r!r"__all__compileencoder7r*bytesr3r9rBrDrKrNrPrtrgrwr{str ReadersTyper#__annotations__r?rEr2rsT& XXXHHQQ)   ON +"**0\009:bjj$ x8E?*> E?> eE5L!">"**0\009: ] x7H  .K..w78  (D 018  ."**0\009:> > B $  $x.%XX >? ?@ (38 d3c(:#:; ;<>  TN/ TN8 ]A TNN Z. Vn TNN Z. Vn  - rE