semvec/pypi-packages huggingface dataset:
fable-py 0.7.0
A Fable (python) kernel for Jupyter

# F# and Fable (Python) support for Jupyter

Fable Python is an F# kernel for Jupyter based on [Fable](https://fable.io) and
[IPythonKernel](https://github.com/ipython/ipykernel). Fable is a transpiler
that converts [F#](https://fsharp.org) 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)

```sh
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):

```sh
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:

```shell
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.
pyabsp 0.0.1
A Python tool for 3D adaptive binary space partitioning
Requires Python: >=3.6

# pyabsp: a Python tool for 3D adaptive binary space partitioning

## Introduction

This repository implements adaptive binary space partitioning: an ambient 3D space is recessively partitioned into non-overlapping convexes with pre-detected planar primitives.

![doc/partition.png](./doc/partition.png)

An exact kernal of [SageMath](https://www.sagemath.org/) is used for robust Boolean spatial operations. The rational-based exact representation avoids degenerate cases that may otherwise cause inconsistencies in the geometry.

## Installation

### Install SageMath

For Linux and macOS users, the easist is to install from [conda-forge](https://conda-forge.org/):

```bash
conda config --add channels conda-forge
conda install sage
```

Alternatively, you can use [mamba](https://github.com/mamba-org/mamba) for faster parsing and package installation:

```bash
conda config --add channels conda-forge
conda install mamba
mamba install sage
```

For Windows users, consider building SageMath from source or install all other dependencies into a [pre-built SageMath environment](https://doc.sagemath.org/html/en/installation/binary.html).

### Install other requirements

```bash
pip install -r requirements.txt
```

Optionally, install [trimesh](https://github.com/mikedh/trimesh) and [pyglet](https://github.com/pyglet/pyglet) for benchmarking and visualisation, respectively:

```bash
pip install trimesh pyglet
```

### Install pyabsp

```
pip install pyabsp
```

## Usage

### Primitive detection

Primitives are defined in `VertexGroup` (a group of vertices for each primitive). To create such data from a point cloud, you can use `Mapple` in [Easy3D](https://github.com/LiangliangNan/Easy3D).

### Classes and methods

See `./tests/test_{primitive, complex, graph}.py` for how to use classes `VertexGroup`, `CellComplex`, `AdjacencyGraph`, respectively, or for a combined workflow with `./tests/test_combined.py`.