This file is indexed.

/usr/lib/python2.7/dist-packages/IPython/html/notebook/handlers.py is in ipython-notebook 1.2.1-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
"""Tornado handlers for the live notebook view.

Authors:

* Brian Granger
"""

#-----------------------------------------------------------------------------
#  Copyright (C) 2011  The IPython Development Team
#
#  Distributed under the terms of the BSD License.  The full license is in
#  the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------

#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------

import os
from tornado import web
HTTPError = web.HTTPError

from ..base.handlers import IPythonHandler
from ..utils import url_path_join

#-----------------------------------------------------------------------------
# Handlers
#-----------------------------------------------------------------------------


class NewHandler(IPythonHandler):

    @web.authenticated
    def get(self):
        notebook_id = self.notebook_manager.new_notebook()
        self.redirect(url_path_join(self.base_project_url, notebook_id))


class NamedNotebookHandler(IPythonHandler):

    @web.authenticated
    def get(self, notebook_id):
        nbm = self.notebook_manager
        if not nbm.notebook_exists(notebook_id):
            raise web.HTTPError(404, u'Notebook does not exist: %s' % notebook_id)       
        self.write(self.render_template('notebook.html',
            project=self.project,
            notebook_id=notebook_id,
            kill_kernel=False,
            mathjax_url=self.mathjax_url,
            )
        )


class NotebookRedirectHandler(IPythonHandler):
    
    @web.authenticated
    def get(self, notebook_name):
        # strip trailing .ipynb:
        notebook_name = os.path.splitext(notebook_name)[0]
        notebook_id = self.notebook_manager.rev_mapping.get(notebook_name, '')
        if notebook_id:
            url = url_path_join(self.settings.get('base_project_url', '/'), notebook_id)
            return self.redirect(url)
        else:
            raise HTTPError(404)


class NotebookCopyHandler(IPythonHandler):

    @web.authenticated
    def get(self, notebook_id):
        notebook_id = self.notebook_manager.copy_notebook(notebook_id)
        self.redirect(url_path_join(self.base_project_url, notebook_id))


#-----------------------------------------------------------------------------
# URL to handler mappings
#-----------------------------------------------------------------------------


_notebook_id_regex = r"(?P<notebook_id>\w+-\w+-\w+-\w+-\w+)"
_notebook_name_regex = r"(?P<notebook_name>.+\.ipynb)"

default_handlers = [
    (r"/new", NewHandler),
    (r"/%s" % _notebook_id_regex, NamedNotebookHandler),
    (r"/%s" % _notebook_name_regex, NotebookRedirectHandler),
    (r"/%s/copy" % _notebook_id_regex, NotebookCopyHandler),

]