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
- https://github.com/fable-compiler/Fable/issues/2339
- https://github.com/fable-compiler/Fable/pull/2345
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.
Release files for fable-py 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fable_py-0.7.0.tar.gz | 27.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fable_py-0.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 54.0 kB
Release files / fable_py-0.7.0.tar.gz
| Download URL | fable_py-0.7.0.tar.gz |
|---|---|
| Size | 27.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0a524c4b2ebaa56b135d3944dc5f66ed00cf54720b7bd6436d324f296e92d69d
|
|
BLAKE2b-256 checksum How to use checksums |
c6c484e43bd17b3bc4a18d26a2c52675d73f1b3e77a1df2bcf89f9c848ee9dee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
|
Release files / fable_py-0.7.0-py3-none-any.whl
| Download URL | fable_py-0.7.0-py3-none-any.whl |
|---|---|
| Size | 26.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1f09bbd578abc37342622804f68b4fae953facad69233bf9b0fa90806e2f2572
|
|
BLAKE2b-256 checksum How to use checksums |
4198d8aff1a97a33817dea342ae22a94f5985f79ce550b3897e21c3c86977ba6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
|