code: def get_module_plugins(module, classobj):
      
      try:
          names = module.__all__
      except AttributeError:
          names = [x for x in vars(module) if not x.startswith('_')]
      for name in names:
          try:
              obj = getattr(module, name)
          except AttributeError:
              continue
          try:
              if issubclass(obj, classobj):
                  yield obj
          except TypeError:
              continue
docs: Return all subclasses of a class in the module.
      If the module defines __all__, only those entries will be searched,
      otherwise all objects not starting with '_' will be searched.