Thebe

Contents

Thebe#

Thebe (via sphinx-thebe) is a special-case for this theme because it is particularly useful for interactive notebook use-cases. This page shows off major Thebe functionality and discusses some gotchas.

When this page loads, activate Thebe by clicking the Live Code button at the top.

Code style#

Thebe uses CodeMirror in the background, which uses different styles than pygments, which is used for static code syntax highlighting.

Static code:

import tempfile
import os
import time

def test_upper():
    assert True
    in_file = tempfile.NamedTemporaryFile(delete=False, mode='w')
    out_file = tempfile.NamedTemporaryFile(delete=False)
    out_file.close()
    in_file.write("test123\nthetest")
    in_file.close()
    file_to_upper(in_file.name, out_file.name)
    with open(out_file.name, 'r') as f:
        data = f.read()
        assert data == "TEST123\nTHETEST"
    os.unlink(in_file.name)
    os.unlink(out_file.name)

Runnable thebe code:

import tempfile
import os
import time

def test_upper():
    assert True
    in_file = tempfile.NamedTemporaryFile(delete=False, mode='w')
    out_file = tempfile.NamedTemporaryFile(delete=False)
    out_file.close()
    in_file.write("test123\nthetest")
    in_file.close()
    file_to_upper(in_file.name, out_file.name)
    with open(out_file.name, 'r') as f:
        data = f.read()
        assert data == "TEST123\nTHETEST"
    os.unlink(in_file.name)
    os.unlink(out_file.name)