A python package providing an easy way to explicitly import Jupyter Notebooks files (.ipynb) the same way you would import regular .py files.
You can install ipynb with:
pip install ipynbYou can do a 'full' import - this has the same semantics of importing a .py file. All the code in the .ipynb file is executed, and classes/functions/variables in the top level are available for use.
If you have a notebook file named server.ipynb, you can import it via:
import ipynb.fs.full.serverYou can use the from ... import .. too.
from ipynb.fs.full.server import X, Y, XSometimes your notebook has been used as a way to run an analysis or other computation, and you only want to import the functions / classes defined in it - and not the extra statements you have in there. This can be accomplished via ipynb.fs.defs.
If you have a notebook file named server.ipynb, and do:
import ipynb.fs.defs.serverIt'll only execute and make available the following parts of the code in server.ipynb:
classdefinitionsdeffunction definitionsimportstatements- Assignment statements where the variables being assigned to are ALL_CAPS. These are assumed to be constants.
This skips most computational work and brings in your definitions only, making it easy to reuse functions / classes across similar analyses.
You can also easily do relative imports, both for full notebooks or for definitions only. This works inside notebooks too.
If you have a notebook called notebook1.ipynb in the same dir as your current notebook, you can import it with:
import ipynb.fs # Boilerplate required
# Do a full import
from .full.notebook1 import foo
# Do a definitions-only import
from .defs.notebook1 import barThis works transitively nicely - other code can import your notebook that's using relative imports and it'll all work well.