mavis-trash: moved to trash: 'test'
[multipart-responses 7a1f0ba] Add Response.iter_multipart() and Response.aiter_multipart()
 5 files changed, 823 insertions(+), 1 deletion(-)
 create mode 100644 httpx/_multipart_decoding.py
 create mode 100644 tests/models/test_multipart_responses.py
commit 7a1f0ba4a7c163e1ac8942738dd760ab8490ee9a
Author: Mavis <mavis@minimax.local>
Date:   Mon Sep 7 08:56:27 2026 +0000

    Add Response.iter_multipart() and Response.aiter_multipart()
    
    Parse 'multipart/*' response content into httpx.MultipartPart instances,
    each with 'headers' (httpx.Headers) and 'content' (bytes).
    
    * Boundary is taken from the Content-Type header, parsed
      case-insensitively, with the last 'boundary' parameter winning.
      Values may be quoted and padded with SP/HTAB. Missing or invalid
      boundaries, non-multipart content types, and malformed framing
      raise httpx.DecodingError.
    * Framing supports LF, CRLF, and CR line terminators, including CRLF
      pairs split across chunks. Preamble and epilogue are ignored, and
      only a closing boundary yields zero parts.
    * Part headers support folded continuation lines and preserve
      duplicates; malformed header lines raise httpx.DecodingError.
    * Streaming responses are consumed and closed by iteration, making it
      single-use (httpx.StreamConsumed on reuse), while in-memory
      responses support repeated iteration.

 CHANGELOG.md                             |   1 +
 httpx/__init__.py                        |   1 +
 httpx/_models.py                         |  73 ++++-
 httpx/_multipart_decoding.py             | 243 +++++++++++++++
 tests/models/test_multipart_responses.py | 506 +++++++++++++++++++++++++++++++
 5 files changed, 823 insertions(+), 1 deletion(-)
