docs: def file_iterator(filehandle, verbose=False):
    """Iterate over a file and yield stripped lines. Optionally show progress."""
    if type(filehandle).__name__ == "str":
      filehandle = open(filehandle)
    if verbose:
      try:
        pind = ProgressIndicator(totalToDo=os.path.getsize(filehandle.name),
                                 messagePrefix="completed",
                                 messageSuffix="of processing " +
                                               filehandle.name)
      except AttributeError:
        sys.stderr.write("BEDIterator -- warning: " +
                         "unable to show progress for stream")
        verbose = False
  
    for line in filehandle:
      # chomp just the newline char, leave eveerything else alone, so we can
      # handle empty columns in the first and last positions
      line = line.rstrip('\n')
  
      if verbose:
        pind.done = filehandle.tell()
        pind.showProgress()
      if line == "":
        continue
      yield line