code: def update_config(self, parent, **kwargs):
      if parent is not None and parent not in self.outputs:
          self.outputs.append(parent)
      node_name = self.name
      if kwargs["spmd_nodes"] == 1:
          self.config = -1
      elif session.ptype == "dp":
          self.config = -1 if self.op_type == "param" else 0
      elif session.ptype == "zero":
          self.config = -2 if self.op_type == "param" else 0
      elif node_name in session.manual_config:
          self.config = session.manual_config[node_name]
      for input in self.inputs:
          input.update_config(self, **kwargs)
  
imports: import os, sys, json, re
  import tempfile
  import copy
  import inspect
  import logging
  import importlib
  from .None import solver
  from .None import patterns
label_desc: Use image node_id 3 for calling the Custom obj's underlying member method code with example usage: obj.update_config(parent) without return types