code: def get_detectors_and_printers():
      
  
      detectors = [getattr(all_detectors, name) for name in dir(all_detectors)]
      detectors = [d for d in detectors if inspect.isclass(d) and issubclass(d, AbstractDetector)]
  
      printers = [getattr(all_printers, name) for name in dir(all_printers)]
      printers = [p for p in printers if inspect.isclass(p) and issubclass(p, AbstractPrinter)]
  
      # Handle plugins!
      for entry_point in iter_entry_points(group='slither_analyzer.plugin', name=None):
          make_plugin = entry_point.load()
  
          plugin_detectors, plugin_printers = make_plugin()
  
          if not all(issubclass(d, AbstractDetector) for d in plugin_detectors):
              raise Exception('Error when loading plugin %s, %r is not a detector' % (entry_point, d))
  
          if not all(issubclass(p, AbstractPrinter) for p in plugin_printers):
              raise Exception('Error when loading plugin %s, %r is not a printer' % (entry_point, p))
  
          # We convert those to lists in case someone returns a tuple
          detectors += list(plugin_detectors)
          printers += list(plugin_printers)
  
      return detectors, printers
docs: NOTE: This contains just a few detectors and printers that we made public.