# ElixirNote Shim

## TOC

* [Introduction](#introduction)
* [Installation](#installation)
* [Usage](#usage)

## Introduction

The ElixirShim provides a way for ElixirLab and other frontends to switch to Elixir Server for their Python web application backend.

## Installation

Install from PyPI:

```
pip install elixir-shim
```

This will automatically enable extensions in Elixir Server.

## Usage

The project also includes an API for shimming traits that moved from NotebookApp into ServerApp in Elixir Server. This can be used by applications that subclassed NotebookApp to leverage the Python server backend for Elixir Notebooks. Such extensions should now switch to ExtensionApp API in Elixir Server and add NotebookConfigShimMixin in their inheritance list to properly handle moved traits.

For example, an application class that previously looked like:

```python
from notebook.notebookapp import NotebookApp

class MyApplication(NotebookApp):
```

Should switch to look something like:

```python
from elixir_server.extension.application import ExtensionApp
from notebook_shim.shim import NotebookConfigShimMixin

class MyApplication(NotebookConfigShimMixin, ExtensionApp):
```
