code: def parse_content_disposition_header(value):
      
      disp_header = ContentDisposition()
      if not value:
          disp_header.defects.append(errors.HeaderMissingRequiredValue(
              "Missing content disposition"))
          return disp_header
      try:
          token, value = get_token(value)
      except errors.HeaderParseError:
          ctype.defects.append(errors.InvalidHeaderDefect(
              "Expected content disposition but found {!r}".format(value)))
          _find_mime_parameters(disp_header, value)
          return disp_header
      disp_header.append(token)
      disp_header.content_disposition = token.value.strip().lower()
      if not value:
          return disp_header
      if value[0] != ';':
          disp_header.defects.append(errors.InvalidHeaderDefect(
              "Only parameters are valid after content disposition, but "
              "found {!r}".format(value)))
          _find_mime_parameters(disp_header, value)
          return disp_header
      disp_header.append(ValueTerminal(';', 'parameter-separator'))
      disp_header.append(parse_mime_parameters(value[1:]))
      return disp_header
docs: disposition-type *( ";" parameter )