code: def run_module(self, resource, args=None, stdin=None, stdout=None):
          
          perform_doa = self.project.prefs.get('perform_doi', True)
          perform_doa = self.project.prefs.get('perform_doa', perform_doa)
          receiver = self.object_info.doa_data_received
          if not perform_doa:
              receiver = None
          runner = rope.base.oi.doa.PythonFileRunner(
              self, resource, args, stdin, stdout, receiver)
          runner.add_finishing_observer(self.module_cache.forget_all_data)
          runner.run()
          return runner
docs: Run `resource` module
  
          Returns a `rope.base.oi.doa.PythonFileRunner` object for
          controlling the process.