Open minrk opened 3 years ago
I'm curious about this answer too. It's been a bit confusing that we've moved from being a subclass to having an attribute. Is it so that the ExtensionApp can support having either a NotebookApp or a ServerApp attribute to aid in the transition?
The notes for today's jupyter server meeting have an excellent exposition on this topic: https://github.com/jupyter-server/team-compass/issues/4#issuecomment-769277987
Thanks for the explanation!
I'm investigating https://github.com/jupyterlab/jupyterlab/issues/8807 and discovered that what should work:
doesn't. The immediate failure is:
The underlying cause is that
make_singleuser_app
expects either the old NotebookApp or the new ServerApp, but LabApp is actually an ExtensionApp, which has a ServerApp rather than is a ServerApp. The underlying ServerApp class is not accessible (it is hardcoded toServerApp
), and thus not really extensible via normal means. This makes wrapping it not really feasible. Since LabApp is an app that launches a server, it seems like it should really be a ServerApp.What's the best way to make LabApp or similar applications that really are server applications really extend ServerApp instead of this ExtensionApp wrapper? It seems like ExtensionApp should really subclass ServerApp and call super instead of initializing two global Application instances.