# media pydantic_v2.BaseModel
  > POST https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 626] b'--<boundary>\r\nContent-Disposition: form-data; name="name"\r\n\r\nAda\r\n--<boundary>\r\nContent-Disposition: form-data; name="age"\r\n\r\n36\r\n--<boundary>\r\nContent-Disposition: form-data; name="active"\r\n\r\ntrue\r\n--<boundary>\r\nContent-Disposition: form-data; name="tags"\r\n\r\na\r\n--<boundary>\r\nContent-Disposition: form-data; name="tags"\r\n\r\nb\r\n--<boundary>\r\nContent-Disposition: form-data; name="address"\r\nContent-Type: application/json\r\n\r\n{"city":"London","codes":[1,2]}\r\n--<boundary>--\r\n'
  profile = None
  > POST https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 125] b'--<boundary>\r\nContent-Disposition: form-data; name="name"\r\n\r\nBo\r\n--<boundary>--\r\n'
  profile with its name only = None
  > POST https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 125] b'--<boundary>\r\nContent-Disposition: form-data; name="name"\r\n\r\nBo\r\n--<boundary>--\r\n'
  profile with no tags = None
  > POST https://media.example.com/api/anything
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 155] b'--<boundary>\r\nContent-Disposition: form-data; name="k"\r\nContent-Type: application/json\r\n\r\n[1]\r\n--<boundary>--\r\n'
  free-form object = None
  free-form value that is no object ! DecodeError: DecodeError(operation_id='submitAnything', reason='unencodable', location='body') [operation_id='submitAnything', location=('body',), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A multipart form value must be an object')] unencodable
  > POST https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, transfer-encoding: chunked] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>\r\nContent-Disposition: form-data; name="summary"\r\nContent-Type: text/markdown\r\nX-Trace: t\r\n\r\n# Hi\r\n--<boundary>\r\nContent-Disposition: form-data; name="image"; filename="a%22b%0D%0A.png"\r\nContent-Type: image/png\r\n\r\n\x00\x01\r\n--<boundary>\r\nContent-Disposition: form-data; name="doc"; filename="doc.txt"\r\nContent-Type: application/octet-stream\r\n\r\ndoc\r\n--<boundary>\r\nContent-Disposition: form-data; name="stream"\r\nContent-Type: application/octet-stream\r\n\r\ns1s2\r\n--<boundary>--\r\n'
  streamed parts = None
  > POST https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 244] b'--<boundary>\r\nContent-Disposition: form-data; name="a"\r\n\r\n1\r\n--<boundary>\r\nContent-Disposition: form-data; name="f"\r\nContent-Type: application/octet-stream\r\n\r\nx\r\n--<boundary>--\r\n'
  sized parts = None
  > POST https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 38] b'--<boundary>--\r\n'
  no parts = None
  > POST https://media.example.com/api/attachments
    [host: media.example.com, content-length: 0, accept-encoding: gzip, deflate] b''
  no body = None
  > POST https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 147] b'--<boundary>\r\nContent-Disposition: form-data; name="a"\r\nContent-Type: text/plain\r\n\r\n1\r\n--<boundary>--\r\n'
  part header naming the media type = None
  > POST https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 153] b'--<boundary>\r\nContent-Disposition: form-data; name="a"\r\nContent-Type: not a media type\r\n\r\n1\r\n--<boundary>--\r\n'
  part media type as given = None
  > POST https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 121] b'--<boundary>\r\nContent-Disposition: form-data; name="a"\r\n\r\n1\r\n--<boundary>--\r\n'
  body of the other mode = None
  > POST https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, transfer-encoding: chunked] b'--<boundary>\r\nContent-Disposition: form-data; name="f"\r\nContent-Type: application/octet-stream\r\n\r\naabb\r\n--<boundary>--\r\n'
  file of an empty chunk = None
  > POST https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 132] b'--<boundary>\r\nContent-Disposition: form-data; name="a"\r\nX-T: 1, 2\r\n\r\n1\r\n--<boundary>--\r\n'
  part headers of one name = None
  > POST https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 179] b'--<boundary>\r\nContent-Disposition: form-data; name="f"\r\nContent-Type: image/png\r\nX-Content-Type-Options: nosniff\r\n\r\nx\r\n--<boundary>--\r\n'
  file part header naming a media type in its name = None
  part header on two lines ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body') [operation_id='submitParts', location=('body',), body_bytes=b'', truncated=False, cause=ValueError('Invalid control character in multipart header value.')] unencodable
  part header naming the disposition ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body') [operation_id='submitParts', location=('body',), body_bytes=b'', truncated=False, cause=ValueError("A part's Content-Disposition comes from its name and filename, so its headers may not name it")] unencodable
  file part header that is no token ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body') [operation_id='submitParts', location=('body',), body_bytes=b'', truncated=False, cause=ValueError('Invalid multipart header name.')] unencodable
  part that is no part ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body.?') [operation_id='submitParts', location=('body', '?'), body_bytes=b'', truncated=False, cause=TypeError('A multipart part must be a FieldPart or a FilePart named by a string')] unencodable
  field of an object ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body.a') [operation_id='submitParts', location=('body', 'a'), body_bytes=b'', truncated=False, cause=TypeError('Object of type object is not JSON serializable')] unencodable
  file with invalid native input ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body.f') [operation_id='submitParts', location=('body', 'f'), body_bytes=b'', truncated=False, cause=TypeError('A multipart file part must be read synchronously: bytes, a binary file object, a path, or an iterable of bytes')] unencodable
  file of an async file ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body.f') [operation_id='submitParts', location=('body', 'f'), body_bytes=b'', truncated=False, cause=TypeError('A multipart file part must be read synchronously: bytes, a binary file object, a path, or an iterable of bytes')] unencodable
  file of an async iterable ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body.f') [operation_id='submitParts', location=('body', 'f'), body_bytes=b'', truncated=False, cause=TypeError('A multipart file part must be read synchronously: bytes, a binary file object, a path, or an iterable of bytes')] unencodable
  body that is no multipart body ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body') [operation_id='submitParts', location=('body',), body_bytes=b'', truncated=False, cause=TypeError('A multipart body must be a MultipartBody or an AsyncMultipartBody')] unencodable
  > POST https://forms.example.com/raw
    [host: forms.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 380] b'--<boundary>\r\nContent-Disposition: form-data; name="meta"\r\nContent-Type: application/json\r\n\r\n{"k":[1,"x"]}\r\n--<boundary>\r\nContent-Disposition: form-data; name="count"\r\n\r\n5\r\n--<boundary>\r\nContent-Disposition: form-data; name="f"\r\nContent-Type: application/octet-stream\r\n\r\nraw\r\n--<boundary>--\r\n'
  raw parts = b'ok'
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, transfer-encoding: chunked] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>\r\nContent-Disposition: form-data; name="tags"\r\n\r\na\r\n--<boundary>\r\nContent-Disposition: form-data; name="tags"\r\n\r\nb\r\n--<boundary>\r\nContent-Disposition: form-data; name="meta"\r\nContent-Type: application/json\r\n\r\n{"city":"Oslo","codes":[7]}\r\n--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>\r\nContent-Disposition: form-data; name="pages"\r\nContent-Type: application/octet-stream\r\n\r\n1\r\n--<boundary>\r\nContent-Disposition: form-data; name="pages"\r\nContent-Type: application/octet-stream\r\n\r\n2\r\n--<boundary>\r\nContent-Disposition: form-data; name="bonus"\r\n\r\n7\r\n--<boundary>--\r\n'
  upload = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 262] b'--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>--\r\n'
  upload of its required parts = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 262] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>--\r\n'
  upload of no tags = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 171] b'--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>--\r\n'
  upload without its title = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 171] b'--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>--\r\n'
  upload of an unset title = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 129] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>--\r\n'
  upload without its photo = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 216] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>\r\nContent-Disposition: form-data; name="photo"\r\n\r\nx\r\n--<boundary>--\r\n'
  upload of a photo as a field = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 298] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\nContent-Type: application/octet-stream\r\n\r\nx\r\n--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>--\r\n'
  upload of a title as a file = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 353] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>--\r\n'
  upload of a title twice = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 395] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>--\r\n'
  upload of a photo twice = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 346] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>\r\nContent-Disposition: form-data; name="id"\r\n\r\n1\r\n--<boundary>--\r\n'
  upload of a read-only id = None
  upload of a part without a name ! DecodeError: DecodeError(operation_id='submitUpload', reason='unencodable', location='body.?') [operation_id='submitUpload', location=('body', '?'), body_bytes=b'', truncated=False, cause=TypeError('A multipart part must be a FieldPart or a FilePart named by a string')] unencodable
  > POST https://media.example.com/api/avatars
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 383] b'--<boundary>\r\nContent-Disposition: form-data; name="caption"\r\n\r\nme\r\n--<boundary>\r\nContent-Disposition: form-data; name="avatar"\r\nContent-Type: application/octet-stream\r\n\r\na\r\n--<boundary>\r\nContent-Disposition: form-data; name="style"\r\nContent-Type: application/json\r\n\r\n{"k":[1]}\r\n--<boundary>--\r\n'
  avatar = None
  > POST https://media.example.com/api/avatars
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; profile=v1; boundary=<boundary>, transfer-encoding: chunked] b'--<boundary>\r\nContent-Disposition: form-data; name="caption"\r\n\r\nme\r\n--<boundary>\r\nContent-Disposition: form-data; name="avatar"\r\nContent-Type: application/octet-stream\r\n\r\na\r\n--<boundary>--\r\n'
  avatar of a media type with a profile = None
  > POST https://media.example.com/api/scans
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 380] b'--<boundary>\r\nContent-Disposition: form-data; name="note"\r\n\r\nn\r\n--<boundary>\r\nContent-Disposition: form-data; name="scan-1"\r\nContent-Type: application/octet-stream\r\n\r\n1\r\n--<boundary>\r\nContent-Disposition: form-data; name="scan-2"\r\nContent-Type: application/octet-stream\r\n\r\n2\r\n--<boundary>--\r\n'
  scans = None
  > POST https://media.example.com/api/scans
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 121] b'--<boundary>\r\nContent-Disposition: form-data; name="x"\r\n\r\n1\r\n--<boundary>--\r\n'
  scans of an extra field = None
  > POST https://media.example.com/api/labels
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 254] b'--<boundary>\r\nContent-Disposition: form-data; name="sheet"\r\nContent-Type: application/octet-stream\r\n\r\ns\r\n--<boundary>\r\nContent-Disposition: form-data; name="color"\r\n\r\nred\r\n--<boundary>--\r\n'
  labels = None
  > POST https://media.example.com/api/photos
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 171] b'--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>--\r\n'
  photos = None
  > POST https://media.example.com/api/photos
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 293] b'--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>\r\nContent-Disposition: form-data; name="x"\r\nContent-Type: application/octet-stream\r\n\r\n\r\n--<boundary>--\r\n'
  photos of an extra part = None
  > POST https://media.example.com/api/covers
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 835] b'--<boundary>\r\nContent-Disposition: form-data; name="note"\r\nContent-Type: text/plain; charset=utf-16\r\nX-Trace: t1\r\n\r\n\xff\xfeh\x00\xe9\x00l\x00l\x00o\x00\r\n--<boundary>\r\nContent-Disposition: form-data; name="size"\r\nContent-Type: application/json\r\n\r\n3\r\n--<boundary>\r\nContent-Disposition: form-data; name="meta"\r\nContent-Type: application/vnd.meta+json\r\nX-Meta: 1\r\n\r\n{"city":"Oslo"}\r\n--<boundary>\r\nContent-Disposition: form-data; name="extra"\r\nContent-Type: text/plain\r\n\r\n7\r\n--<boundary>\r\nContent-Disposition: form-data; name="cover"\r\nContent-Type: image/png\r\nX-Rate-Limit: 5\r\n\r\n\x89PNG\r\n--<boundary>\r\nContent-Disposition: form-data; name="scans"; filename="g.gif"\r\nContent-Type: image/gif\r\n\r\ng\r\n--<boundary>--\r\n'
  cover = None
  > POST https://media.example.com/api/covers
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 301] b'--<boundary>\r\nContent-Disposition: form-data; name="note"\r\nContent-Type: text/plain; charset=utf-16\r\n\r\n\xff\xfeh\x00i\x00\r\n--<boundary>\r\nContent-Disposition: form-data; name="cover"\r\nContent-Type: image/jpeg\r\nX-Rate-Limit: 5\r\n\r\nj\r\n--<boundary>--\r\n'
  cover of a note in plain text = None
  cover of a note in JSON ! DecodeError: DecodeError(operation_id='submitCover', reason='unencodable', location='body.note') [operation_id='submitCover', location=('body', 'note'), body_bytes=b'', truncated=False, cause=ParameterEncodingError("A part's media type must fall within its member's encoding")] unencodable
  cover in text ! DecodeError: DecodeError(operation_id='submitCover', reason='unencodable', location='body.cover') [operation_id='submitCover', location=('body', 'cover'), body_bytes=b'', truncated=False, cause=ParameterEncodingError("A part's media type must fall within its member's encoding")] unencodable
  cover of a scan without its media type ! DecodeError: DecodeError(operation_id='submitCover', reason='unencodable', location='body.scans') [operation_id='submitCover', location=('body', 'scans'), body_bytes=b'', truncated=False, cause=ParameterEncodingError("A part's media type must fall within its member's encoding")] unencodable
  cover of an object as text ! DecodeError: DecodeError(operation_id='submitCover', reason='unencodable', location='body.extra') [operation_id='submitCover', location=('body', 'extra'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A text part carries a scalar')] unencodable
  cover of a note its charset cannot represent ! DecodeError: DecodeError(operation_id='submitCover', reason='unencodable', location='body.note') [operation_id='submitCover', location=('body', 'note'), body_bytes=b'', truncated=False, cause=ParameterEncodingError("The text cannot be represented in its media type's charset")] unencodable
  > POST https://media.example.com/api/covers
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 302] b'--<boundary>\r\nContent-Disposition: form-data; name="cover"\r\nContent-Type: image/png\r\nX-Rate-Limit: 5\r\n\r\n\x89PNG\r\n--<boundary>\r\nContent-Disposition: form-data; name="extra"\r\nContent-Type: text/plain; charset=utf-16\r\n\r\n\xff\xfe7\x00\r\n--<boundary>--\r\n'
  cover of an extra in UTF-16 text = None
  > POST https://media.example.com/api/cards
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 557] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\nContent-Type: text/plain; charset=utf-16\r\n\r\n\xff\xfeh\x00\xe9\x00l\x00l\x00o\x00\r\n--<boundary>\r\nContent-Disposition: form-data; name="count"\r\nContent-Type: application/json\r\n\r\n2\r\n--<boundary>\r\nContent-Disposition: form-data; name="tags"\r\nContent-Type: text/plain; charset=us-ascii\r\n\r\na\r\n--<boundary>\r\nContent-Disposition: form-data; name="tags"\r\nContent-Type: text/plain; charset=us-ascii\r\n\r\nb\r\n--<boundary>--\r\n'
  card = None
  card of a tag its charset cannot represent ! DecodeError: DecodeError(operation_id='submitCard', reason='unencodable', location='body') [operation_id='submitCard', location=('body',), body_bytes=b'', truncated=False, cause=ParameterEncodingError("The text cannot be represented in its media type's charset")] unencodable
  > POST https://media.example.com/api/stickers
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 745] b'--<boundary>\r\nContent-Disposition: form-data; name="tags"\r\n\r\na&b|c\r\n--<boundary>\r\nContent-Disposition: form-data; name="words"\r\n\r\nx y\r\n--<boundary>\r\nContent-Disposition: form-data; name="sizes"\r\n\r\n1,2\r\n--<boundary>\r\nContent-Disposition: form-data; name="filter"\r\n\r\nname,n m,min,2\r\n--<boundary>\r\nContent-Disposition: form-data; name="x"\r\n\r\n1\r\n--<boundary>\r\nContent-Disposition: form-data; name="z"\r\n\r\n3\r\n--<boundary>\r\nContent-Disposition: form-data; name="label"\r\n\r\nl/1\r\n--<boundary>\r\nContent-Disposition: form-data; name="y"\r\n\r\n4\r\n--<boundary>--\r\n'
  stickers = None
  > POST https://media.example.com/api/stickers
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 38] b'--<boundary>--\r\n'
  stickers of no tags and no filter = None
  stickers of a point whose extra is named as another member ! DecodeError: DecodeError(operation_id='submitStickers', reason='unencodable', location='body') [operation_id='submitStickers', location=('body',), body_bytes=b'', truncated=False, cause=ParameterEncodingError('Two form-data members write parts of the same name')] unencodable
  stickers of another member named as a point's extra ! DecodeError: DecodeError(operation_id='submitStickers', reason='unencodable', location='body') [operation_id='submitStickers', location=('body',), body_bytes=b'', truncated=False, cause=ParameterEncodingError('Two form-data members write parts of the same name')] unencodable
  stickers of a point's extra named as a later styled member ! DecodeError: DecodeError(operation_id='submitStickers', reason='unencodable', location='body') [operation_id='submitStickers', location=('body',), body_bytes=b'', truncated=False, cause=ParameterEncodingError('Two form-data members write parts of the same name')] unencodable
  stickers of a tag holding its delimiter ! DecodeError: DecodeError(operation_id='submitStickers', reason='unencodable', location='body') [operation_id='submitStickers', location=('body',), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A delimited query value cannot contain its own delimiter')] unencodable
  > POST https://media.example.com/api/albums
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 300] b'--<boundary>\r\nContent-Disposition: form-data; name="photo"\r\nContent-Type: application/octet-stream\r\n\r\np\r\n--<boundary>\r\nContent-Disposition: form-data; name="tags"\r\nContent-Type: text/plain; charset=utf-16\r\n\r\n\xff\xfex\x00 \x00y\x00\r\n--<boundary>--\r\n'
  album of UTF-16 tags = None
  > POST https://media.example.com/api/albums
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 506] b'--<boundary>\r\nContent-Disposition: form-data; name="photo"\r\nContent-Type: application/octet-stream\r\n\r\np\r\n--<boundary>\r\nContent-Disposition: form-data; name="tags"\r\n\r\na b\r\n--<boundary>\r\nContent-Disposition: form-data; name="w"\r\n\r\n1\r\n--<boundary>\r\nContent-Disposition: form-data; name="h"\r\n\r\n2\r\n--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nt\r\n--<boundary>--\r\n'
  album = None
  > POST https://media.example.com/api/albums
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 252] b'--<boundary>\r\nContent-Disposition: form-data; name="photo"\r\nContent-Type: application/octet-stream\r\n\r\np\r\n--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\n1\r\n--<boundary>--\r\n'
  album of an omitted title beside a bound's extra of its name = None
  > POST https://media.example.com/api/albums
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 339] b'--<boundary>\r\nContent-Disposition: form-data; name="photo"\r\nContent-Type: application/octet-stream\r\n\r\np\r\n--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\n1\r\n--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nt\r\n--<boundary>--\r\n'
  album of bounds whose extra is named as another member = None
  > POST https://media.example.com/api/albums
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 339] b'--<boundary>\r\nContent-Disposition: form-data; name="photo"\r\nContent-Type: application/octet-stream\r\n\r\np\r\n--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nt\r\n--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\n1\r\n--<boundary>--\r\n'
  album of another member named as a bound's extra = None
  album of a tag holding its delimiter ! DecodeError: DecodeError(operation_id='submitAlbum', reason='unencodable', location='body.tags') [operation_id='submitAlbum', location=('body', 'tags'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A delimited query value cannot contain its own delimiter')] unencodable
  album of tags their named charset cannot represent ! DecodeError: DecodeError(operation_id='submitAlbum', reason='unencodable', location='body.tags') [operation_id='submitAlbum', location=('body', 'tags'), body_bytes=b'', truncated=False, cause=ParameterEncodingError("The text cannot be represented in its media type's charset")] unencodable
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read = ProfilesGetResponse(name='Ada', age=36, score=1.5, ratio=2, active=True, tags=['a', 'b'], address=Address(city='Oslo', codes=[7]), bonus=7)
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read with a quoted boundary = ProfilesGetResponse(name='Ada', age=None, score=None, ratio=None, active=None, tags=None, address=None)
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read without a boundary ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_framing') [operation_id='readProfile', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="name"\r\n\r\nAda\r\n--b1--\r\n', truncated=False, cause=ValueError('A multipart body must hold its boundary and parts with headers, each part ending at the next boundary')] invalid_framing
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of another boundary ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_framing') [operation_id='readProfile', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="name"\r\n\r\nAda\r\n--b1--\r\n', truncated=False, cause=ValueError('A multipart body must hold its boundary and parts with headers, each part ending at the next boundary')] invalid_framing
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read with a preamble, padding, and an epilogue = ProfilesGetResponse(name='Ada', age=None, score=None, ratio=None, active=None, tags=None, address=None)
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of a boundary mid-line = ProfilesGetResponse(name='Ada', age=None, score=None, ratio=None, active=None, tags=None, address=None)
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of a part off its line ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_framing') [operation_id='readProfile', body_bytes=b'--b1 x\r\n\r\n--b1--\r\n', truncated=False, cause=ValueError('A multipart body must hold its boundary and parts with headers, each part ending at the next boundary')] invalid_framing
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read that ends at its boundary ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_framing') [operation_id='readProfile', body_bytes=b'--b1', truncated=False, cause=ValueError('A multipart body must hold its boundary and parts with headers, each part ending at the next boundary')] invalid_framing
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of an unterminated part ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_framing') [operation_id='readProfile', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="name"\r\n\r\nAda', truncated=False, cause=ValueError('A multipart body must hold its boundary and parts with headers, each part ending at the next boundary')] invalid_framing
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of a header without a colon ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_framing') [operation_id='readProfile', body_bytes=b'--b1\r\nBroken\r\n\r\nx\r\n--b1--\r\n', truncated=False, cause=ValueError('A multipart body must hold its boundary and parts with headers, each part ending at the next boundary')] invalid_framing
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of a part without a name ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_syntax') [operation_id='readProfile', body_bytes=b'--b1\r\nContent-Type: text/plain\r\n\r\nx\r\n--b1--\r\n', truncated=False, cause=MalformedError('A form-data part has no name')] invalid_syntax
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of a name twice ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_syntax') [operation_id='readProfile', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="name"\r\n\r\nAda\r\n--b1\r\nContent-Disposition: form-data; name="name"\r\n\r\nAda\r\n--b1--\r\n', truncated=False, cause=MalformedError('A form-data body repeats a single-valued member')] invalid_syntax
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of a null address twice ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_syntax') [operation_id='readProfile', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="name"\r\n\r\nAda\r\n--b1\r\nContent-Disposition: form-data; name="address"\r\nContent-Type: application/json\r\n\r\nnull\r\n--b1\r\nContent-Disposition: form-data; name="address"\r\nContent-Type: application/json\r\n\r\nnull\r\n--b1--\r\n', truncated=False, cause=MalformedError('A form-data body repeats a single-valued member')] invalid_syntax
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of an extra that is no integer ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_value') [operation_id='readProfile', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="name"\r\n\r\nAda\r\n--b1\r\nContent-Disposition: form-data; name="bonus"\r\n\r\nx\r\n--b1--\r\n', truncated=False, cause=1 validation error for ProfilesGetResponse
bonus
  Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value='x', input_type=str]
    For further information visit https://errors.pydantic.dev/<version>/v/int_parsing] invalid_value
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of broken JSON ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_syntax') [operation_id='readProfile', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="name"\r\n\r\nAda\r\n--b1\r\nContent-Disposition: form-data; name="address"\r\n\r\n{\r\n--b1--\r\n', truncated=False, cause=JSONDecodeError('Expecting property name enclosed in double quotes: line 1 column 2 (char 1)')] invalid_syntax
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of text that is not UTF-8 ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_syntax') [operation_id='readProfile', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="name"\r\n\r\n\xff\r\n--b1--\r\n', truncated=False, cause=UnicodeDecodeError('utf-8', b'\xff', 0, 1, 'invalid start byte')] invalid_syntax
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of Latin-1 text = ProfilesGetResponse(name='café', age=None, score=None, ratio=None, active=None, tags=None, address=None)
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of UTF-16 text = ProfilesGetResponse(name='café', age=None, score=None, ratio=None, active=None, tags=None, address=None)
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read without its name ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_value') [operation_id='readProfile', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="age"\r\n\r\n36\r\n--b1--\r\n', truncated=False, cause=1 validation error for ProfilesGetResponse
name
  Field required [type=missing, input_value={'age': 36}, input_type=dict]
    For further information visit https://errors.pydantic.dev/<version>/v/missing] invalid_value
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of deeply nested parts DecodeError notes []
  > GET https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/mixed, multipart/form-data] b''
  > GET https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/mixed, multipart/form-data] b''
  parts read MultipartData(<7 parts>) DecodedPart(name=None, content_type='text/plain') None 'a"b.txt' 'text/plain' [('Content-Disposition', 'attachment; filename="a\\"b.txt"'), ('Content-Type', 'text/plain'), ('X-Trace', 't')] b'one'; DecodedPart(name=None, content_type=None) None None None [] b'\x00two\r\n\r\n'; DecodedPart(name='third', content_type=None) 'third' 'x; name=y' None [('Content-Disposition', 'form-data; filename="x; name=y"; name=third; filename=plain.bin')] b'3'; DecodedPart(name=None, content_type=None) None None None [('X-Only', '1')] b''; DecodedPart(name=None, content_type=None) None 'café.txt' None [('Content-Disposition', 'attachment; filename="café.txt"')] b'4'; DecodedPart(name=None, content_type=None) None None None [('X-Bare', '2')] b''; DecodedPart(name=None, content_type=None) None None None [] b''
  parts read again: True True True True False False False
  > GET https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/mixed, multipart/form-data] b''
  parts read of a body without its boundary ! DecodeError: DecodeError(status_code=200, operation_id='readParts', reason='invalid_framing') [operation_id='readParts', body_bytes=b'not multipart', truncated=False, cause=ValueError('A multipart body must hold its boundary and parts with headers, each part ending at the next boundary')] invalid_framing
  > GET https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/mixed, multipart/form-data] b''
  stored id read = AttachmentsGetResponse(id=4)
  > GET https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/mixed, multipart/form-data] b''
  stored id read of an extra part ! DecodeError: DecodeError(status_code=202, operation_id='readParts', reason='invalid_value') [operation_id='readParts', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="id"\r\n\r\n4\r\n--b1\r\nContent-Disposition: form-data; name="x"\r\n\r\n1\r\n--b1--\r\n', truncated=False, cause=1 validation error for AttachmentsGetResponse
x
  Extra inputs are not permitted [type=extra_forbidden, input_value='1', input_type=str]
    For further information visit https://errors.pydantic.dev/<version>/v/extra_forbidden] invalid_value
  > GET https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/mixed, multipart/form-data] b''
  stored id read of a repeated extra part ! DecodeError: DecodeError(status_code=202, operation_id='readParts', reason='invalid_value') [operation_id='readParts', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="id"\r\n\r\n4\r\n--b1\r\nContent-Disposition: form-data; name="x"\r\n\r\n1\r\n--b1\r\nContent-Disposition: form-data; name="x"\r\n\r\n2\r\n--b1--\r\n', truncated=False, cause=1 validation error for AttachmentsGetResponse
x
  Extra inputs are not permitted [type=extra_forbidden, input_value='2', input_type=str]
    For further information visit https://errors.pydantic.dev/<version>/v/extra_forbidden] invalid_value
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read MultipartData(<9 parts>) DecodedPart(name='title', content_type=None) 'title' None None [('Content-Disposition', 'form-data; name="title"')] 'Notes'; DecodedPart(name='count', content_type=None) 'count' None None [('Content-Disposition', 'form-data; name="count"')] 3; DecodedPart(name='tags', content_type=None) 'tags' None None [('Content-Disposition', 'form-data; name="tags"')] 'a'; DecodedPart(name='tags', content_type=None) 'tags' None None [('Content-Disposition', 'form-data; name="tags"')] 'b'; DecodedPart(name='meta', content_type='application/json') 'meta' None 'application/json' [('Content-Disposition', 'form-data; name="meta"'), ('Content-Type', 'application/json')] Address(city='Oslo', codes=[7]); DecodedPart(name='photo', content_type='image/png') 'photo' 'a.png' 'image/png' [('Content-Disposition', 'form-data; name="photo"; filename="a.png"'), ('Content-Type', 'image/png')] b'\x89PNG'; DecodedPart(name='pages', content_type=None) 'pages' None None [('Content-Disposition', 'form-data; name="pages"')] b'1'; DecodedPart(name='pages', content_type=None) 'pages' None None [('Content-Disposition', 'form-data; name="pages"')] b'2'; DecodedPart(name='bonus', content_type=None) 'bonus' None None [('Content-Disposition', 'form-data; name="bonus"')] 7
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of its required parts MultipartData(<2 parts>) DecodedPart(name='photo', content_type='image/png') 'photo' 'a.png' 'image/png' [('Content-Disposition', 'form-data; name="photo"; filename="a.png"'), ('Content-Type', 'image/png')] b'\x89PNG'; DecodedPart(name='title', content_type=None) 'title' None None [('Content-Disposition', 'form-data; name="title"')] 'Notes'
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of scans MultipartData(<3 parts>) DecodedPart(name='note', content_type=None) 'note' None None [('Content-Disposition', 'form-data; name="note"')] 'n'; DecodedPart(name='scan-1', content_type=None) 'scan-1' None None [('Content-Disposition', 'form-data; name="scan-1"')] b'1'; DecodedPart(name='scan-2', content_type=None) 'scan-2' None None [('Content-Disposition', 'form-data; name="scan-2"')] b'2'
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of a photo and parts of any name MultipartData(<3 parts>) DecodedPart(name='photo', content_type='image/png') 'photo' 'a.png' 'image/png' [('Content-Disposition', 'form-data; name="photo"; filename="a.png"'), ('Content-Type', 'image/png')] b'\x89PNG'; DecodedPart(name='x', content_type=None) 'x' None None [('Content-Disposition', 'form-data; name="x"')] b'1'; DecodedPart(name='x', content_type=None) 'x' None None [('Content-Disposition', 'form-data; name="x"')] b'{}'
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of a photo alone MultipartData(<1 parts>) DecodedPart(name='photo', content_type='image/png') 'photo' 'a.png' 'image/png' [('Content-Disposition', 'form-data; name="photo"; filename="a.png"'), ('Content-Type', 'image/png')] b'\x89PNG'
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read without its photo ! DecodeError: DecodeError(status_code=200, operation_id='readUpload', reason='invalid_value') [operation_id='readUpload', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--b1--\r\n', truncated=False, cause=MalformedError('A required form-data member has no part')] invalid_value
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of a title twice ! DecodeError: DecodeError(status_code=200, operation_id='readUpload', reason='invalid_syntax') [operation_id='readUpload', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--b1\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--b1\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--b1--\r\n', truncated=False, cause=MalformedError('A form-data body repeats a single-valued member')] invalid_syntax
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of title text that is not UTF-8 ! DecodeError: DecodeError(status_code=200, operation_id='readUpload', reason='invalid_syntax') [operation_id='readUpload', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="title"\r\n\r\n\xff\r\n--b1\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--b1--\r\n', truncated=False, cause=UnicodeDecodeError('utf-8', b'\xff', 0, 1, 'invalid start byte')] invalid_syntax
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of a count that is no integer ! DecodeError: DecodeError(status_code=200, operation_id='readUpload', reason='invalid_value') [operation_id='readUpload', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--b1\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--b1\r\nContent-Disposition: form-data; name="count"\r\n\r\nx\r\n--b1--\r\n', truncated=False, cause=1 validation error for int
  Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value='x', input_type=str]
    For further information visit https://errors.pydantic.dev/<version>/v/int_parsing] invalid_value
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of an extra that is no integer ! DecodeError: DecodeError(status_code=200, operation_id='readUpload', reason='invalid_value') [operation_id='readUpload', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--b1\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--b1\r\nContent-Disposition: form-data; name="bonus"\r\n\r\nx\r\n--b1--\r\n', truncated=False, cause=1 validation error for int
  Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value='x', input_type=str]
    For further information visit https://errors.pydantic.dev/<version>/v/int_parsing] invalid_value
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of broken JSON ! DecodeError: DecodeError(status_code=200, operation_id='readUpload', reason='invalid_syntax') [operation_id='readUpload', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--b1\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--b1\r\nContent-Disposition: form-data; name="meta"\r\nContent-Type: application/json\r\n\r\n{\r\n--b1--\r\n', truncated=False, cause=1 validation error for Address
  Invalid JSON: EOF while parsing an object at line 1 column 1 [type=json_invalid, input_value=b'{', input_type=bytes]
    For further information visit https://errors.pydantic.dev/<version>/v/json_invalid] invalid_syntax
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of an address with other codes ! DecodeError: DecodeError(status_code=200, operation_id='readUpload', reason='invalid_value') [operation_id='readUpload', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--b1\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--b1\r\nContent-Disposition: form-data; name="meta"\r\nContent-Type: application/json\r\n\r\n{"codes":["a"]}\r\n--b1--\r\n', truncated=False, cause=1 validation error for Address
codes.0
  Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value='a', input_type=str]
    For further information visit https://errors.pydantic.dev/<version>/v/int_parsing] invalid_value
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of its write-only secret ! DecodeError: DecodeError(status_code=200, operation_id='readUpload', reason='invalid_value') [operation_id='readUpload', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--b1\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--b1\r\nContent-Disposition: form-data; name="secret"\r\n\r\ns\r\n--b1--\r\n', truncated=False, cause=MalformedError('A form-data part carries a member its direction excludes')] invalid_value
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of a draft with its write-only secret = MultipartData(<3 parts>)
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of a part without a name ! DecodeError: DecodeError(status_code=200, operation_id='readUpload', reason='invalid_syntax') [operation_id='readUpload', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--b1\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--b1\r\nContent-Type: text/plain\r\n\r\nx\r\n--b1--\r\n', truncated=False, cause=MalformedError('A form-data part is not declared')] invalid_syntax
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of a photo and another part ! DecodeError: DecodeError(status_code=203, operation_id='readUpload', reason='invalid_syntax') [operation_id='readUpload', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--b1\r\nContent-Disposition: form-data; name="x"\r\n\r\n1\r\n--b1--\r\n', truncated=False, cause=MalformedError('A form-data part is not declared')] invalid_syntax
  > POST https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 626] b'--<boundary>\r\nContent-Disposition: form-data; name="name"\r\n\r\nAda\r\n--<boundary>\r\nContent-Disposition: form-data; name="age"\r\n\r\n36\r\n--<boundary>\r\nContent-Disposition: form-data; name="active"\r\n\r\ntrue\r\n--<boundary>\r\nContent-Disposition: form-data; name="tags"\r\n\r\na\r\n--<boundary>\r\nContent-Disposition: form-data; name="tags"\r\n\r\nb\r\n--<boundary>\r\nContent-Disposition: form-data; name="address"\r\nContent-Type: application/json\r\n\r\n{"city":"London","codes":[1,2]}\r\n--<boundary>--\r\n'
  async profile = None
  > POST https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, transfer-encoding: chunked] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>\r\nContent-Disposition: form-data; name="doc"; filename="doc.txt"\r\nContent-Type: application/octet-stream\r\n\r\ndoc\r\n--<boundary>\r\nContent-Disposition: form-data; name="stream"\r\nContent-Type: application/octet-stream\r\n\r\ns1s2\r\n--<boundary>\r\nContent-Disposition: form-data; name="image"\r\nContent-Type: image/png\r\n\r\n\x00\r\n--<boundary>--\r\n'
  async parts = None
  > POST https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 121] b'--<boundary>\r\nContent-Disposition: form-data; name="a"\r\n\r\n1\r\n--<boundary>--\r\n'
  async body of the other mode = None
  async file with invalid native input ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body.f') [operation_id='submitParts', location=('body', 'f'), body_bytes=b'', truncated=False, cause=TypeError('A multipart file part must be read synchronously: bytes, a binary file object, a path, or an iterable of bytes')] unencodable
  async file part of an async file ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body.f') [operation_id='submitParts', location=('body', 'f'), body_bytes=b'', truncated=False, cause=TypeError('A multipart file part must be read synchronously: bytes, a binary file object, a path, or an iterable of bytes')] unencodable
  async file part of an async iterable ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body.f') [operation_id='submitParts', location=('body', 'f'), body_bytes=b'', truncated=False, cause=TypeError('A multipart file part must be read synchronously: bytes, a binary file object, a path, or an iterable of bytes')] unencodable
  > POST https://forms.example.com/raw
    [host: forms.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 287] b'--<boundary>\r\nContent-Disposition: form-data; name="meta"\r\nContent-Type: application/json\r\n\r\n{"k":1}\r\n--<boundary>\r\nContent-Disposition: form-data; name="f"\r\nContent-Type: application/octet-stream\r\n\r\nraw\r\n--<boundary>--\r\n'
  async raw parts = b'ok'
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, transfer-encoding: chunked] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: application/octet-stream\r\n\r\npng\r\n--<boundary>\r\nContent-Disposition: form-data; name="pages"\r\nContent-Type: application/octet-stream\r\n\r\np1p2\r\n--<boundary>--\r\n'
  async upload = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 264] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>\r\nContent-Disposition: form-data; name="photo"\r\nContent-Type: application/octet-stream\r\n\r\npngpngpng\r\n--<boundary>--\r\n'
  async upload of a path = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 129] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>--\r\n'
  async upload without its photo = None
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  async profile read = ProfilesGetResponse(name='Ada', age=36, score=1.5, ratio=2, active=True, tags=['a', 'b'], address=Address(city='Oslo', codes=[7]), bonus=7)
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  async upload read MultipartData(<9 parts>) DecodedPart(name='title', content_type=None) 'title' None None [('Content-Disposition', 'form-data; name="title"')] 'Notes'; DecodedPart(name='count', content_type=None) 'count' None None [('Content-Disposition', 'form-data; name="count"')] 3; DecodedPart(name='tags', content_type=None) 'tags' None None [('Content-Disposition', 'form-data; name="tags"')] 'a'; DecodedPart(name='tags', content_type=None) 'tags' None None [('Content-Disposition', 'form-data; name="tags"')] 'b'; DecodedPart(name='meta', content_type='application/json') 'meta' None 'application/json' [('Content-Disposition', 'form-data; name="meta"'), ('Content-Type', 'application/json')] Address(city='Oslo', codes=[7]); DecodedPart(name='photo', content_type='image/png') 'photo' 'a.png' 'image/png' [('Content-Disposition', 'form-data; name="photo"; filename="a.png"'), ('Content-Type', 'image/png')] b'\x89PNG'; DecodedPart(name='pages', content_type=None) 'pages' None None [('Content-Disposition', 'form-data; name="pages"')] b'1'; DecodedPart(name='pages', content_type=None) 'pages' None None [('Content-Disposition', 'form-data; name="pages"')] b'2'; DecodedPart(name='bonus', content_type=None) 'bonus' None None [('Content-Disposition', 'form-data; name="bonus"')] 7
  > GET https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/mixed, multipart/form-data] b''
  async parts read MultipartData(<1 parts>) DecodedPart(name='x', content_type=None) 'x' None None [('Content-Disposition', 'form-data; name="x"')] b'1'
# media typing.TypedDict
  > POST https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 626] b'--<boundary>\r\nContent-Disposition: form-data; name="name"\r\n\r\nAda\r\n--<boundary>\r\nContent-Disposition: form-data; name="age"\r\n\r\n36\r\n--<boundary>\r\nContent-Disposition: form-data; name="active"\r\n\r\ntrue\r\n--<boundary>\r\nContent-Disposition: form-data; name="tags"\r\n\r\na\r\n--<boundary>\r\nContent-Disposition: form-data; name="tags"\r\n\r\nb\r\n--<boundary>\r\nContent-Disposition: form-data; name="address"\r\nContent-Type: application/json\r\n\r\n{"city":"London","codes":[1,2]}\r\n--<boundary>--\r\n'
  profile = None
  > POST https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 125] b'--<boundary>\r\nContent-Disposition: form-data; name="name"\r\n\r\nBo\r\n--<boundary>--\r\n'
  profile with its name only = None
  > POST https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 125] b'--<boundary>\r\nContent-Disposition: form-data; name="name"\r\n\r\nBo\r\n--<boundary>--\r\n'
  profile with no tags = None
  > POST https://media.example.com/api/anything
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 155] b'--<boundary>\r\nContent-Disposition: form-data; name="k"\r\nContent-Type: application/json\r\n\r\n[1]\r\n--<boundary>--\r\n'
  free-form object = None
  free-form value that is no object ! DecodeError: DecodeError(operation_id='submitAnything', reason='unencodable', location='body') [operation_id='submitAnything', location=('body',), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A multipart form value must be an object')] unencodable
  > POST https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, transfer-encoding: chunked] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>\r\nContent-Disposition: form-data; name="summary"\r\nContent-Type: text/markdown\r\nX-Trace: t\r\n\r\n# Hi\r\n--<boundary>\r\nContent-Disposition: form-data; name="image"; filename="a%22b%0D%0A.png"\r\nContent-Type: image/png\r\n\r\n\x00\x01\r\n--<boundary>\r\nContent-Disposition: form-data; name="doc"; filename="doc.txt"\r\nContent-Type: application/octet-stream\r\n\r\ndoc\r\n--<boundary>\r\nContent-Disposition: form-data; name="stream"\r\nContent-Type: application/octet-stream\r\n\r\ns1s2\r\n--<boundary>--\r\n'
  streamed parts = None
  > POST https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 244] b'--<boundary>\r\nContent-Disposition: form-data; name="a"\r\n\r\n1\r\n--<boundary>\r\nContent-Disposition: form-data; name="f"\r\nContent-Type: application/octet-stream\r\n\r\nx\r\n--<boundary>--\r\n'
  sized parts = None
  > POST https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 38] b'--<boundary>--\r\n'
  no parts = None
  > POST https://media.example.com/api/attachments
    [host: media.example.com, content-length: 0, accept-encoding: gzip, deflate] b''
  no body = None
  > POST https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 147] b'--<boundary>\r\nContent-Disposition: form-data; name="a"\r\nContent-Type: text/plain\r\n\r\n1\r\n--<boundary>--\r\n'
  part header naming the media type = None
  > POST https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 153] b'--<boundary>\r\nContent-Disposition: form-data; name="a"\r\nContent-Type: not a media type\r\n\r\n1\r\n--<boundary>--\r\n'
  part media type as given = None
  > POST https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 121] b'--<boundary>\r\nContent-Disposition: form-data; name="a"\r\n\r\n1\r\n--<boundary>--\r\n'
  body of the other mode = None
  > POST https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, transfer-encoding: chunked] b'--<boundary>\r\nContent-Disposition: form-data; name="f"\r\nContent-Type: application/octet-stream\r\n\r\naabb\r\n--<boundary>--\r\n'
  file of an empty chunk = None
  > POST https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 132] b'--<boundary>\r\nContent-Disposition: form-data; name="a"\r\nX-T: 1, 2\r\n\r\n1\r\n--<boundary>--\r\n'
  part headers of one name = None
  > POST https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 179] b'--<boundary>\r\nContent-Disposition: form-data; name="f"\r\nContent-Type: image/png\r\nX-Content-Type-Options: nosniff\r\n\r\nx\r\n--<boundary>--\r\n'
  file part header naming a media type in its name = None
  part header on two lines ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body') [operation_id='submitParts', location=('body',), body_bytes=b'', truncated=False, cause=ValueError('Invalid control character in multipart header value.')] unencodable
  part header naming the disposition ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body') [operation_id='submitParts', location=('body',), body_bytes=b'', truncated=False, cause=ValueError("A part's Content-Disposition comes from its name and filename, so its headers may not name it")] unencodable
  file part header that is no token ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body') [operation_id='submitParts', location=('body',), body_bytes=b'', truncated=False, cause=ValueError('Invalid multipart header name.')] unencodable
  part that is no part ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body.?') [operation_id='submitParts', location=('body', '?'), body_bytes=b'', truncated=False, cause=TypeError('A multipart part must be a FieldPart or a FilePart named by a string')] unencodable
  field of an object ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body.a') [operation_id='submitParts', location=('body', 'a'), body_bytes=b'', truncated=False, cause=TypeError('Object of type object is not JSON serializable')] unencodable
  file with invalid native input ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body.f') [operation_id='submitParts', location=('body', 'f'), body_bytes=b'', truncated=False, cause=TypeError('A multipart file part must be read synchronously: bytes, a binary file object, a path, or an iterable of bytes')] unencodable
  file of an async file ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body.f') [operation_id='submitParts', location=('body', 'f'), body_bytes=b'', truncated=False, cause=TypeError('A multipart file part must be read synchronously: bytes, a binary file object, a path, or an iterable of bytes')] unencodable
  file of an async iterable ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body.f') [operation_id='submitParts', location=('body', 'f'), body_bytes=b'', truncated=False, cause=TypeError('A multipart file part must be read synchronously: bytes, a binary file object, a path, or an iterable of bytes')] unencodable
  body that is no multipart body ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body') [operation_id='submitParts', location=('body',), body_bytes=b'', truncated=False, cause=TypeError('A multipart body must be a MultipartBody or an AsyncMultipartBody')] unencodable
  > POST https://forms.example.com/raw
    [host: forms.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 380] b'--<boundary>\r\nContent-Disposition: form-data; name="meta"\r\nContent-Type: application/json\r\n\r\n{"k":[1,"x"]}\r\n--<boundary>\r\nContent-Disposition: form-data; name="count"\r\n\r\n5\r\n--<boundary>\r\nContent-Disposition: form-data; name="f"\r\nContent-Type: application/octet-stream\r\n\r\nraw\r\n--<boundary>--\r\n'
  raw parts = b'ok'
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, transfer-encoding: chunked] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>\r\nContent-Disposition: form-data; name="tags"\r\n\r\na\r\n--<boundary>\r\nContent-Disposition: form-data; name="tags"\r\n\r\nb\r\n--<boundary>\r\nContent-Disposition: form-data; name="meta"\r\nContent-Type: application/json\r\n\r\n{"city":"Oslo","codes":[7]}\r\n--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>\r\nContent-Disposition: form-data; name="pages"\r\nContent-Type: application/octet-stream\r\n\r\n1\r\n--<boundary>\r\nContent-Disposition: form-data; name="pages"\r\nContent-Type: application/octet-stream\r\n\r\n2\r\n--<boundary>\r\nContent-Disposition: form-data; name="bonus"\r\n\r\n7\r\n--<boundary>--\r\n'
  upload = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 262] b'--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>--\r\n'
  upload of its required parts = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 262] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>--\r\n'
  upload of no tags = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 171] b'--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>--\r\n'
  upload without its title = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 171] b'--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>--\r\n'
  upload of an unset title = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 129] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>--\r\n'
  upload without its photo = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 216] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>\r\nContent-Disposition: form-data; name="photo"\r\n\r\nx\r\n--<boundary>--\r\n'
  upload of a photo as a field = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 298] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\nContent-Type: application/octet-stream\r\n\r\nx\r\n--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>--\r\n'
  upload of a title as a file = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 353] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>--\r\n'
  upload of a title twice = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 395] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>--\r\n'
  upload of a photo twice = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 346] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>\r\nContent-Disposition: form-data; name="id"\r\n\r\n1\r\n--<boundary>--\r\n'
  upload of a read-only id = None
  upload of a part without a name ! DecodeError: DecodeError(operation_id='submitUpload', reason='unencodable', location='body.?') [operation_id='submitUpload', location=('body', '?'), body_bytes=b'', truncated=False, cause=TypeError('A multipart part must be a FieldPart or a FilePart named by a string')] unencodable
  > POST https://media.example.com/api/avatars
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 383] b'--<boundary>\r\nContent-Disposition: form-data; name="caption"\r\n\r\nme\r\n--<boundary>\r\nContent-Disposition: form-data; name="avatar"\r\nContent-Type: application/octet-stream\r\n\r\na\r\n--<boundary>\r\nContent-Disposition: form-data; name="style"\r\nContent-Type: application/json\r\n\r\n{"k":[1]}\r\n--<boundary>--\r\n'
  avatar = None
  > POST https://media.example.com/api/avatars
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; profile=v1; boundary=<boundary>, transfer-encoding: chunked] b'--<boundary>\r\nContent-Disposition: form-data; name="caption"\r\n\r\nme\r\n--<boundary>\r\nContent-Disposition: form-data; name="avatar"\r\nContent-Type: application/octet-stream\r\n\r\na\r\n--<boundary>--\r\n'
  avatar of a media type with a profile = None
  > POST https://media.example.com/api/scans
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 380] b'--<boundary>\r\nContent-Disposition: form-data; name="note"\r\n\r\nn\r\n--<boundary>\r\nContent-Disposition: form-data; name="scan-1"\r\nContent-Type: application/octet-stream\r\n\r\n1\r\n--<boundary>\r\nContent-Disposition: form-data; name="scan-2"\r\nContent-Type: application/octet-stream\r\n\r\n2\r\n--<boundary>--\r\n'
  scans = None
  > POST https://media.example.com/api/scans
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 121] b'--<boundary>\r\nContent-Disposition: form-data; name="x"\r\n\r\n1\r\n--<boundary>--\r\n'
  scans of an extra field = None
  > POST https://media.example.com/api/labels
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 254] b'--<boundary>\r\nContent-Disposition: form-data; name="sheet"\r\nContent-Type: application/octet-stream\r\n\r\ns\r\n--<boundary>\r\nContent-Disposition: form-data; name="color"\r\n\r\nred\r\n--<boundary>--\r\n'
  labels = None
  > POST https://media.example.com/api/photos
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 171] b'--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>--\r\n'
  photos = None
  > POST https://media.example.com/api/photos
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 293] b'--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--<boundary>\r\nContent-Disposition: form-data; name="x"\r\nContent-Type: application/octet-stream\r\n\r\n\r\n--<boundary>--\r\n'
  photos of an extra part = None
  > POST https://media.example.com/api/covers
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 835] b'--<boundary>\r\nContent-Disposition: form-data; name="note"\r\nContent-Type: text/plain; charset=utf-16\r\nX-Trace: t1\r\n\r\n\xff\xfeh\x00\xe9\x00l\x00l\x00o\x00\r\n--<boundary>\r\nContent-Disposition: form-data; name="size"\r\nContent-Type: application/json\r\n\r\n3\r\n--<boundary>\r\nContent-Disposition: form-data; name="meta"\r\nContent-Type: application/vnd.meta+json\r\nX-Meta: 1\r\n\r\n{"city":"Oslo"}\r\n--<boundary>\r\nContent-Disposition: form-data; name="extra"\r\nContent-Type: text/plain\r\n\r\n7\r\n--<boundary>\r\nContent-Disposition: form-data; name="cover"\r\nContent-Type: image/png\r\nX-Rate-Limit: 5\r\n\r\n\x89PNG\r\n--<boundary>\r\nContent-Disposition: form-data; name="scans"; filename="g.gif"\r\nContent-Type: image/gif\r\n\r\ng\r\n--<boundary>--\r\n'
  cover = None
  > POST https://media.example.com/api/covers
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 301] b'--<boundary>\r\nContent-Disposition: form-data; name="note"\r\nContent-Type: text/plain; charset=utf-16\r\n\r\n\xff\xfeh\x00i\x00\r\n--<boundary>\r\nContent-Disposition: form-data; name="cover"\r\nContent-Type: image/jpeg\r\nX-Rate-Limit: 5\r\n\r\nj\r\n--<boundary>--\r\n'
  cover of a note in plain text = None
  cover of a note in JSON ! DecodeError: DecodeError(operation_id='submitCover', reason='unencodable', location='body.note') [operation_id='submitCover', location=('body', 'note'), body_bytes=b'', truncated=False, cause=ParameterEncodingError("A part's media type must fall within its member's encoding")] unencodable
  cover in text ! DecodeError: DecodeError(operation_id='submitCover', reason='unencodable', location='body.cover') [operation_id='submitCover', location=('body', 'cover'), body_bytes=b'', truncated=False, cause=ParameterEncodingError("A part's media type must fall within its member's encoding")] unencodable
  cover of a scan without its media type ! DecodeError: DecodeError(operation_id='submitCover', reason='unencodable', location='body.scans') [operation_id='submitCover', location=('body', 'scans'), body_bytes=b'', truncated=False, cause=ParameterEncodingError("A part's media type must fall within its member's encoding")] unencodable
  cover of an object as text ! DecodeError: DecodeError(operation_id='submitCover', reason='unencodable', location='body.extra') [operation_id='submitCover', location=('body', 'extra'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A text part carries a scalar')] unencodable
  cover of a note its charset cannot represent ! DecodeError: DecodeError(operation_id='submitCover', reason='unencodable', location='body.note') [operation_id='submitCover', location=('body', 'note'), body_bytes=b'', truncated=False, cause=ParameterEncodingError("The text cannot be represented in its media type's charset")] unencodable
  > POST https://media.example.com/api/covers
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 302] b'--<boundary>\r\nContent-Disposition: form-data; name="cover"\r\nContent-Type: image/png\r\nX-Rate-Limit: 5\r\n\r\n\x89PNG\r\n--<boundary>\r\nContent-Disposition: form-data; name="extra"\r\nContent-Type: text/plain; charset=utf-16\r\n\r\n\xff\xfe7\x00\r\n--<boundary>--\r\n'
  cover of an extra in UTF-16 text = None
  > POST https://media.example.com/api/cards
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 557] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\nContent-Type: text/plain; charset=utf-16\r\n\r\n\xff\xfeh\x00\xe9\x00l\x00l\x00o\x00\r\n--<boundary>\r\nContent-Disposition: form-data; name="count"\r\nContent-Type: application/json\r\n\r\n2\r\n--<boundary>\r\nContent-Disposition: form-data; name="tags"\r\nContent-Type: text/plain; charset=us-ascii\r\n\r\na\r\n--<boundary>\r\nContent-Disposition: form-data; name="tags"\r\nContent-Type: text/plain; charset=us-ascii\r\n\r\nb\r\n--<boundary>--\r\n'
  card = None
  card of a tag its charset cannot represent ! DecodeError: DecodeError(operation_id='submitCard', reason='unencodable', location='body') [operation_id='submitCard', location=('body',), body_bytes=b'', truncated=False, cause=ParameterEncodingError("The text cannot be represented in its media type's charset")] unencodable
  > POST https://media.example.com/api/stickers
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 745] b'--<boundary>\r\nContent-Disposition: form-data; name="tags"\r\n\r\na&b|c\r\n--<boundary>\r\nContent-Disposition: form-data; name="words"\r\n\r\nx y\r\n--<boundary>\r\nContent-Disposition: form-data; name="sizes"\r\n\r\n1,2\r\n--<boundary>\r\nContent-Disposition: form-data; name="filter"\r\n\r\nname,n m,min,2\r\n--<boundary>\r\nContent-Disposition: form-data; name="x"\r\n\r\n1\r\n--<boundary>\r\nContent-Disposition: form-data; name="z"\r\n\r\n3\r\n--<boundary>\r\nContent-Disposition: form-data; name="label"\r\n\r\nl/1\r\n--<boundary>\r\nContent-Disposition: form-data; name="y"\r\n\r\n4\r\n--<boundary>--\r\n'
  stickers = None
  > POST https://media.example.com/api/stickers
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 38] b'--<boundary>--\r\n'
  stickers of no tags and no filter = None
  stickers of a point whose extra is named as another member ! DecodeError: DecodeError(operation_id='submitStickers', reason='unencodable', location='body') [operation_id='submitStickers', location=('body',), body_bytes=b'', truncated=False, cause=ParameterEncodingError('Two form-data members write parts of the same name')] unencodable
  stickers of another member named as a point's extra ! DecodeError: DecodeError(operation_id='submitStickers', reason='unencodable', location='body') [operation_id='submitStickers', location=('body',), body_bytes=b'', truncated=False, cause=ParameterEncodingError('Two form-data members write parts of the same name')] unencodable
  stickers of a point's extra named as a later styled member ! DecodeError: DecodeError(operation_id='submitStickers', reason='unencodable', location='body') [operation_id='submitStickers', location=('body',), body_bytes=b'', truncated=False, cause=ParameterEncodingError('Two form-data members write parts of the same name')] unencodable
  stickers of a tag holding its delimiter ! DecodeError: DecodeError(operation_id='submitStickers', reason='unencodable', location='body') [operation_id='submitStickers', location=('body',), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A delimited query value cannot contain its own delimiter')] unencodable
  > POST https://media.example.com/api/albums
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 300] b'--<boundary>\r\nContent-Disposition: form-data; name="photo"\r\nContent-Type: application/octet-stream\r\n\r\np\r\n--<boundary>\r\nContent-Disposition: form-data; name="tags"\r\nContent-Type: text/plain; charset=utf-16\r\n\r\n\xff\xfex\x00 \x00y\x00\r\n--<boundary>--\r\n'
  album of UTF-16 tags = None
  > POST https://media.example.com/api/albums
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 506] b'--<boundary>\r\nContent-Disposition: form-data; name="photo"\r\nContent-Type: application/octet-stream\r\n\r\np\r\n--<boundary>\r\nContent-Disposition: form-data; name="tags"\r\n\r\na b\r\n--<boundary>\r\nContent-Disposition: form-data; name="w"\r\n\r\n1\r\n--<boundary>\r\nContent-Disposition: form-data; name="h"\r\n\r\n2\r\n--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nt\r\n--<boundary>--\r\n'
  album = None
  > POST https://media.example.com/api/albums
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 252] b'--<boundary>\r\nContent-Disposition: form-data; name="photo"\r\nContent-Type: application/octet-stream\r\n\r\np\r\n--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\n1\r\n--<boundary>--\r\n'
  album of an omitted title beside a bound's extra of its name = None
  > POST https://media.example.com/api/albums
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 339] b'--<boundary>\r\nContent-Disposition: form-data; name="photo"\r\nContent-Type: application/octet-stream\r\n\r\np\r\n--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\n1\r\n--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nt\r\n--<boundary>--\r\n'
  album of bounds whose extra is named as another member = None
  > POST https://media.example.com/api/albums
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 339] b'--<boundary>\r\nContent-Disposition: form-data; name="photo"\r\nContent-Type: application/octet-stream\r\n\r\np\r\n--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nt\r\n--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\n1\r\n--<boundary>--\r\n'
  album of another member named as a bound's extra = None
  album of a tag holding its delimiter ! DecodeError: DecodeError(operation_id='submitAlbum', reason='unencodable', location='body.tags') [operation_id='submitAlbum', location=('body', 'tags'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A delimited query value cannot contain its own delimiter')] unencodable
  album of tags their named charset cannot represent ! DecodeError: DecodeError(operation_id='submitAlbum', reason='unencodable', location='body.tags') [operation_id='submitAlbum', location=('body', 'tags'), body_bytes=b'', truncated=False, cause=ParameterEncodingError("The text cannot be represented in its media type's charset")] unencodable
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read = {'name': 'Ada', 'age': 36, 'score': 1.5, 'ratio': 2, 'active': True, 'tags': ['a', 'b'], 'address': {'city': 'Oslo', 'codes': [7]}, 'bonus': 7}
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read with a quoted boundary = {'name': 'Ada'}
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read without a boundary ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_framing') [operation_id='readProfile', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="name"\r\n\r\nAda\r\n--b1--\r\n', truncated=False, cause=ValueError('A multipart body must hold its boundary and parts with headers, each part ending at the next boundary')] invalid_framing
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of another boundary ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_framing') [operation_id='readProfile', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="name"\r\n\r\nAda\r\n--b1--\r\n', truncated=False, cause=ValueError('A multipart body must hold its boundary and parts with headers, each part ending at the next boundary')] invalid_framing
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read with a preamble, padding, and an epilogue = {'name': 'Ada'}
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of a boundary mid-line = {'name': 'Ada'}
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of a part off its line ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_framing') [operation_id='readProfile', body_bytes=b'--b1 x\r\n\r\n--b1--\r\n', truncated=False, cause=ValueError('A multipart body must hold its boundary and parts with headers, each part ending at the next boundary')] invalid_framing
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read that ends at its boundary ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_framing') [operation_id='readProfile', body_bytes=b'--b1', truncated=False, cause=ValueError('A multipart body must hold its boundary and parts with headers, each part ending at the next boundary')] invalid_framing
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of an unterminated part ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_framing') [operation_id='readProfile', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="name"\r\n\r\nAda', truncated=False, cause=ValueError('A multipart body must hold its boundary and parts with headers, each part ending at the next boundary')] invalid_framing
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of a header without a colon ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_framing') [operation_id='readProfile', body_bytes=b'--b1\r\nBroken\r\n\r\nx\r\n--b1--\r\n', truncated=False, cause=ValueError('A multipart body must hold its boundary and parts with headers, each part ending at the next boundary')] invalid_framing
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of a part without a name ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_syntax') [operation_id='readProfile', body_bytes=b'--b1\r\nContent-Type: text/plain\r\n\r\nx\r\n--b1--\r\n', truncated=False, cause=MalformedError('A form-data part has no name')] invalid_syntax
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of a name twice ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_syntax') [operation_id='readProfile', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="name"\r\n\r\nAda\r\n--b1\r\nContent-Disposition: form-data; name="name"\r\n\r\nAda\r\n--b1--\r\n', truncated=False, cause=MalformedError('A form-data body repeats a single-valued member')] invalid_syntax
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of a null address twice ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_syntax') [operation_id='readProfile', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="name"\r\n\r\nAda\r\n--b1\r\nContent-Disposition: form-data; name="address"\r\nContent-Type: application/json\r\n\r\nnull\r\n--b1\r\nContent-Disposition: form-data; name="address"\r\nContent-Type: application/json\r\n\r\nnull\r\n--b1--\r\n', truncated=False, cause=MalformedError('A form-data body repeats a single-valued member')] invalid_syntax
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of an extra that is no integer ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_value') [operation_id='readProfile', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="name"\r\n\r\nAda\r\n--b1\r\nContent-Disposition: form-data; name="bonus"\r\n\r\nx\r\n--b1--\r\n', truncated=False, cause=ValueError("Invalid integer literal: 'x'")] invalid_value
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of broken JSON ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_syntax') [operation_id='readProfile', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="name"\r\n\r\nAda\r\n--b1\r\nContent-Disposition: form-data; name="address"\r\n\r\n{\r\n--b1--\r\n', truncated=False, cause=JSONDecodeError('Expecting property name enclosed in double quotes: line 1 column 2 (char 1)')] invalid_syntax
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of text that is not UTF-8 ! DecodeError: DecodeError(status_code=200, operation_id='readProfile', reason='invalid_syntax') [operation_id='readProfile', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="name"\r\n\r\n\xff\r\n--b1--\r\n', truncated=False, cause=UnicodeDecodeError('utf-8', b'\xff', 0, 1, 'invalid start byte')] invalid_syntax
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of Latin-1 text = {'name': 'café'}
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of UTF-16 text = {'name': 'café'}
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read without its name = {'age': 36}
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  profile read of deeply nested parts DecodeError notes []
  > GET https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/mixed, multipart/form-data] b''
  > GET https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/mixed, multipart/form-data] b''
  parts read MultipartData(<7 parts>) DecodedPart(name=None, content_type='text/plain') None 'a"b.txt' 'text/plain' [('Content-Disposition', 'attachment; filename="a\\"b.txt"'), ('Content-Type', 'text/plain'), ('X-Trace', 't')] b'one'; DecodedPart(name=None, content_type=None) None None None [] b'\x00two\r\n\r\n'; DecodedPart(name='third', content_type=None) 'third' 'x; name=y' None [('Content-Disposition', 'form-data; filename="x; name=y"; name=third; filename=plain.bin')] b'3'; DecodedPart(name=None, content_type=None) None None None [('X-Only', '1')] b''; DecodedPart(name=None, content_type=None) None 'café.txt' None [('Content-Disposition', 'attachment; filename="café.txt"')] b'4'; DecodedPart(name=None, content_type=None) None None None [('X-Bare', '2')] b''; DecodedPart(name=None, content_type=None) None None None [] b''
  parts read again: True True True True False False False
  > GET https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/mixed, multipart/form-data] b''
  parts read of a body without its boundary ! DecodeError: DecodeError(status_code=200, operation_id='readParts', reason='invalid_framing') [operation_id='readParts', body_bytes=b'not multipart', truncated=False, cause=ValueError('A multipart body must hold its boundary and parts with headers, each part ending at the next boundary')] invalid_framing
  > GET https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/mixed, multipart/form-data] b''
  stored id read = {'id': 4}
  > GET https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/mixed, multipart/form-data] b''
  stored id read of an extra part = {'id': 4, 'x': '1'}
  > GET https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/mixed, multipart/form-data] b''
  stored id read of a repeated extra part = {'id': 4, 'x': '2'}
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read MultipartData(<9 parts>) DecodedPart(name='title', content_type=None) 'title' None None [('Content-Disposition', 'form-data; name="title"')] 'Notes'; DecodedPart(name='count', content_type=None) 'count' None None [('Content-Disposition', 'form-data; name="count"')] 3; DecodedPart(name='tags', content_type=None) 'tags' None None [('Content-Disposition', 'form-data; name="tags"')] 'a'; DecodedPart(name='tags', content_type=None) 'tags' None None [('Content-Disposition', 'form-data; name="tags"')] 'b'; DecodedPart(name='meta', content_type='application/json') 'meta' None 'application/json' [('Content-Disposition', 'form-data; name="meta"'), ('Content-Type', 'application/json')] {'city': 'Oslo', 'codes': [7]}; DecodedPart(name='photo', content_type='image/png') 'photo' 'a.png' 'image/png' [('Content-Disposition', 'form-data; name="photo"; filename="a.png"'), ('Content-Type', 'image/png')] b'\x89PNG'; DecodedPart(name='pages', content_type=None) 'pages' None None [('Content-Disposition', 'form-data; name="pages"')] b'1'; DecodedPart(name='pages', content_type=None) 'pages' None None [('Content-Disposition', 'form-data; name="pages"')] b'2'; DecodedPart(name='bonus', content_type=None) 'bonus' None None [('Content-Disposition', 'form-data; name="bonus"')] 7
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of its required parts MultipartData(<2 parts>) DecodedPart(name='photo', content_type='image/png') 'photo' 'a.png' 'image/png' [('Content-Disposition', 'form-data; name="photo"; filename="a.png"'), ('Content-Type', 'image/png')] b'\x89PNG'; DecodedPart(name='title', content_type=None) 'title' None None [('Content-Disposition', 'form-data; name="title"')] 'Notes'
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of scans MultipartData(<3 parts>) DecodedPart(name='note', content_type=None) 'note' None None [('Content-Disposition', 'form-data; name="note"')] 'n'; DecodedPart(name='scan-1', content_type=None) 'scan-1' None None [('Content-Disposition', 'form-data; name="scan-1"')] b'1'; DecodedPart(name='scan-2', content_type=None) 'scan-2' None None [('Content-Disposition', 'form-data; name="scan-2"')] b'2'
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of a photo and parts of any name MultipartData(<3 parts>) DecodedPart(name='photo', content_type='image/png') 'photo' 'a.png' 'image/png' [('Content-Disposition', 'form-data; name="photo"; filename="a.png"'), ('Content-Type', 'image/png')] b'\x89PNG'; DecodedPart(name='x', content_type=None) 'x' None None [('Content-Disposition', 'form-data; name="x"')] b'1'; DecodedPart(name='x', content_type=None) 'x' None None [('Content-Disposition', 'form-data; name="x"')] b'{}'
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of a photo alone MultipartData(<1 parts>) DecodedPart(name='photo', content_type='image/png') 'photo' 'a.png' 'image/png' [('Content-Disposition', 'form-data; name="photo"; filename="a.png"'), ('Content-Type', 'image/png')] b'\x89PNG'
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read without its photo ! DecodeError: DecodeError(status_code=200, operation_id='readUpload', reason='invalid_value') [operation_id='readUpload', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--b1--\r\n', truncated=False, cause=MalformedError('A required form-data member has no part')] invalid_value
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of a title twice ! DecodeError: DecodeError(status_code=200, operation_id='readUpload', reason='invalid_syntax') [operation_id='readUpload', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--b1\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--b1\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--b1--\r\n', truncated=False, cause=MalformedError('A form-data body repeats a single-valued member')] invalid_syntax
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of title text that is not UTF-8 ! DecodeError: DecodeError(status_code=200, operation_id='readUpload', reason='invalid_syntax') [operation_id='readUpload', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="title"\r\n\r\n\xff\r\n--b1\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--b1--\r\n', truncated=False, cause=UnicodeDecodeError('utf-8', b'\xff', 0, 1, 'invalid start byte')] invalid_syntax
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of a count that is no integer ! DecodeError: DecodeError(status_code=200, operation_id='readUpload', reason='invalid_value') [operation_id='readUpload', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--b1\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--b1\r\nContent-Disposition: form-data; name="count"\r\n\r\nx\r\n--b1--\r\n', truncated=False, cause=ValueError("Invalid integer literal: 'x'")] invalid_value
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of an extra that is no integer ! DecodeError: DecodeError(status_code=200, operation_id='readUpload', reason='invalid_value') [operation_id='readUpload', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--b1\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--b1\r\nContent-Disposition: form-data; name="bonus"\r\n\r\nx\r\n--b1--\r\n', truncated=False, cause=ValueError("Invalid integer literal: 'x'")] invalid_value
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of broken JSON ! DecodeError: DecodeError(status_code=200, operation_id='readUpload', reason='invalid_syntax') [operation_id='readUpload', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--b1\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--b1\r\nContent-Disposition: form-data; name="meta"\r\nContent-Type: application/json\r\n\r\n{\r\n--b1--\r\n', truncated=False, cause=JSONDecodeError('Expecting property name enclosed in double quotes: line 1 column 2 (char 1)')] invalid_syntax
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of an address with other codes = MultipartData(<3 parts>)
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of its write-only secret ! DecodeError: DecodeError(status_code=200, operation_id='readUpload', reason='invalid_value') [operation_id='readUpload', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--b1\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--b1\r\nContent-Disposition: form-data; name="secret"\r\n\r\ns\r\n--b1--\r\n', truncated=False, cause=MalformedError('A form-data part carries a member its direction excludes')] invalid_value
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of a draft with its write-only secret = MultipartData(<3 parts>)
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of a part without a name ! DecodeError: DecodeError(status_code=200, operation_id='readUpload', reason='invalid_syntax') [operation_id='readUpload', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--b1\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--b1\r\nContent-Type: text/plain\r\n\r\nx\r\n--b1--\r\n', truncated=False, cause=MalformedError('A form-data part is not declared')] invalid_syntax
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  upload read of a photo and another part ! DecodeError: DecodeError(status_code=203, operation_id='readUpload', reason='invalid_syntax') [operation_id='readUpload', body_bytes=b'--b1\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: image/png\r\n\r\n\x89PNG\r\n--b1\r\nContent-Disposition: form-data; name="x"\r\n\r\n1\r\n--b1--\r\n', truncated=False, cause=MalformedError('A form-data part is not declared')] invalid_syntax
  > POST https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 626] b'--<boundary>\r\nContent-Disposition: form-data; name="name"\r\n\r\nAda\r\n--<boundary>\r\nContent-Disposition: form-data; name="age"\r\n\r\n36\r\n--<boundary>\r\nContent-Disposition: form-data; name="active"\r\n\r\ntrue\r\n--<boundary>\r\nContent-Disposition: form-data; name="tags"\r\n\r\na\r\n--<boundary>\r\nContent-Disposition: form-data; name="tags"\r\n\r\nb\r\n--<boundary>\r\nContent-Disposition: form-data; name="address"\r\nContent-Type: application/json\r\n\r\n{"city":"London","codes":[1,2]}\r\n--<boundary>--\r\n'
  async profile = None
  > POST https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, transfer-encoding: chunked] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>\r\nContent-Disposition: form-data; name="doc"; filename="doc.txt"\r\nContent-Type: application/octet-stream\r\n\r\ndoc\r\n--<boundary>\r\nContent-Disposition: form-data; name="stream"\r\nContent-Type: application/octet-stream\r\n\r\ns1s2\r\n--<boundary>\r\nContent-Disposition: form-data; name="image"\r\nContent-Type: image/png\r\n\r\n\x00\r\n--<boundary>--\r\n'
  async parts = None
  > POST https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 121] b'--<boundary>\r\nContent-Disposition: form-data; name="a"\r\n\r\n1\r\n--<boundary>--\r\n'
  async body of the other mode = None
  async file with invalid native input ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body.f') [operation_id='submitParts', location=('body', 'f'), body_bytes=b'', truncated=False, cause=TypeError('A multipart file part must be read synchronously: bytes, a binary file object, a path, or an iterable of bytes')] unencodable
  async file part of an async file ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body.f') [operation_id='submitParts', location=('body', 'f'), body_bytes=b'', truncated=False, cause=TypeError('A multipart file part must be read synchronously: bytes, a binary file object, a path, or an iterable of bytes')] unencodable
  async file part of an async iterable ! DecodeError: DecodeError(operation_id='submitParts', reason='unencodable', location='body.f') [operation_id='submitParts', location=('body', 'f'), body_bytes=b'', truncated=False, cause=TypeError('A multipart file part must be read synchronously: bytes, a binary file object, a path, or an iterable of bytes')] unencodable
  > POST https://forms.example.com/raw
    [host: forms.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 287] b'--<boundary>\r\nContent-Disposition: form-data; name="meta"\r\nContent-Type: application/json\r\n\r\n{"k":1}\r\n--<boundary>\r\nContent-Disposition: form-data; name="f"\r\nContent-Type: application/octet-stream\r\n\r\nraw\r\n--<boundary>--\r\n'
  async raw parts = b'ok'
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, transfer-encoding: chunked] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>\r\nContent-Disposition: form-data; name="photo"; filename="a.png"\r\nContent-Type: application/octet-stream\r\n\r\npng\r\n--<boundary>\r\nContent-Disposition: form-data; name="pages"\r\nContent-Type: application/octet-stream\r\n\r\np1p2\r\n--<boundary>--\r\n'
  async upload = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 264] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>\r\nContent-Disposition: form-data; name="photo"\r\nContent-Type: application/octet-stream\r\n\r\npngpngpng\r\n--<boundary>--\r\n'
  async upload of a path = None
  > POST https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, content-type: multipart/form-data; boundary=<boundary>, content-length: 129] b'--<boundary>\r\nContent-Disposition: form-data; name="title"\r\n\r\nNotes\r\n--<boundary>--\r\n'
  async upload without its photo = None
  > GET https://media.example.com/api/profiles
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  async profile read = {'name': 'Ada', 'age': 36, 'score': 1.5, 'ratio': 2, 'active': True, 'tags': ['a', 'b'], 'address': {'city': 'Oslo', 'codes': [7]}, 'bonus': 7}
  > GET https://media.example.com/api/uploads
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/form-data] b''
  async upload read MultipartData(<9 parts>) DecodedPart(name='title', content_type=None) 'title' None None [('Content-Disposition', 'form-data; name="title"')] 'Notes'; DecodedPart(name='count', content_type=None) 'count' None None [('Content-Disposition', 'form-data; name="count"')] 3; DecodedPart(name='tags', content_type=None) 'tags' None None [('Content-Disposition', 'form-data; name="tags"')] 'a'; DecodedPart(name='tags', content_type=None) 'tags' None None [('Content-Disposition', 'form-data; name="tags"')] 'b'; DecodedPart(name='meta', content_type='application/json') 'meta' None 'application/json' [('Content-Disposition', 'form-data; name="meta"'), ('Content-Type', 'application/json')] {'city': 'Oslo', 'codes': [7]}; DecodedPart(name='photo', content_type='image/png') 'photo' 'a.png' 'image/png' [('Content-Disposition', 'form-data; name="photo"; filename="a.png"'), ('Content-Type', 'image/png')] b'\x89PNG'; DecodedPart(name='pages', content_type=None) 'pages' None None [('Content-Disposition', 'form-data; name="pages"')] b'1'; DecodedPart(name='pages', content_type=None) 'pages' None None [('Content-Disposition', 'form-data; name="pages"')] b'2'; DecodedPart(name='bonus', content_type=None) 'bonus' None None [('Content-Disposition', 'form-data; name="bonus"')] 7
  > GET https://media.example.com/api/attachments
    [host: media.example.com, accept-encoding: gzip, deflate, accept: multipart/mixed, multipart/form-data] b''
  async parts read MultipartData(<1 parts>) DecodedPart(name='x', content_type=None) 'x' None None [('Content-Disposition', 'form-data; name="x"')] b'1'
