def extract_params(raw):
 if (isinstance(raw, bytes_type) or isinstance(raw, unicode_type)):
  try:
   params = urldecode(raw)
  except ValueError:
   params = None
 elif hasattr(raw, u'__iter__'):
  try:
   dict(raw)
  except ValueError:
   params = None
  except TypeError:
   params = None
  else:
   params = list((raw.items() if isinstance(raw, dict) else raw))
   params = decode_params_utf8(params)
 else:
  params = None
 return params

def extract_params ( raw ) : if ( isinstance ( raw , bytes_type ) or isinstance ( raw , unicode_type ) ) : try : params = urldecode ( raw ) except ValueError : params = None elif hasattr ( raw , u'__iter__' ) : try : dict ( raw ) except ValueError : params = None except TypeError : params = None else : params = list ( ( raw . items ( ) if isinstance ( raw , dict ) else raw ) ) params = decode_params_utf8 ( params ) else : params = None return params
extract request params .