MCPcopy Create free account
hub / github.com/apache/arrow / main

Function main

python/examples/flight/middleware.py:119–171  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

117
118
119def main():
120 parser = argparse.ArgumentParser()
121
122 subparsers = parser.add_subparsers(dest="command")
123 client = subparsers.add_parser("client", help="Run the client.")
124 client.add_argument("server")
125 client.add_argument("--request-id", default=None)
126
127 server = subparsers.add_parser("server", help="Run the server.")
128 server.add_argument(
129 "--listen",
130 required=True,
131 help="The location to listen on (example: grpc://localhost:5050)",
132 )
133 server.add_argument(
134 "--delegate",
135 required=False,
136 default=None,
137 help=("A location to delegate to. That is, this server will "
138 "simply call the given server for the response. Demonstrates "
139 "propagation of the trace ID between servers."),
140 )
141 server.add_argument(
142 "--otel",
143 action="store_true",
144 help="Use OpenTelemetry instrumentation."
145 )
146
147 args = parser.parse_args()
148 if not getattr(args, "command"):
149 parser.print_help()
150 return 1
151
152 if args.command == "server":
153 middleware = {"trace": TracingServerMiddlewareFactory()}
154 if args.otel:
155 middleware["otel"] = flight.TracingServerMiddlewareFactory()
156 server = FlightServer(
157 args.delegate,
158 location=args.listen,
159 middleware=middleware)
160 server.serve()
161 elif args.command == "client":
162 client = flight.connect(
163 args.server,
164 middleware=(TracingClientMiddlewareFactory(),))
165 if args.request_id:
166 TraceContext.set_trace_id(args.request_id)
167 else:
168 TraceContext.set_trace_id("client-chosen-id")
169
170 for result in client.do_action(flight.Action("get-trace-id", b"")):
171 print(result.body.to_pybytes())
172
173
174if __name__ == "__main__":

Callers 1

middleware.pyFile · 0.70

Calls 6

parse_argsMethod · 0.80
set_trace_idMethod · 0.80
FlightServerClass · 0.70
do_actionMethod · 0.45

Tested by

no test coverage detected