0.0.1 • Published 4 years ago

multicontentsmanager v0.0.1

Weekly downloads
5
License
-
Repository
-
Last release
4 years ago

Multi ContentsManager

A meta ContentsManager for installing multiple backends using JupyterLab Filetree

Build Status GitHub issues Coverage PyPI PyPI npm

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: npm.io

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.

npm.io