class_docstr: Data structure to store backdoor variables between 2 nodes.
code: def update(self, path, condition_vars=None):
      if condition_vars is None:
          """path is a Path variable"""
          if self._is_blocked is None:
              self._is_blocked = path.is_blocked()
          else:
              self._is_blocked = self._is_blocked and path.is_blocked()
          if not path.is_blocked():
              self._condition_vars.append(path.get_condition_vars())
  
      else:
          """path is a list"""
          condition_vars = list(condition_vars)
          self._condition_vars.append(set([*path[1:], *condition_vars]))
  
imports: import networkx
  from dowhy.utils.graph_operations import adjacency_matrix_to_adjacency_list
label_desc: Use image node_id 2 for calling the NodePair obj's underlying member method code with example usage: obj.update(path, condition_vars) without return types