You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ORPA-pyOpenRPA/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/jupyter_contrib_core/application.py

63 lines
1.9 KiB

# coding: utf-8
"""
Common application classes for jupyter_contrib.
Including the root `jupyter-contrib` command.
"""
from __future__ import print_function
import sys
import pkg_resources
from jupyter_core.application import JupyterApp
from jupyter_contrib_core import __version__
class JupyterContribApp(JupyterApp):
"""Root level jupyter_contrib app."""
name = 'jupyter contrib'
version = __version__
description = (
'community-contributed spice for Jupyter Interactive Computing')
def __init__(self, *args, **kwargs):
self._refresh_subcommands()
super(JupyterContribApp, self).__init__(*args, **kwargs)
def _refresh_subcommands(self):
"""
Finds subcommands which have registered entry points.
Each entry point is a function which returns a subcommands-style dict,
where the keys are the name of the subcommand, and the values are
2-tuples containing the sub-application class, and a description of the
subcommand's action.
"""
group = 'jupyter_contrib_core.app.subcommands'
new_subcommands = {}
# import ipdb; ipdb.set_trace()
for entrypoint in pkg_resources.iter_entry_points(group=group):
get_subcommands_dict = entrypoint.load()
new_subcommands.update(get_subcommands_dict())
self.subcommands.clear()
self.subcommands.update(new_subcommands)
def start(self):
"""Perform the App's actions as configured"""
super(JupyterContribApp, self).start()
# The above should have called a subcommand and raised NoStart; if we
# get here, it didn't, so we should self.log.info a message.
self.print_help()
subcmds = ", ".join(sorted(self.subcommands))
sys.exit("Please supply at least one subcommand: %s" % subcmds)
main = JupyterContribApp.launch_instance
if __name__ == '__main__': # pragma: no cover
main()