Skip to content

Commit 9a5e3fa

Browse files
Merge pull request #2273 from redis/DOC-5831-ipynb-conv-tool
DOC-5831 Tool to convert TCE examples to notebooks
2 parents ebacef0 + d065b4c commit 9a5e3fa

File tree

6 files changed

+3946
-0
lines changed

6 files changed

+3946
-0
lines changed

build/jupyterize/QUICKSTART.md

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
# Jupyterize - Quick Start Guide
2+
3+
## Installation
4+
5+
```bash
6+
pip install nbformat
7+
```
8+
9+
## Basic Usage
10+
11+
```bash
12+
# Convert a file (creates example.ipynb)
13+
python build/jupyterize/jupyterize.py example.py
14+
15+
# Specify output location
16+
python build/jupyterize/jupyterize.py example.py -o notebooks/example.ipynb
17+
18+
# Enable verbose logging
19+
python build/jupyterize/jupyterize.py example.py -v
20+
```
21+
22+
## What It Does
23+
24+
Converts code example files → Jupyter notebooks (`.ipynb`)
25+
26+
**Automatic:**
27+
- ✅ Detects language from file extension
28+
- ✅ Selects appropriate Jupyter kernel
29+
- ✅ Excludes `EXAMPLE:` and `BINDER_ID` markers
30+
- ✅ Includes code in `HIDE_START`/`HIDE_END` blocks
31+
- ✅ Excludes code in `REMOVE_START`/`REMOVE_END` blocks
32+
- ✅ Creates separate cells for each `STEP_START`/`STEP_END` block
33+
34+
## Supported Languages
35+
36+
| Extension | Language | Kernel |
37+
|-----------|------------|--------------|
38+
| `.py` | Python | python3 |
39+
| `.js` | JavaScript | javascript |
40+
| `.go` | Go | gophernotes |
41+
| `.cs` | C# | csharp |
42+
| `.java` | Java | java |
43+
| `.php` | PHP | php |
44+
| `.rs` | Rust | rust |
45+
46+
## Input File Format
47+
48+
```python
49+
# EXAMPLE: example_id
50+
# BINDER_ID optional-binder-id
51+
import redis
52+
53+
# STEP_START connect
54+
r = redis.Redis()
55+
# STEP_END
56+
57+
# STEP_START set_get
58+
r.set('foo', 'bar')
59+
r.get('foo')
60+
# STEP_END
61+
```
62+
63+
## Output Structure
64+
65+
Creates a Jupyter notebook with:
66+
- **Preamble cell** - Code before first `STEP_START`
67+
- **Step cells** - Each `STEP_START`/`STEP_END` block
68+
- **Kernel metadata** - Automatically set based on language
69+
- **Step metadata** - Step names stored in cell metadata
70+
71+
## Common Issues
72+
73+
**"Unsupported file extension"**
74+
→ Use a supported extension (.py, .js, .go, .cs, .java, .php, .rs)
75+
76+
**"File must start with EXAMPLE: marker"**
77+
→ Add `# EXAMPLE: <id>` (or `//` for JS/Go/etc.) as first line
78+
79+
**"Input file not found"**
80+
→ Check file path is correct
81+
82+
## Testing
83+
84+
```bash
85+
# Run automated tests
86+
python build/jupyterize/test_jupyterize.py
87+
```
88+
89+
## More Information
90+
91+
- **User Guide**: `build/jupyterize/README.md`
92+
- **Technical Spec**: `build/jupyterize/SPECIFICATION.md`
93+
- **Implementation**: `build/jupyterize/IMPLEMENTATION.md`
94+

0 commit comments

Comments
 (0)