This file is indexed.

/usr/lib/python3/dist-packages/sagenb_export/nbextension/export_handler.py is in python3-sagenb-export 3.2-3.

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
import os
import string
from itertools import count

from tornado.web import authenticated
from notebook.base.handlers import IPythonHandler
 
from sagenb_export.defaults import DOT_SAGE
from sagenb_export.logger import log
from sagenb_export.sagenb_reader import NotebookSageNB
from sagenb_export.ipynb_writer import IpynbWriter



def filename_escape(name):
    def escape(ch):
        if ch in string.ascii_letters + string.digits:
            return ch
        else:
            return '_'
    return ''.join(map(escape, name))




class ExportSageNBHandler(IPythonHandler):
    """
    Return a web page that lists the current SageNB worksheets
    """

    @property
    def dot_sage(self):
        return os.path.expanduser(DOT_SAGE)
        
    @authenticated
    def post(self):
        print('POST', self.request, self.request.body)
        ipynb_filename = self.safe_filename()
        IpynbWriter(self.notebook()).write(ipynb_filename)
        relative_url = '/notebooks/' + ipynb_filename
        self.finish(relative_url)

    @property
    def unique_id(self):
        return self.request.body
        
    def notebook(self):
        try:
            nb = self._notebook
        except AttributeError:
            nb = self._notebook = NotebookSageNB.find(self.dot_sage, self.unique_id)
        return nb
    
    def safe_filename(self):
        basename = filename_escape(self.notebook().name)
        filename = '{0}.ipynb'.format(basename)
        if not os.path.exists(filename):
            return filename
        for i in count(2):
            filename = '{0} ({1}).ipynb'.format(basename, i)
            if not os.path.exists(filename):
                return filename