14 """An example of cancelling requests in gRPC."""
16 from __future__
import absolute_import
17 from __future__
import division
18 from __future__
import print_function
27 from examples.python.cancellation
import hash_name_pb2
28 from examples.python.cancellation
import hash_name_pb2_grpc
30 _DESCRIPTION =
"A client for finding hashes similar to names."
31 _LOGGER = logging.getLogger(__name__)
36 stub = hash_name_pb2_grpc.HashFinderStub(channel)
37 future = stub.Find.future(hash_name_pb2.HashNameRequest(
38 desired_name=name, ideal_hamming_distance=ideal_distance),
41 def cancel_request(unused_signum, unused_frame):
45 signal.signal(signal.SIGINT, cancel_request)
46 result = future.result()
51 interesting_distance):
53 stub = hash_name_pb2_grpc.HashFinderStub(channel)
54 result_generator = stub.FindRange(hash_name_pb2.HashNameRequest(
56 ideal_hamming_distance=ideal_distance,
57 interesting_hamming_distance=interesting_distance),
60 def cancel_request(unused_signum, unused_frame):
61 result_generator.cancel()
64 signal.signal(signal.SIGINT, cancel_request)
65 for result
in result_generator:
70 parser = argparse.ArgumentParser(description=_DESCRIPTION)
71 parser.add_argument(
"name", type=str, help=
'The desired name.')
72 parser.add_argument(
"--ideal-distance",
76 help=
"The desired Hamming distance.")
77 parser.add_argument(
'--server',
78 default=
'localhost:50051',
81 help=
'The host-port pair at which to reach the server.')
87 help=
'Also show candidates with a Hamming distance less than this value.'
90 args = parser.parse_args()
91 if args.show_inferior
is not None:
98 if __name__ ==
"__main__":