8000 Merge pull request #23539 from QuLogic/webagg-examplar · matplotlib/matplotlib@1cedc97 · GitHub
[go: up one dir, main page]

Skip to content

Commit 1cedc97

Browse files
authored
Merge pull request #23539 from QuLogic/webagg-examplar
DOC: Small improvements to WebAgg example
2 parents 9041766 + 370aac0 commit 1cedc97

File tree

1 file changed

+30
-4
lines changed

1 file changed

+30
-4
lines changed

examples/user_interfaces/embedding_webagg_sgskip.py

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,13 @@
1111
The framework being used must support web sockets.
1212
"""
1313

14+
import argparse
1415
import io
1516
import json
1617
import mimetypes
1718
from pathlib import Path
19+
import signal
20+
import socket
1821

1922
try:
2023
import tornado
@@ -238,13 +241,36 @@ def __init__(self, figure):
238241

239242

240243
if __name__ == "__main__":
244+
parser = argparse.ArgumentParser()
245+
parser.add_argument('-p', '--port', type=int, default=8080,
246+
help='Port to listen on (0 for a random port).')
247+
args = parser.parse_args()
248+
241249
figure = create_figure()
242250
application = MyApplication(figure)
243251

244252
http_server = tornado.httpserver.HTTPServer(application)
245-
http_server.listen(8080)
246-
247-
print("http://127.0.0.1:8080/")
253+
sockets = tornado.netutil.bind_sockets(args.port, '')
254+
http_server.add_sockets(sockets)
255+
256+
for s in sockets:
257+
addr, port = s.getsockname()[:2]
258+
if s.family is socket.AF_INET6:
259+
addr = f'[{addr}]'
260+
print(f"Listening on http://{addr}:{port}/")
248261
print("Press Ctrl+C to quit")
249262

250-
tornado.ioloop.IOLoop.instance().start()
263+
ioloop = tornado.ioloop.IOLoop.instance()
264+
265+
def shutdown():
266+
ioloop.stop()
267+
print("Server stopped")
268+
269+
old_handler = signal.signal(
270+
signal.SIGINT,
271+
lambda sig, frame: ioloop.add_callback_from_signal(shutdown))
272+
273+
try:
274+
ioloop.start()
275+
finally:
276+
signal.signal(signal.SIGINT, old_handler)

0 commit comments

Comments
 (0)
0