/pgcontents

A Postgres-backed ContentsManager implementation for IPython

Primary LanguagePythonApache License 2.0Apache-2.0

PGContents

PGContents is a PostgreSQL-backed implementation of IPEP 27. It aims to a be a transparent, drop-in replacement for IPython's standard filesystem-backed storage system. PGContents' PostgresContentsManager class can be used to replace all local filesystem storage with database-backed storage, while its PostgresCheckpoints class can be used to replace just IPython's checkpoint storage. These features are useful when running IPython in environments where you either don't have access to—or don't trust the reliability of—the local filesystem of your notebook server.

This repository is under development as part of the Quantopian Research Environment, currently in Open Beta.

Getting Started

Prerequisites:
  • Write access to an empty PostgreSQL database.
  • A Python installation with IPython 3.2.x.

Installation:

  1. Install pgcontents from PyPI via pip install pgcontents.
  2. Run pgcontents init to configure your database. You will be prompted for a database URL for pgcontents to use for storage.
  3. Configure IPython Notebook to use pgcontents as its storage backend. This can be done from the command line or by modifying your ipython_notebook_config.py file. For a standard IPython installation on Unix-like systems, your profile will be located located at ~/.ipython/profile_default/ipython_notebook_config.py. See the examples directory for example configuration files.
  4. Enjoy your filesystem-free IPython experience!