How to use terminado - 10 common examples

To help you get started, we’ve selected a few terminado examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github blink1073 / jupyter_demo / src / main.py View on Github external
def main(argv):
    if len(sys.argv) > 1:
        cmd = sys.argv[1]
    else:
        cmd = 'bash'
    term_manager = SingleTermManager(shell_command=[cmd])

    handlers = [
        (r"/websocket", TermSocket,
         {'term_manager': term_manager}),
        (r"/", TerminalPageHandler),
        (r'/(.*)', tornado.web.StaticFileHandler,
         {'path': '.'}),
        (r'/*/(.*)', tornado.web.StaticFileHandler,
         {'path': '.'}),
    ]

    nb_command = [sys.executable, '-m', 'notebook', '--no-browser',
                  '--NotebookApp.allow_origin="*"']
    nb_server = subprocess.Popen(nb_command, stderr=subprocess.STDOUT,
                                 stdout=subprocess.PIPE)

    # wait for notebook server to start up
    while 1:
        line = nb_server.stdout.readline().decode('utf-8').strip()
github nathanielobrown / flask-terminado / flask_terminado.py View on Github external
def add_terminal(self, route, command, workdir=None, env=None):
        assert route.startswith('/')
        if self.app is None:
            raise Exception("we don't support init_app yet")
        term_manager = SingleTermManager(shell_command=command)
        wrapped_app = tornado.wsgi.WSGIContainer(self.app)
        handlers = [
            ("{}/websocket".format(self.url_prefix),
                TermSocket, {'term_manager': term_manager}),
            (route,
                IndexHandler, {'url_prefix': self.url_prefix}),
            ("{}/(.*)".format(self.url_prefix),
                tornado.web.StaticFileHandler, {'path': '.'}),
            ("/(.*)",
                tornado.web.FallbackHandler, {'fallback': wrapped_app}),
        ]
        self.tornado_app = tornado.web.Application(handlers)
github jupyter / notebook / notebook / terminal / handlers.py View on Github external
from tornado import web
import terminado
from notebook._tz import utcnow
from ..base.handlers import IPythonHandler
from ..base.zmqhandlers import WebSocketMixin


class TerminalHandler(IPythonHandler):
    """Render the terminal interface."""
    @web.authenticated
    def get(self, term_name):
        self.write(self.render_template('terminal.html',
                   ws_path="terminals/websocket/%s" % term_name))


class TermSocket(WebSocketMixin, IPythonHandler, terminado.TermSocket):

    def origin_check(self):
        """Terminado adds redundant origin_check
        
        Tornado already calls check_origin, so don't do anything here.
        """
        return True

    def get(self, *args, **kwargs):
        if not self.get_current_user():
            raise web.HTTPError(403)
        return super(TermSocket, self).get(*args, **kwargs)

    def on_message(self, message):
        super(TermSocket, self).on_message(message)
        self.application.settings['terminal_last_activity'] = utcnow()
github SandstoneHPC / sandstone-ide / oide / app.py View on Github external
def __init__(self, *args, **kwargs):
        app_static_handlers = []
        for spec in get_installed_app_static_specs():
            s_url = r"/static/{}/(.*)".format(spec[0])
            s_dir = os.path.join(spec[1],'static')
            app_static_handlers.append(
                (s_url, tornado.web.StaticFileHandler, {'path': s_dir})
            )

        term_manager = SingleTermManager(shell_command=['bash'])
        self.term_manager = term_manager
        term_url = [(r"/terminal/a/term", TermSocket,
                     {'term_manager': term_manager})]

        handlers = [
                (r"/static/core/(.*)", tornado.web.StaticFileHandler, {'path': STATIC_DIR}),
            ] + app_static_handlers + URL_SCHEMA + term_url

        settings = dict(
            project_dir=PROJECT_DIR,
            static_dir=STATIC_DIR,
            login_url=global_settings.LOGIN_URL,
            cookie_secret = global_settings.COOKIE_SECRET,
            debug = global_settings.DEBUG,
            xsrf_cookies=True,
            ui_methods=ui_methods,
            )
github SandstoneHPC / sandstone-ide / sandstone / apps / webterminal / handlers.py View on Github external
import sandstone.lib.decorators
from sandstone.lib.handlers.base import BaseHandler
from terminado import TermSocket



class AuthTermSocket(TermSocket,BaseHandler):

    @sandstone.lib.decorators.authenticated
    def get(self, *args, **kwargs):
        return super(AuthTermSocket, self).get(*args, **kwargs)
github nathanielobrown / flask-terminado / flask_terminado.py View on Github external
def add_terminal(self, route, command, workdir=None, env=None):
        assert route.startswith('/')
        if self.app is None:
            raise Exception("we don't support init_app yet")
        term_manager = SingleTermManager(shell_command=command)
        wrapped_app = tornado.wsgi.WSGIContainer(self.app)
        handlers = [
            ("{}/websocket".format(self.url_prefix),
                TermSocket, {'term_manager': term_manager}),
            (route,
                IndexHandler, {'url_prefix': self.url_prefix}),
            ("{}/(.*)".format(self.url_prefix),
                tornado.web.StaticFileHandler, {'path': '.'}),
            ("/(.*)",
                tornado.web.FallbackHandler, {'fallback': wrapped_app}),
        ]
        self.tornado_app = tornado.web.Application(handlers)
github SandstoneHPC / sandstone-ide / oide / app.py View on Github external
def __init__(self, *args, **kwargs):
        app_static_handlers = []
        for spec in get_installed_app_static_specs():
            s_url = r"/static/{}/(.*)".format(spec[0])
            s_dir = os.path.join(spec[1],'static')
            app_static_handlers.append(
                (s_url, tornado.web.StaticFileHandler, {'path': s_dir})
            )

        term_manager = SingleTermManager(shell_command=['bash'])
        self.term_manager = term_manager
        term_url = [(r"/terminal/a/term", TermSocket,
                     {'term_manager': term_manager})]

        handlers = [
                (r"/static/core/(.*)", tornado.web.StaticFileHandler, {'path': STATIC_DIR}),
            ] + app_static_handlers + URL_SCHEMA + term_url

        settings = dict(
            project_dir=PROJECT_DIR,
            static_dir=STATIC_DIR,
            login_url=global_settings.LOGIN_URL,
            cookie_secret = global_settings.COOKIE_SECRET,
            debug = global_settings.DEBUG,
            xsrf_cookies=True,
            ui_methods=ui_methods,
github blink1073 / jupyter_demo / src / main.py View on Github external
def main(argv):
    if len(sys.argv) > 1:
        cmd = sys.argv[1]
    else:
        cmd = 'bash'
    term_manager = SingleTermManager(shell_command=[cmd])

    handlers = [
        (r"/websocket", TermSocket,
         {'term_manager': term_manager}),
        (r"/", TerminalPageHandler),
        (r'/(.*)', tornado.web.StaticFileHandler,
         {'path': '.'}),
        (r'/*/(.*)', tornado.web.StaticFileHandler,
         {'path': '.'}),
    ]

    nb_command = [sys.executable, '-m', 'notebook', '--no-browser',
                  '--NotebookApp.allow_origin="*"']
    nb_server = subprocess.Popen(nb_command, stderr=subprocess.STDOUT,
                                 stdout=subprocess.PIPE)
github mattvonrocketstein / smash / smashlib / ipy3x / html / terminal / __init__.py View on Github external
def initialize(webapp):
    shell = os.environ.get('SHELL', 'sh')
    terminal_manager = webapp.settings[
        'terminal_manager'] = NamedTermManager(shell_command=[shell])
    base_url = webapp.settings['base_url']
    handlers = [
        (ujoin(base_url, r"/terminals/(\w+)"), TerminalHandler),
        (ujoin(base_url, r"/terminals/websocket/(\w+)"), TermSocket,
         {'term_manager': terminal_manager}),
        (ujoin(base_url, r"/api/terminals"), api_handlers.TerminalRootHandler),
        (ujoin(base_url, r"/api/terminals/(\w+)"),
         api_handlers.TerminalHandler),
    ]
    webapp.add_handlers(".*$", handlers)
github jupyter / notebook / notebook / terminal / __init__.py View on Github external
def initialize(webapp, notebook_dir, connection_url, settings):
    if os.name == 'nt':
        default_shell = 'powershell.exe'
    else:
        default_shell = which('sh')
    shell = settings.get('shell_command',
        [os.environ.get('SHELL') or default_shell]
    )
    # Enable login mode - to automatically source the /etc/profile script
    if os.name != 'nt':
        shell.append('-l')
    terminal_manager = webapp.settings['terminal_manager'] = NamedTermManager(
        shell_command=shell,
        extra_env={'JUPYTER_SERVER_ROOT': notebook_dir,
                   'JUPYTER_SERVER_URL': connection_url,
                   },
    )
    terminal_manager.log = app_log
    base_url = webapp.settings['base_url']
    handlers = [
        (ujoin(base_url, r"/terminals/(\w+)"), TerminalHandler),
        (ujoin(base_url, r"/terminals/websocket/(\w+)"), TermSocket,
             {'term_manager': terminal_manager}),
        (ujoin(base_url, r"/api/terminals"), api_handlers.TerminalRootHandler),
        (ujoin(base_url, r"/api/terminals/(\w+)"), api_handlers.TerminalHandler),
    ]
    webapp.add_handlers(".*$", handlers)

terminado

Tornado websocket backend for the Xterm.js Javascript terminal emulator library.

BSD-2-Clause
Latest version published 1 month ago

Package Health Score

94 / 100
Full package analysis

Similar packages