code: def from_key_val_list(value):
      
      if value is None:
          return None
  
      if isinstance(value, (str, bytes, bool, int)):
          raise ValueError('cannot encode objects that are not 2-tuples')
  
      return OrderedDict(value)
docs: Take an object and test to see if it can be represented as a
      dictionary. Unless it can not be represented as such, return an
      OrderedDict, e.g.,
  
      ::
  
          >>> from_key_val_list([('key', 'val')])
          OrderedDict([('key', 'val')])
          >>> from_key_val_list('string')
          ValueError: cannot encode objects that are not 2-tuples
          >>> from_key_val_list({'key': 'val'})
          OrderedDict([('key', 'val')])
  
      :rtype: OrderedDict