You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit f30de51
Browse filesBrowse the repository at this point in the historyBrowse files
Update docs to reflect renamed TUI app modules and add video generation guide
- Fix stale module names (stack_demo_tui → stack_app, etc.) throughout README and AGENTS.md
- Correct short aliases and test file names for all six TUI entries in the README table
- Add run-*-app and demo-* targets to the All Valid Targets table
- Add Producing Demo Videos section documenting make demo-<name> and make demo-all
- Fix test reference in docs/StackTUI.md (test_stack_demo_tui → test_stack_app)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: AGENTS.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,11 +32,11 @@ Pull requests should include a brief description, the data structures or tests c
32
32
33
33
Several data structures have an interactive terminal UI built with [Textual](https://textual.textualize.io). There are two implementation patterns in use.
34
34
35
-
### Standalone TUI (`stack_demo_tui.py`)
35
+
### Standalone TUI (`stack_app.py`)
36
36
37
-
`stack_demo_tui.py` is self-contained: it defines its own `StackDemo` model, panel widget, and full command dispatcher without inheriting from any shared base class. All future shared-base improvements do not automatically reach the stack TUI unless it is later refactored to inherit from `BaseLinearStructureTUI`.
37
+
`stack_app.py` is self-contained: it defines its own `StackDemo` model, panel widget, and full command dispatcher without inheriting from any shared base class. All future shared-base improvements do not automatically reach the stack TUI unless it is later refactored to inherit from `BaseLinearStructureTUI`.
38
38
39
-
### Base-class TUIs (`tui_common.py`)
39
+
### Base-class TUIs (`common.py`)
40
40
41
41
All other linear-structure TUIs inherit from `BaseLinearStructureTUI` in `data_structures/tui/common.py`. The base class provides:
Copy file name to clipboardExpand all lines: README.md
+50-15Lines changed: 50 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,15 +26,24 @@ make test-stack
26
26
make run-stack
27
27
```
28
28
29
-
The repo now includes interactive Textual TUIs for:
30
-
-`stack_demo_tui`
31
-
-`queue_demo_tui`
32
-
-`deque_demo_tui`
33
-
-`list_demo_tui`
34
-
-`singly_linked_list_tui`
35
-
-`doubly_linked_list_tui`
29
+
The repo includes interactive Textual TUIs for six data structures. Launch any of them with a dedicated `make run-*-app` target:
36
30
37
-
Use targets such as `make run-stack-app`, `make run-queue-app`, or `make run-dll-app`. Other demo modules do not yet have a `__main__` block, so their `run-*` targets verify a clean import but produce no output.
31
+
```bash
32
+
make run-stack-app
33
+
make run-queue-app
34
+
make run-deque-app
35
+
make run-list-app
36
+
make run-sll-app
37
+
make run-dll-app
38
+
```
39
+
40
+
You can also run a TUI directly:
41
+
42
+
```bash
43
+
.venv/bin/python -m data_structures.tui.stack_app
44
+
```
45
+
46
+
Non-TUI demo modules contain only class definitions, so their `make run-<name>` targets verify a clean import but produce no output.
38
47
39
48
For walkthroughs of the interactive apps, see:
40
49
-`docs/StackTUI.md`
@@ -44,14 +53,40 @@ For walkthroughs of the interactive apps, see:
44
53
-`docs/SinglyLinkedListTUI.md`
45
54
-`docs/DoublyLinkedListTUI.md`
46
55
56
+
## Producing Demo Videos
57
+
58
+
Demo tapes live in `demos/`. Each TUI has a dark-theme tape and a light-theme tape. Generating the videos requires [vhs](https://github.com/charmbracelet/vhs).
59
+
60
+
Produce videos for one TUI (dark + light):
61
+
62
+
```bash
63
+
make demo-stack
64
+
make demo-queue
65
+
make demo-deque
66
+
make demo-list
67
+
make demo-sll
68
+
make demo-dll
69
+
```
70
+
71
+
Produce all videos at once:
72
+
73
+
```bash
74
+
make demo-all
75
+
```
76
+
77
+
Individual tape variants are also available, for example `make demo-stack-dark` or `make demo-dll-light`. Generated `.mp4` files are written to `demos/`.
78
+
47
79
## All Valid Targets
48
80
49
81
| Target | Description |
50
82
|---|---|
51
83
|`make install`| Create `.venv` and install dependencies |
52
84
|`make test`| Run the full test suite |
53
-
|`make run-<name>`| Import a single demo module |
85
+
|`make run-<name>`| Import a single non-TUI demo module |
86
+
|`make run-<name>-app`| Launch a TUI app interactively |
54
87
|`make test-<name>`| Run a single test module with verbose output |
88
+
|`make demo-<name>`| Produce dark+light demo videos for one TUI (requires [vhs](https://github.com/charmbracelet/vhs)) |
89
+
|`make demo-all`| Produce demo videos for all six TUIs |
55
90
56
91
Valid `<name>` values (short alias or full name both work):
57
92
@@ -66,13 +101,13 @@ Valid `<name>` values (short alias or full name both work):
0 commit comments