code: def _ft_subiterator(
      nl,
      vi,
      ft_feature,
      dt_unit,
      coldtypedic,
      transfer_features,
      pairs,
      max_pairs,
      verboseprint,
  ):
      # iterate through node indices
      c = 0
      eik_list = []
      pos_array, n_steps = _pos_array(0, pairs, max_pairs)
      for from_pos, to_pos in pos_array:
          verboseprint("subiteration {} of {}".format(c + 1, n_steps))
          c += 1
  
          # # construct node indices
          sources_k, targets_k = _triu_indices(nl, from_pos, to_pos)
  
          # unique indices of sources' & targets' union
          indices = _union_of_indices(nl, sources_k, targets_k)
  
          # create triu_indices for subset of v
          sources_k, targets_k = _reduce_triu_indices(
              sources_k, targets_k, indices
          )
  
          # select subset of vi
          vik = vi.iloc[indices]
  
          # return k'th selection
          eik = _select_and_return(
              vik,
              sources_k,
              targets_k,
              ft_feature,
              dt_unit,
              transfer_features,
              coldtypedic,
          )
  
          eik_list.append(eik)
  
      return eik_list
  
file_path: deepgraph/deepgraph/iterators_and_indexers.py
imports: from datetime import datetime
  from itertools import chain
  import numpy
  import pandas
  from deepgraph._triu_indices import _triu_indices, _union_of_indices, _reduce_triu_indices
  from deepgraph.connector_selector_implementations import _ft_connector, _ft_selector
  from deepgraph.connectors_and_selectors import CreatorFunction, Selector, Connector
  from deepgraph.utils import _flatten, _is_array_like, _merge_dicts
label_desc: Use image node_id 7 for calling a global function with example usage: _ft_subiterator(nl, vi, ft_feature, dt_unit, coldtypedic, transfer_features, pairs, max_pairs, verboseprint) and returns: eik_list