jupyter / nbclient

A client library for executing notebooks. Formally nbconvert's ExecutePreprocessor
https://nbclient.readthedocs.io/en/latest/
BSD 3-Clause "New" or "Revised" License
152 stars 56 forks source link

Executing notebooks with %load and other IPython magic commands #313

Open liquidcarbon opened 6 months ago

liquidcarbon commented 6 months ago

Hi! I'm seeing different behavior in how nbclient handles inline magics. It's cool with %%bash but won't execute %load.

Is that something that could be addressed?

What happens after running nbclient

image

What happens when running in Jupyter (what I'd like nbclient to do)

image

Notebook:

{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4547",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%bash\n",
    "pwd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7184",
   "metadata": {},
   "outputs": [],
   "source": [
    "%load https://raw.githubusercontent.com/liquidcarbon/puppy/main/examples/Q-strings/Q.py"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bc1947e4-a990-4e54-8bd4-a3abb9ff2baa",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "ducks-pandas-3.12",
   "language": "python",
   "name": "ducks-pandas-3.12"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
liquidcarbon commented 6 months ago

possible workaround https://stackoverflow.com/questions/74810124/how-to-run-an-ipython-cell-magic-from-a-script-magic

but I really wish I could create notebook templates that pick up published scripts via %load without inventing something

hjliu0206 commented 5 months ago

for the first screenshot which you pasted , you mean nbclient will not execute second cell ? (%load xxxx)

liquidcarbon commented 5 months ago

for the first screenshot which you pasted , you mean nbclient will not execute second cell ? (%load xxxx)

yes - it shows as executed but nothing is loaded

flying-sheep commented 1 month ago

I think that when I execute a notebook with a kernel

currently nbclient does neither, which is surprising.