  
      def __eq__(self, other):
          if self._data.keys() != other._data.keys():
              return False
          for key in self._data.keys():
              if self._data[key] != other._data[key]:
                  return False
          return True
  
  
 
</s> remove         for key in self.params.keys():
 </s> add         for key in self.params: </s> remove         columns = [key for key in header.keys() if key != 'url']
        details = [key for key in header.keys() if key != 'url']
 </s> add         columns = [key for key in header if key != 'url']
        details = [key for key in header if key != 'url'] </s> remove         for key in kwargs.keys():
 </s> add         for key in kwargs: </s> remove         elif not self.params or list(self.params.keys()) == ['q']:
 </s> add         elif not self.params or list(self.params) == ['q']: </s> remove     return [ret[item] for item in sorted(ret.keys())]
 </s> add     return [ret[item] for item in sorted(ret)]
        for key in self._data:
  
      def __eq__(self, other):
          if self._data.keys() != other._data.keys():
              return False
        for key in self._data:
              if self._data[key] != other._data[key]:
                  return False
          return True
  
  
keep keep keep keep replace keep keep keep keep keep
 Perfer iter(dict) over iter(dict.keys()) (#5736)

Calling dict.keys() is unnecessary. The two are functionally equivalent
on modern Pythons.

Inspired by Lennart Regebro's talk "Prehistoric Patterns in Python" from
PyCon 2017.

https://www.youtube.com/watch?v=V5-JH23Vk0I 
tests/test_serializer_lists.py