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
This implementation is subject to change. We’ll offer better & better ways of integrating databases and a distributed metadata store.
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.
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
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 sync . synchronized my_notebook_collection/nbproject_metadata.yml
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.
To automatically infer pypackages from the notebooks of your project, use the option
$ 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.
If you want to avoid pining the pypackages versions, use the option
$ 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
. 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.