Exemple #1
0
 def sendMessage(self, message):
     socket = QtNetwork.QLocalSocket(self)
     socket.connectToServer(self._key, QtCore.QIODevice.WriteOnly)
     socket.waitForConnected(self._timeout)
     socket.write(bytes(message, 'UTF-8'))
     socket.waitForBytesWritten(self._timeout)
     socket.disconnectFromServer()
    def __init__(self, id, *argv):

        super(QtSingleApplication, self).__init__(*argv)
        self._id = id
        self._activationWindow = None
        self._activateOnMessage = False

        # Is there another instance running?
        self._outSocket = QtNetwork.QLocalSocket()
        self._outSocket.connectToServer(self._id)
        self._isRunning = self._outSocket.waitForConnected()

        if self._isRunning:
            # Yes, there is.
            self._outStream = QtCore.QTextStream(self._outSocket)
            self._outStream.setCodec('UTF-8')
        else:
            # No, there isn't.
            self._outSocket = None
            self._outStream = None
            self._inSocket = None
            self._inStream = None
            self._server = QtNetwork.QLocalServer()
            self._server.listen(self._id)
            self._server.newConnection.connect(self._onNewConnection)
Exemple #3
0
def send_message(**data):
    socket = QtNetwork.QLocalSocket()
    print("in send message, SERVER:", get_server_name())
    socket.connectToServer(get_server_name(), QtCore.QIODevice.WriteOnly)
    if socket.waitForConnected(500):
        socket.write(json.dumps(data).encode('utf-8'))
        if not socket.waitForBytesWritten(2000):
            raise RuntimeError('could not write to socket: %s' %
                  socket.errorString())
        socket.disconnectFromServer()
    elif socket.error() == QtNetwork.QAbstractSocket.HostNotFoundError:
        global _tries
        if _tries < 10:
            if not _tries:
                if QtCore.QProcess.startDetached(
                    'python', [os.path.abspath(__file__)]):
                    atexit.register(lambda: send_message(shutdown=True))
                else:
                    raise RuntimeError('could not start dialog server')
            _tries += 1
            QtCore.QThread.msleep(100)
            send_message(**data)
        else:
            raise RuntimeError('could not connect to server: %s' %
                socket.errorString())
    else:
        raise RuntimeError('could not send data: %s' % socket.errorString())
def main():

    global sockets
    args = parse_args()

    # Try to connect to the GPU backend
    app = QtCore.QCoreApplication([])

    procs = []
    for dbname in args.dbnames:
        # Start the GPU backend
        cmdline = [FASTSIM_EXEC, dbname]
        if args.cpu_only:
            cmdline.append('--cpu_only')
        procs.append(subprocess.Popen(cmdline))
        socket = QtNetwork.QLocalSocket(app)
        dbname_noext = os.path.splitext(os.path.basename(dbname))[0]
        sockets[dbname_noext] = socket
        while not socket.isValid():
            socket_name = os.path.splitext(os.path.basename(dbname))[0]
            socket.connectToServer(socket_name)
            time.sleep(0.3)

    if args.http_interface:
        handler = FastSimHTTPHandler
    else:
        handler = FastSimHandler
    server = ThreadedHTTPServer((args.hostname, args.port), handler)
    print("Running HTTP server...")
    server.serve_forever()
    for proc in procs:
        proc.kill()
def main():
    args = parse_args()
    app = QtCore.QCoreApplication([])

    socket = QtNetwork.QLocalSocket(app)
    smiles = input("Smiles: ")
    dbcount = 1
    dbname = args.dbname
    dbkey = args.dbkey
    socket.connectToServer('gpusimilarity')

    while smiles and smiles.lower() not in ('quit', 'exit'):
        return_count = 20
        similarity_cutoff = 0

        fp_binary, _ = smiles_to_fingerprint_bin(smiles)
        fp_qba = QtCore.QByteArray(fp_binary)

        output_qba = QtCore.QByteArray()
        output_qds = QtCore.QDataStream(output_qba, QtCore.QIODevice.WriteOnly)

        output_qds.writeInt(dbcount)
        output_qds.writeString(dbname.encode())
        output_qds.writeString(dbkey.encode())

        request_num = random.randint(0, 2**31)
        output_qds.writeInt(request_num)
        output_qds.writeInt(return_count)
        output_qds.writeFloat(similarity_cutoff)
        output_qds << fp_qba

        socket.write(output_qba)
        socket.flush()
        socket.waitForReadyRead(30000)
        output_qba = socket.readAll()

        smiles = []
        scores = []
        ids = []

        data_reader = QtCore.QDataStream(output_qba)
        returned_request = data_reader.readInt()
        if request_num != returned_request:
            raise RuntimeError("Incorrect result ID returned!")

        return_count = data_reader.readInt()
        approximate_matches = data_reader.readUInt64()

        for i in range(return_count):
            smiles.append(data_reader.readString())
        for i in range(return_count):
            ids.append(data_reader.readString())
        for i in range(return_count):
            scores.append(data_reader.readFloat())

        print("Approximate total matches: {0}, returning {1}".format(
            approximate_matches, return_count))
        for cid, smi, score in zip(ids, smiles, scores):
            print("{0} {1}: {2}".format(cid, smi, score))
        smiles = input("Smiles: ")
Exemple #6
0
def setup_socket(app):
    global socket

    socket = QtNetwork.QLocalSocket(app)
    while not socket.isValid():
        socket_name = 'gpusimilarity'
        socket.connectToServer(socket_name)
        time.sleep(0.3)
Exemple #7
0
 def startMultiplexer(self, address):
     if self.protocol() == 'unix':
         self.multiplexer = QtNetwork.QLocalSocket(self)
         self.multiplexer.connectToServer(address,
                                          QtCore.QIODevice.WriteOnly)
     else:
         self.multiplexer = QtNetwork.QTcpSocket(self)
         address, port = address.split(':')
         self.multiplexer.connectToHost(address, int(port),
                                        QtCore.QIODevice.WriteOnly)
Exemple #8
0
 def sendToInstance(self, data=''):
     socket = QtNetwork.QLocalSocket()
     socket.connectToServer(self.catalog, QIODevice.WriteOnly)
     if socket.waitForConnected(500):
         if len(data) > 0:
             socket.write(data)
             socket.flush()
         socket.close()
         return True
     return False
Exemple #9
0
 def __init__(self, argv):
     QtWidgets.QApplication.__init__(self, argv)
     self._key = 'KCC'
     self._timeout = 1000
     self._locked = False
     socket = QtNetwork.QLocalSocket(self)
     socket.connectToServer(self._key, QtCore.QIODevice.WriteOnly)
     if not socket.waitForConnected(self._timeout):
         self._server = QtNetwork.QLocalServer(self)
         # noinspection PyUnresolvedReferences
         self._server.newConnection.connect(self.handleMessage)
         self._server.listen(self._key)
     else:
         self._locked = True
     socket.disconnectFromServer()
 def send_message(self, message):
     if self.is_running():
         print(f"{self._name} is already running")
         socket = QtNetwork.QLocalSocket(self)
         socket.connectToServer(self._name, QtCore.QIODevice.WriteOnly)
         if not socket.waitForConnected(self._timeout):
             raise Exception(socket.errorString())
         if not isinstance(message, bytes):
             message = str(message).encode('utf-8')
         socket.write(message)
         if not socket.waitForBytesWritten(self._timeout):
             raise Exception(socket.errorString())
         socket.disconnectFromServer()
         sys.exit(0)
     else:
         self.visibility_changed.emit(self.visibility)
Exemple #11
0
    def __init__(self, options, argv):
        """
        Initialize Eddy.
        :type options: Namespace
        :type argv: list
        """
        super().__init__(argv)

        self.server = None
        self.socket = QtNetwork.QLocalSocket()
        self.socket.connectToServer(APPID)
        self.running = self.socket.waitForConnected()
        self.sessions = DistinctList()
        self.welcome = None

        if not self.isRunning() or options.tests:
            self.server = QtNetwork.QLocalServer()
            self.server.listen(APPID)
            self.socket = None
            connect(self.sgnCreateSession, self.doCreateSession)
def main():
    app = QtCore.QCoreApplication([])

    socket = QtNetwork.QLocalSocket(app)
    smiles = input("Smiles: ")
    db_name = sys.argv[1]
    socket.connectToServer(db_name)

    while smiles and smiles.lower() not in ('quit', 'exit'):
        return_count = 20

        fp_binary = smiles_to_fingerprint_bin(smiles)
        fp_qba = QtCore.QByteArray(fp_binary)

        output_qba = QtCore.QByteArray()
        output_qds = QtCore.QDataStream(output_qba, QtCore.QIODevice.WriteOnly)

        output_qds.writeInt(return_count)
        output_qds << fp_qba

        socket.write(output_qba)
        socket.flush()
        socket.waitForReadyRead(30000)
        output_qba = socket.readAll()

        smiles = []
        scores = []
        ids = []

        data_reader = QtCore.QDataStream(output_qba)

        for i in range(return_count):
            smiles.append(data_reader.readString())
        for i in range(return_count):
            ids.append(data_reader.readString().decode("utf-8"))
        for i in range(return_count):
            scores.append(data_reader.readFloat())

        for cid, smi, score in zip(ids, smiles, scores):
            print("{0} {1}: {2}".format(cid, smi, score))
        smiles = input("Smiles: ")
Exemple #13
0
    def __init__(self, argv):
        """
        Initialize Eddy.
        :type argv: list
        """
        super().__init__(argv)

        self.openFilePath = None
        self.server = None
        self.sessions = DistinctList()
        self.started = False
        self.welcome = None

        # APPLICATION INFO
        self.setDesktopFileName('{}.{}'.format(ORGANIZATION_REVERSE_DOMAIN,
                                               APPNAME))
        self.setOrganizationName(ORGANIZATION)
        self.setOrganizationDomain(ORGANIZATION_DOMAIN)
        self.setApplicationName(APPNAME)
        self.setApplicationDisplayName(APPNAME)
        self.setApplicationVersion(VERSION)

        # PARSE COMMAND LINE ARGUMENTS
        self.options = CommandLineParser()
        self.options.process(argv)

        # CHECK FOR A RUNNING INSTANCE
        self.socket = QtNetwork.QLocalSocket()
        self.socket.connectToServer(APPID)
        self.running = self.socket.waitForConnected()
        if not self.isRunning():
            QtNetwork.QLocalServer.removeServer(APPID)
            self.server = QtNetwork.QLocalServer()
            self.server.listen(APPID)
            self.socket = None
            connect(self.sgnCreateSession, self.doCreateSession)

        connect(self.aboutToQuit, self.onAboutToQuit)
Exemple #14
0
 def __init__(self):
     super(Server, self).__init__()
     self.out_socket = QtNetwork.QLocalSocket()
     self.server = None
     self.id = 'OpenLPDual'
Exemple #15
0
 def __init__(self):
     self.cl = QtNetwork.QLocalSocket()