Source code for jina.parsers.orchestrate.runtimes.remote

"""Argparser module for remote runtime"""

from jina import __default_host__, helper
from jina.parsers.helper import KVAppendAction, add_arg_group


[docs]def mixin_remote_runtime_parser(parser): """Add the options for a remote Executor :param parser: the parser """ gp = add_arg_group(parser, title='RemoteRuntime') _add_host(gp)
[docs]def mixin_client_gateway_parser(parser): """Add the options for the client connecting to the Gateway :param parser: the parser """ gp = add_arg_group(parser, title='ClientGateway') _add_host(gp) _add_proxy(gp) gp.add_argument( '--port', type=int, default=None, help='The port of the Gateway, which the client should connect to.', ) gp.add_argument( '--tls', action='store_true', default=False, help='If set, connect to gateway using tls encryption', )
[docs]def mixin_gateway_parser(parser): """Add the options for remote expose at the Gateway :param parser: the parser """ gp = add_arg_group(parser, title='Gateway') _add_host(gp) _add_proxy(gp) gp.add_argument( '--port-expose', type=int, dest='port', default=helper.random_port(), help='The port that the gateway exposes for clients for GRPC connections.', ) parser.add_argument( '--graph-description', type=str, help='Routing graph for the gateway', default='{}', ) parser.add_argument( '--graph-conditions', type=str, help='Dictionary stating which filtering conditions each Executor in the graph requires to receive Documents.', default='{}', ) parser.add_argument( '--deployments-addresses', type=str, help='dictionary JSON with the input addresses of each Deployment', default='{}', ) parser.add_argument( '--deployments-disable-reduce', type=str, help='list JSON disabling the built-in merging mechanism for each Deployment listed', default='[]', ) gp.add_argument( '--compression', choices=['NoCompression', 'Deflate', 'Gzip'], help='The compression mechanism used when sending requests from the Head to the WorkerRuntimes. For more details, ' 'check https://grpc.github.io/grpc/python/grpc.html#compression.', ) gp.add_argument( '--timeout-send', type=int, default=None, help='The timeout in milliseconds used when sending data requests to Executors, -1 means no timeout, disabled by default', )
def _add_host(arg_group): arg_group.add_argument( '--host', type=str, default=__default_host__, help=f'The host address of the runtime, by default it is {__default_host__}.', ) def _add_proxy(arg_group): arg_group.add_argument( '--proxy', action='store_true', default=False, help='If set, respect the http_proxy and https_proxy environment variables. ' 'otherwise, it will unset these proxy variables before start. ' 'gRPC seems to prefer no proxy', )
[docs]def mixin_graphql_parser(parser=None): """Add the options to rest server :param parser: the parser """ gp = add_arg_group(parser, title='GraphQL') gp.add_argument( '--expose-graphql-endpoint', action='store_true', default=False, help='If set, /graphql endpoint is added to HTTP interface. ', )
[docs]def mixin_http_gateway_parser(parser=None): """Add the options to rest server :param parser: the parser """ gp = add_arg_group(parser, title='HTTP Gateway') gp.add_argument( '--title', type=str, help='The title of this HTTP server. It will be used in automatics docs such as Swagger UI.', ) gp.add_argument( '--description', type=str, help='The description of this HTTP server. It will be used in automatics docs such as Swagger UI.', ) gp.add_argument( '--cors', action='store_true', default=False, help=''' If set, a CORS middleware is added to FastAPI frontend to allow cross-origin access. ''', ) gp.add_argument( '--no-debug-endpoints', action='store_true', default=False, help='If set, `/status` `/post` endpoints are removed from HTTP interface. ', ) gp.add_argument( '--no-crud-endpoints', action='store_true', default=False, help=''' If set, `/index`, `/search`, `/update`, `/delete` endpoints are removed from HTTP interface. Any executor that has `@requests(on=...)` bind with those values will receive data requests. ''', ) gp.add_argument( '--expose-endpoints', type=str, help=''' A JSON string that represents a map from executor endpoints (`@requests(on=...)`) to HTTP endpoints. ''', ) gp.add_argument( '--uvicorn-kwargs', action=KVAppendAction, metavar='KEY: VALUE', nargs='*', help=''' Dictionary of kwargs arguments that will be passed to Uvicorn server when starting the server More details can be found in Uvicorn docs: https://www.uvicorn.org/settings/ ''', ) gp.add_argument( '--ssl-certfile', type=str, help=''' the path to the certificate file ''', dest='ssl_certfile', ) gp.add_argument( '--ssl-keyfile', type=str, help=''' the path to the key file ''', dest='ssl_keyfile', )
[docs]def mixin_prefetch_parser(parser=None): """Add the options for prefetching :param parser: the parser """ gp = add_arg_group(parser, title='Prefetch') gp.add_argument( '--prefetch', type=int, default=1000, help=''' Number of requests fetched from the client before feeding into the first Executor. Used to control the speed of data input into a Flow. 0 disables prefetch (1000 requests is the default)''', )