code: def _next_impl(self):
      # Skip empty rows.
      row = six.next(self.reader)
      while row == []:
          row = six.next(self.reader)
  
      # Check that the row has the right number of columns.
      assert len(self.__fieldNames) == len(
          row
      ), "Expected columns: %s. Actual columns: %s" % (
          self.__fieldNames,
          list(row.keys()),
      )
  
      # Copy the row values into the dict.
      for i in xrange(len(self.__fieldNames)):
          self.__dict[self.__fieldNames[i]] = row[i]
  
      return self.__dict
  
file_path: pyalgotrade/pyalgotrade/utils/csvutils.py
imports: import csv
  import logging
  import six
  from six.moves import xrange
  import requests
label_desc: Use image node_id 2 for calling the FastDictReader obj's underlying member method code with example usage: obj._next_impl() and returns: self