Closed sp-fm closed 3 years ago
Had the same issue. A hacky fix for now is you can go into _util.py manually, insert:
nb.metadata['kernelspec']['name'] = 'python3'
nb.metadata['kernelspec']['display_name'] = 'Python 3'
inside strip_output()
When I make changes to a code and then do git checkout to undo those changes it removes the kernelspec name and display_name metadata. This is as expected. But when I try to rerun the notebook it throws the following errors: a. Kernel not found b. Notebook validation failed: 'name' is a required property: c. Notebook validation failed: 'display_name' is a required property:
Hope this helps, but I've found that deleting the entire kernelspec (i.e. the extra key is: metadata.kernelspec
) doesn't throw the notebook errors, at least when set up as a pre-commit hook. Booting the notebook then defaults to Python 3 kernel.
I can confirm the behavior @sp-fm is seeing and the suggestion from @ESKYoung works for me. Seems GitHub renders notebooks without kernelspec
metadata fine too.
I've added a note to the README. Let me know if that's satisfactory for you.
Looks good to me @kynan, thanks!
Thanks. I'll close this. Please reopen if the proposed solution doesn't work for someone.
Jupyter Version
NOTE: The latest version of jupyter changed
metadata.kernel_spec
tometadata.kernelspec
.Problem
I stripped the
kernelspec
metadata using the following command:On doing so I encountered two problems:
git checkout
to undo those changes it removes the kernelspec name and display_name metadata. This is as expected. But when I try to rerun the notebook it throws the following errors: a. Kernel not found b. Notebook validation failed: 'name' is a required property: c. Notebook validation failed: 'display_name' is a required property:Change Request
Is it possible to set the name and display_name to a default value such as: