code: def run_spyder(app, options, args):
      
      #TODO: insert here
      # Main window
      main = MainWindow(options)
      try:
          main.setup()
      except BaseException:
          if main.console is not None:
              try:
                  main.console.shell.exit_interpreter()
              except BaseException:
                  pass
          raise
  
      main.show()
      main.post_visible_setup()
  
      if main.console:
          main.console.shell.interpreter.namespace['spy'] = \
                                                      Spy(app=app, window=main)
  
      # Open external files passed as args
      if args:
          for a in args:
              main.open_external_file(a)
  
      # Don't show icons in menus for Mac
      if sys.platform == 'darwin':
          QCoreApplication.setAttribute(Qt.AA_DontShowIconsInMenus, True)
  
      # Open external files with our Mac app
      if running_in_mac_app():
          app.sig_open_external_file.connect(main.open_external_file)
  
      # To give focus again to the last focused widget after restoring
      # the window
      app.focusChanged.connect(main.change_last_focused_widget)
  
      if not running_under_pytest():
          app.exec_()
      return main
docs: Create and show Spyder's main window
      Start QApplication event loop