class_docstr: Abstract class for nodes with auto-generated control UI
class_docstr_tok: ["Abstract","class","for","nodes","with","auto-generated","control","UI"]
code: def __init__(self, name, ui=None, terminals=None):
      if terminals is None:
          terminals = {
              "In": {"io": "in"},
              "Out": {"io": "out", "bypass": "In"},
          }
      Node.__init__(self, name=name, terminals=terminals)
  
      if ui is None:
          if hasattr(self, "uiTemplate"):
              ui = self.uiTemplate
          else:
              ui = []
  
      self.ui, self.stateGroup, self.ctrls = generateUi(ui)
      self.stateGroup.sigChanged.connect(self.changed)
  
imports: import numpy
  from ...Qt import QtCore, QtWidgets
  from ...WidgetGroup import WidgetGroup
  from ...widgets.ColorButton import ColorButton
  from ...widgets.SpinBox import SpinBox
  from ..Node import Node
label_desc: Use image node_id 1 to create a new CtrlNode object from inherited base classes: Node with example: obj = CtrlNode(name, ui, terminals)