/jupyter-pyfilesystem

Jupyter Notebook PyFilesystem Contents Manager

Primary LanguagePythonMIT LicenseMIT

Jupyter Notebook PyFilesystem Contents Manager

Build Status PyPI

A Jupyter Notebooks ContentsManager that uses PyFilesystem for storing files. Includes a compatible Checkpoints class.

Installation

pip install jupyter-pyfilesystem

Example

jupyter_notebook_config.py:

c.NotebookApp.contents_manager_class = 'jupyter_pyfilesystem.FsContentsManager'

# In-memory temporary filesystem
c.FsContentsManager.fs_url = 'mem://'

See https://docs.pyfilesystem.org/en/latest/openers.html for information on how to define fs_url, and https://docs.pyfilesystem.org/en/latest/builtin.html for a list of built-in filesystems. There are also several externally-contributed filesystems that can be used. Some are listed on https://www.pyfilesystem.org/page/index-of-filesystems/

Note some filesystems may not behave as you expect. For example, the curent implementations of the zip:// and tar:// filesystems do not allow you to update an existing file. You can only create/overwrite an existing file, or open a file read-only.

For example:

c.FsContentsManager.fs_url = 'zip:///tmp/test.zip'

import os
if os.path.exists(fs_url[6:]):
    c.FsContentsManager.create = False
    c.FsContentsManager.writeable = False

If you are using a remote filesystem you may want to enable the keepalive. For example, this will make a remote request to get the details of / every 60 seconds:

c.FsContentsManager.keepalive = 60

Acknowledgements

This repository is based on https://github.com/quantopian/pgcontents/tree/5fad3f6840d82e6acde97f8e3abe835765fa824b