snippetlib-jl 1.7.2
Code Snippets Extension for JupyterLab
License: MIT License
Keywords: Jupyter,JupyterLab

# Jupyter Lab Menu Extensions

----

The idea of the Snippet Library is to create a tool for rapid prototyping with the aim of quickly and easily developing data analysis workflows. It adds a customizable menu to insert code snippets, code examples and boilerplate code on notebooks.

![Snippets Showcase](https://github.com/fraunhofer-iais/IAIS-JupyterLab-Snippets-Extension/raw/master/showcase.png)

This Jupyter Lab extension is based on the [jupyterlab-snippets](https://github.com/QuantStack/jupyterlab-snippets) extension. How do I read a `csv` file? There´s a snippet for that. How do I visualize missing values in a pandas dataframe? There´s a snippet for that. How do I plot the correlation matrix of my pandas dataframe (and make it look good)?. There's a snippet for that. You get the idea.

The focus of the provided snippets is helping to get started (or to get more productive) on data science tasks. The menu provides several snippets ordered by typical task groups used for exploring and visualizing data. 

The default menu provides the items:
* `Data` which provides snippets to read, write and transform data.

* `Modelling` which provides snippets to train ML models (mostly based on `sklearn`). You'll find examples for classification, regression and clustering.

* `Plotting` which provides some regularly used snippets for `matplotlib`, `bokeh` and the `pandas` interface.

* `Utils` which provides some snippets which do not fit into the former categories but are still helpful.

With the jupyter extension a set of base snippets are provided, for which we are mostly sure, that they do their job as described. Also, it's possible to add your own snippets, either by copy-pasting them or by uploading them from a python file.

# Configuration 

The following Prerequisites must be installed: 

`Anaconda` 

`Jupyterlab 2.X` 

`(Python 3.X)`

`Nodejs`

`jlpm`


# Installation

For the snippet library to work for Jupyter Lab, two packages must be installed which are the `server extension` and the `labextension` for the frontend. 

Install the server extension of the snippet library from Pypi with the command 

` pip install snippetlib-jl`

For the frontend it is recommended to install it from git as follows. 

## For Linux/macOS users

` git clone https://github.com/fraunhofer-iais/IAIS-JupyterLab-Snippets-Extension.git`

` cd IAIS-JupyterLab-Snippets-Extension`

` git checkout master`

` make install_configure`

## For Windows users

` git clone https://github.com/fraunhofer-iais/IAIS-JupyterLab-Snippets-Extension.git`

` cd IAIS-JupyterLab-Snippets-Extension`

` git checkout master`

` build_snippetlib_jl.bat`


## Or, you can run all installation commands manually as follows 

` pip install snippetlib-jl`

` jupyter serverextension enable --py snippetlib_jl`

` jlpm`

` jlpm build`

` jupyter labextension link .`

` jlpm build`

` jupyter lab build`




# Operating instructions
## Start Jupyter Notebook 

• **Windows**: Open Anaconda prompt and type "jupyter lab".

• **Linux**: Open terminal and type "jupyter lab“.

• **The Jupyter front-end should open in a browser window**.

## How to add your own snippets

To upload a new snippet on the jupyter notebook, paste the following in a new cell. 

`from snippetlib_jl import upload_snippet as us`

`upload_snippets = us.Upload_Snippet()` 

Refresh the page and on the Snippets menu you should see the newly added snippet.

To create new snippets,on the jupyter notebook,paste the following in a new cell.

`from snippetlib_jl import paste_snippet as ps `

`paste_snippets = ps.Paste_Snippet()`

Refresh the page and on the Snippets menu you should see the newly added snippet.

![Add your own snippets](https://github.com/fraunhofer-iais/IAIS-JupyterLab-Snippets-Extension/raw/master/add_snippets.png)

# Credits and Acknolegements
The development of this Jupyter extension was supported by the Fraunhofer Lighhouse Project [Machine Learning for Production (ML4P)](https://www.fraunhofer.de/de/forschung/fraunhofer-initiativen/fraunhofer-leitprojekte/ml4p.html). The main development has been carried out by the Knowledge Discovery Department of the [Fraunhofer IAIS](https://www.iais.fraunhofer.de). We would like to thank Daniel Paurat for the original idea of the project.

# Contact information
If you're interested in supporting the further development of this extension or if you need support for the usage please contact [snippets@iais.fraunhofer.de](mailto:snippets@iais.fraunhofer.de).