class_docstr: The window frame that lets you add modules to a pipeline
  
      
class_docstr_tok: ["The","window","frame","that","lets","you","add","modules","to","a","pipeline"]
code: def __on_search_help(self, event):
      if len(self.search_text.GetValue()) == 0:
          wx.MessageBox(
              "Please enter the search text to be found.",
              caption="No text to search",
              parent=self,
              style=wx.OK | wx.CENTRE | wx.ICON_INFORMATION,
          )
          self.search_text.SetFocus()
          return
  
      html = cellprofiler.gui.help.search.search_module_help(
          self.search_text.GetValue()
      )
      if html is None:
          wx.MessageBox(
              'No references found for "%s".'
              % self.search_text.GetValue(),
              caption="Text not found",
              parent=self,
              style=wx.OK | wx.CENTRE | wx.ICON_INFORMATION,
          )
      else:
          self.display_helpframe(
              html, 'Help matching "%s"' % self.search_text.GetValue()
          )
  
imports: import wx
  from rapidfuzz.utils import default_process
  from rapidfuzz.process import extract
  from rapidfuzz.distance import DamerauLevenshtein
  from cellprofiler_core.utilities.core.modules import get_module_names, instantiate_module, get_module_class
  import cellprofiler.gui
  import cellprofiler.gui.cpframe
  import cellprofiler.gui.help.search
  import cellprofiler.gui.utilities.icon
  import cellprofiler.modules
label_desc: Use image node_id 10 for calling the AddModuleFrame obj's underlying member method code with example usage: obj.__on_search_help(event) without return types