Files
Egor Eliseev f6260577ab PY-52808 threading module DeprecationWarnings
Change:
'thread.setDaemon(val)' to 'thread.daemon = val'
'thread.isDaemon()' to 'thread.daemon'
'condition.notifyAll()' to 'condition.notify_all()'
'event.isSet()' to 'event.is_set()'

GitOrigin-RevId: 76191fde184b407251303684cb85be9cfda3c7ae
2022-02-21 08:08:42 +00:00

59 lines
2.4 KiB
Python

import socket
import threading
from _pydev_comm.pydev_server import TSingleThreadedServer
from _pydev_comm.pydev_transport import TSyncClient, open_transports_as_client, _create_client_server_transports
from _shaded_thriftpy.protocol import TBinaryProtocolFactory
from _shaded_thriftpy.thrift import TProcessor
def make_rpc_client(client_service, host, port, proto_factory=TBinaryProtocolFactory(strict_read=False, strict_write=False)):
client_transport, server_transport = open_transports_as_client((host, port))
client_protocol = proto_factory.get_protocol(client_transport)
client = TSyncClient(client_service, client_protocol)
return client, server_transport
def start_rpc_server(server_transport, server_service, server_handler, proto_factory=TBinaryProtocolFactory(strict_read=False,
strict_write=False)):
# setup server
processor = TProcessor(server_service, server_handler)
server = TSingleThreadedServer(processor, server_transport, daemon=True, iprot_factory=proto_factory)
server.serve()
return server
def start_rpc_server_and_make_client(host, port, server_service, client_service, server_handler_factory,
proto_factory=TBinaryProtocolFactory(strict_read=False, strict_write=False)):
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_socket.bind((host, port))
server_socket.listen(1)
t = threading.Thread(target=_rpc_server, args=(server_socket, server_service, client_service, server_handler_factory, proto_factory))
t.daemon = True
t.start()
return server_socket
def _rpc_server(server_socket, server_service, client_service, server_handler_factory, proto_factory):
client_socket, address = server_socket.accept()
client_transport, server_transport = _create_client_server_transports(client_socket)
client_protocol = proto_factory.get_protocol(client_transport)
rpc_client = TSyncClient(client_service, client_protocol)
server_handler = server_handler_factory(rpc_client)
# setup server
processor = TProcessor(server_service, server_handler)
server = TSingleThreadedServer(processor, server_transport, daemon=True, iprot_factory=proto_factory)
server.serve()