Skip to content
This repository was archived by the owner on Feb 22, 2020. It is now read-only.

Commit 563a48c

Browse files
author
hanhxiao
committed
fix(cli): fix cli client required
1 parent 1d87dfc commit 563a48c

7 files changed

+35
-11
lines changed

gnes/cli/parser.py

+27-3
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,29 @@
1717
import argparse
1818

1919

20+
class ActionNoYes(argparse.Action):
21+
def __init__(self, option_strings, dest, default=None, required=False, help=None):
22+
23+
if default is None:
24+
raise ValueError('you must provide a default with yes/no action')
25+
if len(option_strings) != 1:
26+
raise ValueError('only single argument is allowed with yes/no action')
27+
opt = option_strings[0]
28+
if not opt.startswith('--'):
29+
raise ValueError('yes/no arguments must be prefixed with --')
30+
31+
opt = opt[2:]
32+
opts = ['--' + opt, '--no-' + opt]
33+
super(ActionNoYes, self).__init__(opts, dest, nargs=0, const=None,
34+
default=default, required=required, help=help)
35+
36+
def __call__(self, parser, namespace, values, option_strings=None):
37+
if option_strings.startswith('--no-'):
38+
setattr(namespace, self.dest, False)
39+
else:
40+
setattr(namespace, self.dest, True)
41+
42+
2043
def resolve_py_path(path):
2144
import os
2245
if not os.path.exists(path):
@@ -54,7 +77,8 @@ def set_base_parser():
5477
'It enables large-scale index and semantic search for text-to-text, image-to-image, '
5578
'video-to-video and any content form. Visit %s for tutorials and documentations.' % (
5679
colored('GNES v%s: Generic Neural Elastic Search' % __version__, 'green'),
57-
colored('https://gnes.ai', 'cyan', attrs=['underline'])))
80+
colored('https://gnes.ai', 'cyan', attrs=['underline'])),
81+
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
5882
parser.add_argument('-v', '--version', action='version', version='%(prog)s ' + __version__)
5983
parser.add_argument('--verbose', action='store_true', default=False,
6084
help='turn on detailed logging for debug')
@@ -152,7 +176,7 @@ def set_service_parser(parser=None):
152176
parser.add_argument('--parallel_type', type=ParallelType.from_string, choices=list(ParallelType),
153177
default=ParallelType.PUSH_NONBLOCK,
154178
help='parallel type of the concurrent services')
155-
parser.add_argument('--check_version', action='store_true', default=False,
179+
parser.add_argument('--check_version', action=ActionNoYes, default=True,
156180
help='comparing the GNES and proto version of incoming message with local setup, '
157181
'mismatch raise an exception')
158182
parser.add_argument('--identity', type=str, default=str(uuid.uuid4()).split('-')[0],
@@ -283,7 +307,7 @@ def set_frontend_parser(parser=None):
283307
read_only=True)
284308
parser.add_argument('--max_concurrency', type=int, default=10,
285309
help='maximum concurrent connections allowed')
286-
parser.add_argument('--show_route_table', action='store_true', default=False,
310+
parser.add_argument('--route_table', action=ActionNoYes, default=True,
287311
help='showing a route table with time cost after receiving the result')
288312
return parser
289313

gnes/service/frontend.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ def remove_envelope(self, m: 'gnes_pb2.Message'):
7777
resp = m.response
7878
resp.request_id = m.envelope.request_id
7979
m.envelope.routes[0].end_time.GetCurrentTime()
80-
if self.args.show_route_table:
80+
if self.args.route_table:
8181
self.logger.info('route: %s' % router2str(m))
8282
route_time = []
8383
k = m.envelope.routes[0]

tests/test_client_cli.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def test_cli(self):
2222
])
2323

2424
args = set_frontend_parser().parse_args([
25-
'--show_route_table'
25+
2626
])
2727

2828
p_args = set_router_parser().parse_args([

tests/test_dict_indexer.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def setUp(self):
3333
def test_pymode(self):
3434
os.unsetenv('http_proxy')
3535
os.unsetenv('https_proxy')
36-
args = set_frontend_parser().parse_args(['--show_route_table'])
36+
args = set_frontend_parser().parse_args([])
3737

3838
p_args = set_preprocessor_parser().parse_args([
3939
'--port_in', str(args.port_out),

tests/test_grpc_service.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def setUp(self):
5656
'--grpc_port', '9999',
5757
'--port_in', str(self.s_args.port_out),
5858
'--port_out', str(self.s_args.port_in),
59-
'--show_route_table'
59+
6060
])
6161

6262
def test_grpc_empty_service(self):

tests/test_service_mgr.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def _test_multiple_router(self, backend='thread', num_parallel=5):
3131
def _test_grpc_multiple_router(self, backend='thread', num_parallel=5):
3232
args = set_frontend_parser().parse_args([
3333
'--grpc_host', '127.0.0.1',
34-
'--show_route_table'
34+
3535
])
3636

3737
p_args = set_router_parser().parse_args([
@@ -55,7 +55,7 @@ def _test_grpc_multiple_router(self, backend='thread', num_parallel=5):
5555
def _test_grpc_multiple_pub(self, backend='thread', num_parallel=5):
5656
args = set_frontend_parser().parse_args([
5757
'--grpc_host', '127.0.0.1',
58-
'--show_route_table'
58+
5959
])
6060

6161
p_args = set_router_parser().parse_args([

tests/test_stream_grpc.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def setUp(self):
4444
def test_bm_frontend(self):
4545
args = set_frontend_parser().parse_args([
4646
'--grpc_host', '127.0.0.1',
47-
'--show_route_table'
47+
4848
])
4949

5050
p_args = set_router_parser().parse_args([
@@ -65,7 +65,7 @@ def test_bm_frontend(self):
6565
def test_grpc_frontend(self):
6666
args = set_frontend_parser().parse_args([
6767
'--grpc_host', '127.0.0.1',
68-
'--show_route_table'
68+
6969
])
7070

7171
p_args = set_router_parser().parse_args([

0 commit comments

Comments
 (0)