Source code for nglview.scripts.app
import socket
from itertools import chain
from notebook.notebookapp import NotebookApp, random_ports
from tornado import httpserver
[docs]class NGLViewApp(NotebookApp):
[docs] def get_port(self, port=None):
# user-given port
uport = [
port,
] if port is not None else [
self.port,
]
def func():
return
self.http_server = httpserver.HTTPServer(func)
success = None
for port in chain(uport, random_ports(self.port,
self.port_retries + 1)):
try:
self.http_server.listen(port, self.ip)
except (OSError, socket.error):
pass
else:
self.port = port
success = True
break
if not success:
self.log.critical(
'ERROR: the notebook server could not be started because '
'no available port could be found.')
self.exit(1)
self.http_server.stop()
return self.port