code: def assertions(cls, v, r_dtype_dic):
      # self.input_features of self.c_instances & self.s_instances
      #     must be in v.columns.values
      # set(cls.c_input_features).issubset(v.columns.values)
  
      # connectors and selectors must have exclusive output relations
      rs = cls.c_output_rs + cls.s_output_rs
      count_rs = Counter(rs)
      if not len(rs) == 0:
          msg = (
              "There are common output relations in "
              "connectors and/or selectors. \n"
              "[(relation, number of occurences)]: \n {}"
          )
          assert set(count_rs.values()) == {1}, msg.format(
              [(r, nr) for r, nr in count_rs.items() if nr > 1]
          )
  
      # dtypes for relations given which are not in any output
      unused_dtypes = set(r_dtype_dic.keys()).difference(rs)
      if len(unused_dtypes) != 0:
          warnings.warn(
              "There are dtypes given by 'r_dtype_dic' for which there is no"
              " output variable(s): \n {}".format(list(unused_dtypes)),
              UserWarning,
          )
  
file_path: deepgraph/deepgraph/connectors_and_selectors.py
imports: import inspect
  import warnings
  from collections import Counter
  import numpy
  from deepgraph._find_selected_indices import _find_selected_indices
  from deepgraph.utils import _flatten
label_desc: Use image node_id 2 for calling the CreatorFunction obj's underlying member method code with example usage: obj.assertions(cls, v, r_dtype_dic) without return types