Skip to content

Commit 9535ec0

Browse files
committed
clean_nb: Don't exect nb to be AttrDict
1 parent 3acb976 commit 9535ec0

File tree

3 files changed

+6
-16
lines changed

3 files changed

+6
-16
lines changed

README.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,8 @@ Getting Started
33

44
<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->
55

6-
<div>
7-
86
![CI](https://github.com/fastai/nbdev/actions/workflows/test.yaml/badge.svg)
97

10-
</div>
11-
128
*NB: This is nbdev v2, a major upgrade of nbdev. Whilst the differences
139
to nbdev1 aren’t huge, it does require some changes. The old version
1410
docs are at [nbdev1.fast.ai](https://nbdev1.fast.ai). You can use
@@ -75,8 +71,6 @@ The best way to learn how to use nbdev is to complete either the
7571
[written walkthrough](https://nbdev.fast.ai/tutorials/tutorial.html) or
7672
video walkthrough:
7773

78-
<div style="text-align: center">
79-
8074
<div>
8175

8276
<a href="http://www.youtube.com/watch?v=l7zS8Ld4_iA" target="_blank"
@@ -86,8 +80,6 @@ style="border-radius: 10px" width="560" height="315" /></a>
8680

8781
</div>
8882

89-
</div>
90-
9183
Alternatively, there’s a [shortened version of the video
9284
walkthrough](https://youtu.be/67FdzLSt4aA) with coding sections sped up
9385
using the `unsilence` Python library – it’s 27 minutes faster, but a bit

nbdev/clean.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,14 +93,13 @@ def clean_nb(
9393
clean_ids=True, # Remove ids from plaintext reprs?
9494
):
9595
"Clean `nb` from superfluous metadata"
96-
assert isinstance(nb, AttrDict)
9796
metadata_keys = {"kernelspec", "jekyll", "jupytext", "doc", "widgets"}
9897
if allowed_metadata_keys: metadata_keys.update(allowed_metadata_keys)
9998
cell_metadata_keys = {"hide_input"}
10099
if allowed_cell_metadata_keys: cell_metadata_keys.update(allowed_cell_metadata_keys)
101100
for c in nb['cells']: _clean_cell(c, clear_all, cell_metadata_keys, clean_ids)
102-
if nested_attr(nb, 'metadata.kernelspec.name'):
103-
nb['metadata']['kernelspec']['display_name'] = nb.metadata.kernelspec.name
101+
if nb.get('metadata', {}).get('kernelspec', {}).get('name', None):
102+
nb['metadata']['kernelspec']['display_name'] = nb["metadata"]["kernelspec"]["name"]
104103
nb['metadata'] = {k:v for k,v in nb['metadata'].items() if k in metadata_keys}
105104

106105
# %% ../nbs/api/11_clean.ipynb 27
@@ -114,7 +113,7 @@ def process_write(warn_msg, proc_nb, f_in, f_out=None, disp=False):
114113
if isinstance(f_in, (str,Path)): f_in = Path(f_in).open()
115114
try:
116115
_reconfigure(f_in, f_out)
117-
nb = dict2nb(loads(f_in.read()))
116+
nb = loads(f_in.read())
118117
proc_nb(nb)
119118
write_nb(nb, f_out) if not disp else sys.stdout.write(nb2str(nb))
120119
except Exception as e:

nbs/api/11_clean.ipynb

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -210,14 +210,13 @@
210210
" clean_ids=True, # Remove ids from plaintext reprs?\n",
211211
"):\n",
212212
" \"Clean `nb` from superfluous metadata\"\n",
213-
" assert isinstance(nb, AttrDict)\n",
214213
" metadata_keys = {\"kernelspec\", \"jekyll\", \"jupytext\", \"doc\", \"widgets\"}\n",
215214
" if allowed_metadata_keys: metadata_keys.update(allowed_metadata_keys)\n",
216215
" cell_metadata_keys = {\"hide_input\"}\n",
217216
" if allowed_cell_metadata_keys: cell_metadata_keys.update(allowed_cell_metadata_keys)\n",
218217
" for c in nb['cells']: _clean_cell(c, clear_all, cell_metadata_keys, clean_ids)\n",
219-
" if nested_attr(nb, 'metadata.kernelspec.name'):\n",
220-
" nb['metadata']['kernelspec']['display_name'] = nb.metadata.kernelspec.name\n",
218+
" if nb.get('metadata', {}).get('kernelspec', {}).get('name', None):\n",
219+
" nb['metadata']['kernelspec']['display_name'] = nb[\"metadata\"][\"kernelspec\"][\"name\"]\n",
221220
" nb['metadata'] = {k:v for k,v in nb['metadata'].items() if k in metadata_keys}"
222221
]
223222
},
@@ -368,7 +367,7 @@
368367
" if isinstance(f_in, (str,Path)): f_in = Path(f_in).open()\n",
369368
" try:\n",
370369
" _reconfigure(f_in, f_out)\n",
371-
" nb = dict2nb(loads(f_in.read()))\n",
370+
" nb = loads(f_in.read())\n",
372371
" proc_nb(nb)\n",
373372
" write_nb(nb, f_out) if not disp else sys.stdout.write(nb2str(nb))\n",
374373
" except Exception as e:\n",

0 commit comments

Comments
 (0)