Skip to main content

A Filesystem-like mult-contents manager backend for Jupyter

Project description

jupyter-fs

A plugin for JupyterLab that lets you set up and use as many filebrowsers as you like, connected to whatever local and/or remote filesystem-like resources you want.

The backend is built on top of PyFilesystem, while the frontend is built on top of JupyterLab Filetree.

Build Status GitHub issues Coverage PyPI PyPI npm

Install

pip install jupyter-fs

Configure

Add the following to your jupyter_notebook_config.json:

{
  "NotebookApp": {
    "contents_manager_class": "jupyterfs.metamanager.MetaManager",
    "nbserver_extensions": {
      "jupyterfs": true
    }
  }
}

Use

Add specifications for additional contents managers in your user settings (in the Settings menu under Advanced Settings Editor -> jupyter-fs). Here's an example of how to set up two new views of the local filesystem:

{
  "specs": [
    {
      "name": "local_test",
      "url": "osfs:///Users/foo/test"
    },
    {
      "name": "local_jupyter-fs_repo",
      "url": "osfs:///Users/foo/git/jupyter-fs"
    }
  ]
}

where osfs stands for os filesystem. You should see your new filebrowser pop up in the left-hand sidebar instantly when you save your settings:

PyFilesystem urls

"url" is a PyFilesystem opener url. For more info on how to write these urls, see the documentation of the relevant PyFilesystem plugin:

(EXPERIMENTAL) Adding remote filesystems

Not recommended for production use: currently requires saving your credentials in plaintext

jupyter-fs also supports a wide variety of remote filesystem-like resources. Currently, only S3 and smb/samba are confirmed to work/part of the test suite. In theory, any resource supported by PyFilesystem should be supported by jupyter-fs as well.

You can set up all of these different resources side-by-side:

{
  "specs": [
    {
      "name": "osfs_jupyter-fs_repo",
      "url": "osfs:///Users/foo/git/jupyter-fs"
    },
    {
      "name": "s3_foo",
      "url": "s3://username:passwd@foo?endpoint_url=http://127.0.0.1:9000"
    },
    {
      "name": "smb_test",
      "url": "smb://username:passwd@127.0.0.1/test?name-port=3669"
    }
  ]
}

Server-side settings

If you prefer to set up your filesystem resources in the server-side config, you can do so. For example, you can set up a local filesystem by adding the following to your jupyter_notebook_config.py:

c.jupyterfs.specs = [
    {
        "name": "local_test",
        "url": "osfs:///Users/foo/test"
    },
]

Any filesystem specs given in the server-side config will be merged with the specs given in a user's settings.

Development

See CONTRIBUTING.md for guidelines.

License

This software is licensed under the Apache 2.0 license. See the LICENSE and AUTHORS files for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jupyter-fs-0.0.2.tar.gz (386.2 kB view hashes)

Uploaded Source

Built Distribution

jupyter_fs-0.0.2-py2.py3-none-any.whl (86.3 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page