code: def __iter__(self):
      can_acquire = self._access_lock.acquire(blocking=False)
      if not can_acquire:
          raise Exception("Concurrent iteration not supported")
      self.file.seek(0)
      try:
          words, labels = [], []
          for line in self.file.readlines():
              line = line.strip()
              tok = line.split(self.delimiter)
              if not line:
                  assert len(words) == len(labels)
                  if words:
                      yield {
                          "text": words,
                          "label": labels,
                          "language": self.language,
                      }
                      words, labels = [], []
              elif len(tok) == 2:
                  word, label = tok
                  words.append(word)
                  labels.append(label)
          if len(words) == len(labels) and words:
              yield {
                  "text": words,
                  "label": labels,
                  "language": self.language,
              }
      finally:
          self._access_lock.release()
  
file_path: pytext/pytext/data/sources/conllu.py
imports: import threading
  from typing import Dict, List, Optional, Type
  from pytext.data.sources.data_source import RootDataSource, SafeFileWrapper
label_desc: Use image node_id 2 for calling the CoNLLUNERFile obj's underlying member method code with example usage: obj.__iter__() without return types