Automatically version notebooks from JupyterLab
Project description
Multi ContentsManager
A meta ContentsManager
for installing multiple backends using JupyterLab Filetree
Install
pip install multicontentsmanager
jupyter labextension install multicontentsmanager
jupyter serverextension enable --py multicontentsmanager
Configure
Add the following to your jupyter_notebook_config.json
:
{
"NotebookApp": {
"contents_manager_class": "multicontentsmanager.metacontentsmanager.MetaContentsManager",
"nbserver_extensions": {
"multicontentsmanager": true
}
}
}
Register additional contents managers in your jupyter_notebook_config.py
. As an example, an S3Contents manager is added as follows:
from s3contents import S3ContentsManager
c.MultiContentsManager.contents_managers = \
{
's3': S3ContentsManager
}
c.S3ContentsManager.bucket = '<your bucket>'
## SECRET
c.S3ContentsManager.access_key_id = '<your access key>'
c.S3ContentsManager.secret_access_key = '<your secret key>'
During application startup, you should see something like this in the logs:
MultiContentsManager active with 2 managers
Installing multicontentsmanager handler on path /multicontents
And in the UI, you will see your contents managers available:
We can add additional contents managers:
c.MultiContentsManager.contents_managers = \
{
's3': S3ContentsManager,
'file2': AbsolutePathFileManager(root_dir=os.path.expanduser("~/Downloads"))
}
Here I utilize an AbsolutePathFileManager
to grab another folder on my system for use. Remember, remote filesystems are still remote, and locally you may need to move around the filesystem with a os.chdir
command (or equivalent in other languages).
Here, I have the above s3
and AbsolutePathFileManager
, along with the original contents manager, for a total of 3 seperate spaces.