-
Notifications
You must be signed in to change notification settings - Fork 3
/
my_nbformat.py
41 lines (34 loc) · 1.43 KB
/
my_nbformat.py
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
# This Python script runs through all .ipynb files in "docs" and its sub-folders
# and adds "hide-output" tags to all code cells.
# It needs to be run manually.
import os
import nbformat
# Define the root directory where your notebooks are located
root_dir = "docs"
# Walk through the directory tree
notebooks_found = False
for subdir, _, files in os.walk(root_dir):
print(f"Checking directory: {subdir}")
for file in files:
if file.endswith(".ipynb"):
notebooks_found = True
notebook_path = os.path.join(subdir, file)
print(f"Processing notebook: {notebook_path}")
# Load the notebook
with open(notebook_path, "r") as f:
nb = nbformat.read(f, as_version=4)
# Apply 'hide-output' tag to all code cells
for cell in nb.cells:
if cell.cell_type == "code":
if "tags" not in cell.metadata:
cell.metadata["tags"] = []
if "hide-output" not in cell.metadata["tags"]:
cell.metadata["tags"].append("hide-output")
print(f"Tag applied to cell in notebook: {notebook_path}")
# Save the modified notebook
with open(notebook_path, "w") as f:
nbformat.write(nb, f)
if not notebooks_found:
print("No notebooks found in the specified directory.")
else:
print("All notebooks processed.")