Skip to main content

A Fable (python) kernel for Jupyter

Project description

F# and Fable (Python) support for Jupyter

Fable Python is an F# kernel for Jupyter based on Fable and IPythonKernel. Fable is a transpiler that converts F# to Python (and JavaScript).

This work is work-in-progress and related to

Install

Make sure you have a recent version of .NET installed on your machine: https://dotnet.microsoft.com/download

You also need to install the fable-py .NET tool globally (and make sure it's available in PATH environment)

dotnet tool install -g fable-py --version 4.0.0-alpha-026

pip install fable-py
python -m fable_py install

To use the very latest changes (for development):

git clone https://github.com/dbrattli/Fable.Jupyter.git
cd Fable.Jupyter
python setup.py develop
python -m fable_py install

Usage

You can use Fable Python in the Jupyter notebook by selecting the "F# (Fable Python)" kernel. To start Jupyter run e.g:

jupyter notebook

# or

jupyter lab

Magic commands

You can inspect the generated Python code by executing %python in a cell:

%python

You can inspect the maintained F# program by executing %fsharp in a cell:

%fsharp

F# Program

The kernel works by maintaining an F# program Fable.fs behind the scenes. This program lives in a separate tmp folder for each instance of the kernel.

Sometimes the generated F# program might become invalid because of the submitted code fragments (this can happen with a Python notebook as well). The way to recover is to reset the kernel. That will reset the F# program that is running behind the notebook. To reset the kernel select on the menu: Kernel -> Restart or Kernel -> Restart & Clear Output.

or you can use the reset command:

%reset

If you need additional package references you currently need to add them manually to the Fable.fsproj project file. TODO: handle #r nuget "... commands from within the notebook.

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

fable_py-0.7.0.tar.gz (27.6 kB view hashes)

Uploaded source

Built Distribution

fable_py-0.7.0-py3-none-any.whl (26.4 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page