Manage a collection of notebooks with the CLI#
Here we consider that you have a collection of existing notebooks that you’d like to become
more reproducible through pypackage tracking
more findable & integrated through project management metadata
Warning
This implementation is subject to change. We’ll offer better & better ways of integrating databases and a distributed metadata store.
Initialize nbproject#
Use the CLI to init nbproject
for a collection of notebooks like this:
$ cd my_notebook_collection/
$ nbproject init
created my_notebook_collection/nbproject_metadata.yml
Now all notebooks contain the initial nbproject metadata fields.
The nbproject_metadata.yml
file shows you the metadata fields for each notebook, and serves as a metadata “database” for the project.
You’ll of course also see these metadata fields in each notebook, as usual, when calling:
from nbproject import header
Synchronize changes#
If you have any changes in the metadata of the notebooks of your project, changes in location of a notebook within the project directory, additions of new notebooks, renamings etc., you can synchronize everything with nbproject_metadata.yml
via
$ nbproject sync .
synchronized my_notebook_collection/nbproject_metadata.yml
Passing .
to nbproject sync
synchronizes the whole root directory of you project.
You can also pass a list of paths within you project to synchronize only specific notebooks.
Infer pypackages#
To automatically infer pypackages from the notebooks of your project, use the option --deps
(or -d
):
$ nbproject sync . --deps
synchronized my_notebook_collection/nbproject_metadata.yml
This command parses the notebooks, infers all pypackages within the notebooks with their versions from the current python environment and writes them to metadata of the notebooks.
Pin pypackages#
If you want to avoid pining the pypackages versions, use the option --no-versions
(or -nv
):
$ nbproject sync . --deps --no-versions
synchronized my_notebook_collection/nbproject_metadata.yml
Publish a list of notebooks#
You can use CLI to publish a list of notebooks (see the publish tutorial also):
$ nbproject publish notebook.ipynb another_notebook.ipynb
published 2 notebooks.
Generate a requirements file#
To generate a requirements.txt
for a list of notebooks of the project, run:
$ nbproject reqs .
created my_notebook_collection/requirements.txt
Again, passing .
means that requirements.txt
is created for all notebooks of your project.
To create the file only for specific notebooks, pass the list of their paths.