def __init__(self, target, executable=None, name=None, extra_args=None, libs=None, cwd=None, env=None): super(AsyncClient, self).__init__() self.executable = executable or sys.executable self.extra_args = extra_args self.target = target self.name = name or self self.libs = libs self.cwd = cwd self.env = env self.is_initialized = False self.closing = False self.context = zmq.Context() QApplication.instance().aboutToQuit.connect(self.close) # Set up the heartbeat timer. self.timer = QTimer(self) self.timer.timeout.connect(self._heartbeat) self.timer.start(HEARTBEAT)
def qapplication(translate=True): """Return QApplication instance Creates it if it doesn't already exist""" app = QApplication.instance() if not app: # Set Application name for Gnome 3 # https://groups.google.com/forum/#!topic/pyside/24qxvwfrRDs app = QApplication(['Spyder']) if translate: install_translator(app) return app
def start(self): """Start a new connection with the plugin. """ self._initialized = False plugin_name = self.plugin_name self.sock, server_port = connect_to_port() self.sock.listen(2) QApplication.instance().aboutToQuit.connect(self.close) self.process = QProcess(self) self.process.setWorkingDirectory(os.path.dirname(__file__)) processEnvironment = QProcessEnvironment() env = self.process.systemEnvironment() python_path = imp.find_module('spyderlib')[1] # Use the current version of the plugin provider if possible. try: provider_path = imp.find_module(self.plugin_name)[1] python_path = os.sep.join([python_path, provider_path]) except ImportError: pass env.append("PYTHONPATH=%s" % python_path) for envItem in env: envName, separator, envValue = envItem.partition('=') processEnvironment.insert(envName, envValue) self.process.setProcessEnvironment(processEnvironment) p_args = ['-u', 'plugin_server.py', str(server_port), plugin_name] self.listener = PluginListener(self.sock) self.listener.request_handled.connect(self.request_handled.emit) self.listener.initialized.connect(self._on_initialized) self.listener.start() self.process.start(self.executable, p_args) self.process.finished.connect(self._on_finished) running = self.process.waitForStarted() if not running: raise IOError('Could not start plugin %s' % plugin_name)
def start(self): """Start a new connection with the plugin. """ self._initialized = False plugin_name = self.plugin_name self.sock, server_port = connect_to_port() self.sock.listen(2) QApplication.instance().aboutToQuit.connect(self.close) self.process = QProcess(self) self.process.setWorkingDirectory(os.path.dirname(__file__)) processEnvironment = QProcessEnvironment() env = self.process.systemEnvironment() python_path = osp.dirname(get_module_path('spyderlib')) # Use the current version of the plugin provider if possible. try: provider_path = osp.dirname(imp.find_module(self.plugin_name)[1]) python_path = osp.pathsep.join([python_path, provider_path]) except ImportError: pass env.append("PYTHONPATH=%s" % python_path) for envItem in env: envName, separator, envValue = envItem.partition('=') processEnvironment.insert(envName, envValue) self.process.setProcessEnvironment(processEnvironment) p_args = ['-u', 'plugin_server.py', str(server_port), plugin_name] self.listener = PluginListener(self.sock) self.listener.request_handled.connect(self.request_handled.emit) self.listener.initialized.connect(self._on_initialized) self.listener.start() self.process.start(self.executable, p_args) self.process.finished.connect(self._on_finished) running = self.process.waitForStarted() if not running: raise IOError('Could not start plugin %s' % plugin_name)