-
Install Docker
-
Launch Redspot
docker run --rm -it -p8888:8888 -v$(pwd):/workdir ghcr.io/tomokinakamaru/redspot:latest
-
Open the localhost URL displayed in the terminal
... [C 2024-01-01 00:00:00.000 ServerApp] ... http://localhost:8888/tree?token=... # ← This URL http://127.0.0.1:8888/tree?token=... ...
-
Create a notebook and do anything you want
-
Replay your work
docker run --rm -it -v$(pwd):/workdir ghcr.io/tomokinakamaru/redspot:latest replay
Name | Type | Nullable |
---|---|---|
time | INTEGER | NO |
panel | TEXT | NO |
kind | TEXT | NO |
args | JSON | NO |
See the external type definitions for the following types:
- ExecutionCount
- IAttachments
- IBaseCellMetadata
- IMimeBundle
- MultilineString
- Partial
- PartialJSONObject
- StreamType
type ISessionContext_sessionChanged = {
val: string | undefined;
}
type INotebookModel_changed__cellsChange = {
delta: ({
op: "insert";
arg: {
id: string;
source: string;
cell_type: string;
metadata: Partial<IBaseCellMetadata>;
execution_count: ExecutionCount | undefined;
outputs: ({
data: IMimeBundle;
metadata: PartialJSONObject;
output_type: "execute_result";
} | {
data: IMimeBundle;
metadata: PartialJSONObject;
output_type: "display_data";
} | {
name: StreamType;
text: MultilineString;
output_type: "stream";
} | {
ename: string;
evalue: string;
traceback: string[];
output_type: "error";
})[] | undefined;
}[];
} | {
op: "delete";
arg: number;
} | {
op: "retain";
arg: number;
})[];
}
type INotebookModel_changed__nbformatChanged = {
key: string;
val: number | undefined;
}
type INotebookModel_changed__metadataChange = {
delta: {
key: string;
act: "delete" | "add" | "update";
val: any;
}[];
}
type ISharedCell_changed__attachmentsChange = {
cell: string;
val: IAttachments | undefined;
}
type ISharedCell_changed__executionCountChange = {
cell: string;
val: number | undefined;
}
type ISharedCell_changed__outputsChange = {
cell: string;
delta: ({
op: "insert";
arg: ({
data: IMimeBundle;
metadata: PartialJSONObject;
output_type: "execute_result";
} | {
data: IMimeBundle;
metadata: PartialJSONObject;
output_type: "display_data";
} | {
name: StreamType;
text: MultilineString;
output_type: "stream";
} | {
ename: string;
evalue: string;
traceback: string[];
output_type: "error";
})[];
} | {
op: "delete";
arg: number;
} | {
op: "retain";
arg: number;
})[];
}
type ISharedCell_changed__sourceChange = {
cell: string;
delta: ({
op: "insert";
arg: string;
} | {
op: "delete";
arg: number;
} | {
op: "retain";
arg: number;
})[];
}
type ISharedCell_changed__metadataChange = {
cell: string;
delta: {
key: string;
act: "delete" | "add" | "update";
val: any;
}[];
}
- Install Docker
- Open this repository using a dev container
- Run
pdm sync
to setup the environment - Run
sh kernel-install.sh
to install the default kernel - Run
source .venv/bin/activate
to activate the virtual environment
jlpm build
pdm run lint
pdm run fix # Fix lint issues
jlpm playwright install --with-deps chromium # Install dependencies
pdm run test
# Run this command outside the dev container
act --job check --matrix python-version:3.12
pdm build --no-sdist
# Paste command outputs to this README
python schema-table.py
jlpm run ts-node schema-json.ts
Check the URLs listed in Dockerfile
sh pdm-upgrade.sh
sh kernel-upgrade.sh
pdm update --unconstrained
jlpm plugin import @yarnpkg/plugin-interactive-tools
jlpm upgrade-interactive
jlpm plugin remove @yarnpkg/plugin-interactive-tools