# multicontentsmanager

> A JupyterLab extension.

Latest version **0.0.1** (published 2020-02-27) · 0 weekly downloads

## Install

```sh
npm install multicontentsmanager
pnpm add multicontentsmanager
yarn add multicontentsmanager
bun add multicontentsmanager
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.1 |
| Published | 2020-02-27 |
| First published | 2020-02-27 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 11 |
| Unpacked size | 66 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Tim Paine |
| Maintainers | timkpaine |
| Keywords | jupyter, jupyterlab, jupyterlab-extension |

## Links

- npm: https://www.npmjs.com/package/multicontentsmanager
- npm.io page: https://npm.io/package/multicontentsmanager

## Dependencies (11)

- [jszip](https://npm.io/package/jszip.md) ^3.2.2
- [file-saver](https://npm.io/package/file-saver.md) ^2.0.2
- [@types/jszip](https://npm.io/package/@types/jszip.md) ^3.1.6
- [@types/file-saver](https://npm.io/package/@types/file-saver.md) ^2.0.1
- [@phosphor/algorithm](https://npm.io/package/@phosphor/algorithm.md) ^1.1.3
- [@jupyterlab/apputils](https://npm.io/package/@jupyterlab/apputils.md) ^1.0.1
- [@jupyterlab/services](https://npm.io/package/@jupyterlab/services.md) ^4.0.1
- [@jupyterlab/coreutils](https://npm.io/package/@jupyterlab/coreutils.md) ^3.0.0
- [@jupyterlab/docmanager](https://npm.io/package/@jupyterlab/docmanager.md) ^1.0.1
- [@jupyterlab/application](https://npm.io/package/@jupyterlab/application.md) ^1.0.1
- [@jupyterlab/filebrowser](https://npm.io/package/@jupyterlab/filebrowser.md) ^1.0.1

## Recent versions

- 0.0.1 (latest) — 2020-02-27

## README

# Multi ContentsManager
A meta `ContentsManager` for installing multiple backends using [JupyterLab Filetree](https://github.com/youngthejames/jupyterlab_filetree)


[![Build Status](https://dev.azure.com/tpaine154/jupyter/_apis/build/status/timkpaine.multicontentsmanager?branchName=master)](https://dev.azure.com/tpaine154/jupyter/_build/latest?definitionId=20&branchName=master)
[![GitHub issues](https://img.shields.io/github/issues/timkpaine/multicontentsmanager.svg)]()
[![Coverage](https://img.shields.io/azure-devops/coverage/tpaine154/jupyter/20)](https://dev.azure.com/tpaine154/jupyter/_build?definitionId=20&_a=summary)
[![PyPI](https://img.shields.io/pypi/l/multicontentsmanager.svg)](https://pypi.python.org/pypi/multicontentsmanager)
[![PyPI](https://img.shields.io/pypi/v/multicontentsmanager.svg)](https://pypi.python.org/pypi/multicontentsmanager)
[![npm](https://img.shields.io/npm/v/multicontentsmanager.svg)](https://www.npmjs.com/package/multicontentsmanager)


## Install

```bash
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](https://github.com/danielfrg/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:
![](https://raw.githubusercontent.com/timkpaine/multicontentsmanager/master/docs/example.gif)


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. 

![](https://raw.githubusercontent.com/timkpaine/multicontentsmanager/master/docs/example2.gif)

---
_Source: https://npm.io/package/multicontentsmanager · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
