def test_helloworld_flow(tmpdir): args = set_hw_parser().parse_args([]) os.environ['RESOURCE_DIR'] = resource_filename('jina', 'resources') os.environ['SHARDS'] = str(args.shards) os.environ['PARALLEL'] = str(args.parallel) os.environ['HW_WORKDIR'] = str(tmpdir) os.environ['WITH_LOGSERVER'] = str(args.logserver) f = Flow.load_config( resource_filename('jina', '/'.join( ('resources', 'helloworld.flow.index.yml')))) targets = { 'index': { 'url': args.index_data_url, 'filename': os.path.join(tmpdir, 'index-original') }, 'query': { 'url': args.query_data_url, 'filename': os.path.join(tmpdir, 'query-original') } } # download the data Path(tmpdir).mkdir(parents=True, exist_ok=True) download_data(targets) # run it! with f: py_client( host=f.host, port_expose=f.port_expose, ).index(input_numpy(targets['index']['data']), batch_size=args.index_batch_size)
def main(text, host, top_k): py_client(host=host, port_expose=56798).dry_run() ppr = lambda x: print_topk(x, text) py_client(host=host, port_expose=56798, top_k=top_k).search(input_fn=read_query_data(text), output_fn=ppr)
def test_py_client(self): f = (Flow().add(name='r1', yaml_path='_forward').add( name='r2', yaml_path='_forward').add( name='r3', yaml_path='_forward', needs='r1').add( name='r4', yaml_path='_forward', needs='r2').add(name='r5', yaml_path='_forward', needs='r3').add( name='r6', yaml_path='_forward', needs='r4').add( name='r8', yaml_path='_forward', needs='r6').add( name='r9', yaml_path='_forward', needs='r5').add( name='r10', yaml_path='_merge', needs=['r9', 'r8'])) with f: f.dry_run() from jina.clients import py_client py_client(port_grpc=f.port_grpc, host=f.host).dry_run()
def test_py_client(): f = (Flow().add(name='r1') .add(name='r2') .add(name='r3', needs='r1') .add(name='r4', needs='r2') .add(name='r5', needs='r3') .add(name='r6', needs='r4') .add(name='r8', needs='r6') .add(name='r9', needs='r5') .add(name='r10', needs=['r9', 'r8'])) with f: f.dry_run() from jina.clients import py_client py_client(port_expose=f.port_expose, host=f.host).dry_run(IndexDryRunRequest()) with f: node = f._pod_nodes['gateway'] assert node.head_args.socket_in == SocketType.PULL_CONNECT assert node.tail_args.socket_out == SocketType.PUSH_CONNECT node = f._pod_nodes['r1'] assert node.head_args.socket_in == SocketType.PULL_BIND assert node.tail_args.socket_out == SocketType.PUB_BIND node = f._pod_nodes['r2'] assert node.head_args.socket_in == SocketType.SUB_CONNECT assert node.tail_args.socket_out == SocketType.PUSH_CONNECT node = f._pod_nodes['r3'] assert node.head_args.socket_in == SocketType.SUB_CONNECT assert node.tail_args.socket_out == SocketType.PUSH_CONNECT node = f._pod_nodes['r4'] assert node.head_args.socket_in == SocketType.PULL_BIND assert node.tail_args.socket_out == SocketType.PUSH_CONNECT node = f._pod_nodes['r5'] assert node.head_args.socket_in == SocketType.PULL_BIND assert node.tail_args.socket_out == SocketType.PUSH_CONNECT node = f._pod_nodes['r6'] assert node.head_args.socket_in == SocketType.PULL_BIND assert node.tail_args.socket_out == SocketType.PUSH_CONNECT node = f._pod_nodes['r8'] assert node.head_args.socket_in == SocketType.PULL_BIND assert node.tail_args.socket_out == SocketType.PUSH_CONNECT node = f._pod_nodes['r9'] assert node.head_args.socket_in == SocketType.PULL_BIND assert node.tail_args.socket_out == SocketType.PUSH_CONNECT node = f._pod_nodes['r10'] assert node.head_args.socket_in == SocketType.PULL_BIND assert node.tail_args.socket_out == SocketType.PUSH_BIND for name, node in f._pod_nodes.items(): assert node.peas_args['peas'][0] == node.head_args assert node.peas_args['peas'][0] == node.tail_args
def search(): observable = Observable() query = request.get_json() py_client(host="localhost", port_expose=server_port, top_k=100).search(input_fn=read_query_data(query["searchQuery"]), output_fn=lambda x: observable.callback(x)) results = observable.format_response() return jsonify(results)
async def test_client_call_unary(flow): with flow: client = py_client(port_expose=flow.port_expose) await client.configure_client() await client.call_unary( [b'a1234', b'b4567'], mode=RequestType.INDEX, )
def hello_world(args): Path(args.workdir).mkdir(parents=True, exist_ok=True) targets = { 'index': { 'url': args.index_data_url, 'filename': os.path.join(args.workdir, 'index-original') }, 'query': { 'url': args.query_data_url, 'filename': os.path.join(args.workdir, 'query-original') } } # download the data download_data(targets) # run it! py_client(port_grpc=args.port_grpc, host=args.host).index( input_fn(targets['index']['filename']), batch_size=args.index_batch_size)
def test_client(): f = Flow().add(uses='_pass') with f: print( py_client(port_expose=f.port_expose).call_unary( b'a1234', mode=ClientMode.INDEX))
def test_client(flow): with flow: py_client(port_expose=flow.port_expose).call_unary( b'a1234', mode=ClientMode.INDEX)
async def test_client_search(flow): with flow: client = py_client(port_expose=flow.port_expose) await client.configure_client() await client.search(['a1234', 'b4567'])
def test_client(self): f = Flow().add(yaml_path='_forward') with f: print( py_client(port_grpc=f.port_grpc).call_unary( b'a1234', mode=ClientMode.INDEX))
def test_py_client(self): f = (Flow().add(name='r1', yaml_path='_forward').add( name='r2', yaml_path='_forward').add( name='r3', yaml_path='_forward', needs='r1').add( name='r4', yaml_path='_forward', needs='r2').add(name='r5', yaml_path='_forward', needs='r3').add( name='r6', yaml_path='_forward', needs='r4').add( name='r8', yaml_path='_forward', needs='r6').add( name='r9', yaml_path='_forward', needs='r5').add( name='r10', yaml_path='_merge', needs=['r9', 'r8'])) with f: f.dry_run() from jina.clients import py_client py_client(port_expose=f.port_expose, host=f.host).dry_run(as_request='index') with f: self.assertEqual(f._pod_nodes['gateway'].head_args.socket_in, SocketType.PULL_CONNECT) self.assertEqual(f._pod_nodes['gateway'].tail_args.socket_out, SocketType.PUSH_CONNECT) self.assertEqual(f._pod_nodes['r1'].head_args.socket_in, SocketType.PULL_BIND) self.assertEqual(f._pod_nodes['r1'].tail_args.socket_out, SocketType.PUB_BIND) self.assertEqual(f._pod_nodes['r2'].head_args.socket_in, SocketType.SUB_CONNECT) self.assertEqual(f._pod_nodes['r2'].tail_args.socket_out, SocketType.PUSH_CONNECT) self.assertEqual(f._pod_nodes['r3'].head_args.socket_in, SocketType.SUB_CONNECT) self.assertEqual(f._pod_nodes['r3'].tail_args.socket_out, SocketType.PUSH_CONNECT) self.assertEqual(f._pod_nodes['r4'].head_args.socket_in, SocketType.PULL_BIND) self.assertEqual(f._pod_nodes['r4'].tail_args.socket_out, SocketType.PUSH_CONNECT) self.assertEqual(f._pod_nodes['r5'].head_args.socket_in, SocketType.PULL_BIND) self.assertEqual(f._pod_nodes['r5'].tail_args.socket_out, SocketType.PUSH_CONNECT) self.assertEqual(f._pod_nodes['r6'].head_args.socket_in, SocketType.PULL_BIND) self.assertEqual(f._pod_nodes['r6'].tail_args.socket_out, SocketType.PUSH_CONNECT) self.assertEqual(f._pod_nodes['r8'].head_args.socket_in, SocketType.PULL_BIND) self.assertEqual(f._pod_nodes['r8'].tail_args.socket_out, SocketType.PUSH_CONNECT) self.assertEqual(f._pod_nodes['r9'].head_args.socket_in, SocketType.PULL_BIND) self.assertEqual(f._pod_nodes['r9'].tail_args.socket_out, SocketType.PUSH_CONNECT) self.assertEqual(f._pod_nodes['r10'].head_args.socket_in, SocketType.PULL_BIND) self.assertEqual(f._pod_nodes['r10'].tail_args.socket_out, SocketType.PUSH_BIND) for name, node in f._pod_nodes.items(): self.assertEqual(node.peas_args['peas'][0], node.head_args) self.assertEqual(node.peas_args['peas'][0], node.tail_args)
def test_client(flow): with flow: py_client(port_expose=flow.port_expose).call_unary( [b'a1234', b'b4567'], mode=RequestType.INDEX, )