code: def mill(it, label='', hide=None, expected_size=None, every=1):
      
  
      def _mill_char(_i):
          if _i >= count:
              return ' '
          else:
              return MILL_CHARS[(_i // every) % len(MILL_CHARS)]
  
      def _show(_i):
          if not hide:
              if ((_i % every) == 0 or         # True every "every" updates
                  (_i == count)):            # And when we're done
  
                  STREAM.write(MILL_TEMPLATE % (
                      label, _mill_char(_i), _i, count))
                  STREAM.flush()
  
      count = len(it) if expected_size is None else expected_size
  
      if count:
          _show(0)
  
      for i, item in enumerate(it):
          yield item
          _show(i + 1)
  
      if not hide:
          STREAM.write('\n')
          STREAM.flush()
docs: Progress iterator. Prints a mill while iterating over the items.