code: def _get_subcounters(self, elapsed):
          
  
          fields = {}
          subcounters = []
  
          for num, subcounter in enumerate(self._subcounters, 1):
  
              if self.total:
                  subPercentage = subcounter.count / float(self.total)
              else:
                  subPercentage = 0.0
  
              # Save in tuple: count, percentage, color
              subcounters.append((subcounter, subPercentage))
  
              # Set fields
              fields['percentage_{0}'.format(num)] = subPercentage * 100
              fields['count_{0}'.format(num)] = subcounter.count
  
              if subcounter.all_fields:
  
                  interations = abs(subcounter.count - subcounter.start_count)
  
                  if elapsed:
                      # Use float to force to float in Python 2
                      rate = fields['rate_{0}'.format(num)] = interations / float(elapsed)
                  else:
                      rate = fields['rate_{0}'.format(num)] = 0.0
  
                  if self.total == 0:
                      fields['eta_{0}'.format(num)] = u'00:00'
                  elif rate:
                      fields['eta_{0}'.format(num)] = _format_time((self.total - interations) / rate)
                  else:
                      fields['eta_{0}'.format(num)] = u'?'
  
          return subcounters, fields
docs: Args:
              elapsed(float): Time since started.
  
          Returns:
              :py:class:`tuple`: list of subcounters and dictionary of additional fields
  
          Each subcounter in the list will be in a tuple of (subcounter, percentage)
          Fields in the dictionary are addressed in the Format documentation of this class