code: def module_names(self):
          
          controller_prefix = self.controller_prefix
          _module_name_cache = self._module_name_cache
          if controller_prefix in _module_name_cache:
              return _module_name_cache[controller_prefix]
  
          module = self.get_module(controller_prefix)
  
          if hasattr(module, "__path__"):
              # path attr exists so this is a package
              modules = self.find_modules(module.__path__[0], controller_prefix)
  
          else:
              # we have a lonely .py file
              modules = set([controller_prefix])
  
          _module_name_cache.setdefault(controller_prefix, {})
          _module_name_cache[controller_prefix] = modules
  
          return modules
docs: get all the modules in the controller_prefix
  
          :returns: set, a set of string module names