semvec/pypi-packages huggingface dataset:
explodingham 0.0.4
Oddball machine learning algorithms
Requires Python: >=3.10

# ExplodingHam
*Oddball scikit-learn style ML+ approaches.*

This library provides scikit-learn style solutions for ML problems. The goal of this library is to extend beyond what scikit-learn to include obscure ML approaches, as well as non-ML approaches that you can easily baseline your ML approachs against. 

## Models
A couple examples of currently available models include:
 - **Normalized Compression Distance KNN**, this is a nifty approach to building a classifier on text data.
 - **RegEx Classifier**, takes a provided RegEx and uses it to create a quick and dirty classifier. This is *not* machine learning, it doesn't learn, but having this as a scikit-learn classifier allows you to plug and play with your existing code to provide a baseline, or experiment with different versions of your RegEx.

***Future*** methods to include:
 - **Bumping Classifier**, an ensemble method that trains many models on subsets of the data, and keeps the model that performs the best.
 - **Rotation Forests**, a variation on a random forest that performs PCA before each tree is fit.
 - **InfoGain Trees**, classifiers that use ID3 and C4.5 on non-binary trees.
 - **Zero-Shot LLM Classifier**, a classifier that uses an LLM with a prompt to make predictions.
 - **Few-Shot LLM Classifier**, a classifier that uses an LLM with multiple examples to provide a classification prediction.
 - **Normalized Compression Distance Clustering**, hierarchical clustering, KMeans, DBScan using compression algorithms to represent the data.

 ## Integrations:
 - ExplodingHam uses the [narwhals](https://narwhals-dev.github.io/narwhals/) library for dataset processing, this means that it is plug and play with most DataFrames you might supply.
 - ExplodingHam uses base classes from scikit-learn, so these models should be relatively indistinguishable from
loupedeck-python 0.1.2
Async Python port of the Loupedeck Node.js library for Live, Live S, CT, and Razer Stream Controller devices.
Requires Python: >=3.14
Keywords: loupedeck, razer, stream-controller, hardware, usb, hid

Loupedeck Python
================

Async Python API for Loupedeck Live, Live S, CT, and Razer Stream Controller devices. This is a port of the original Node.js library ([foxxyz/loupedeck](https://github.com/foxxyz/loupedeck)), created with assistance from Codex.

Quickstart
----------

Install dependencies:

```shell
uv sync
```

Minimal async example:

```python
import asyncio

from loupedeck_python import discover


async def main() -> None:
    device = await discover(auto_connect=False)

    async def on_connect(info: dict[str, str]) -> None:
        print(f"Connected: {info['address']}")

    async def on_button(event: dict[str, int | str]) -> None:
        print(f"Button down: {event['id']}")

    async def on_touch(event: dict[str, object]) -> None:
        print(f"Touch: {event}")

    device.on("connect", on_connect)
    device.on("down", on_button)
    device.on("touchstart", on_touch)
    device.on("touchend", on_touch)

    await device.connect()
    await device.set_brightness(0.8)

    while True:
        await asyncio.sleep(1)


if __name__ == "__main__":
    asyncio.run(main())
```

Canvas drawing example (requires Pillow):

```shell
uv add pillow
```

```python
import asyncio

from loupedeck_python import discover


async def main() -> None:
    device = await discover(auto_connect=False)

    def draw_screen(draw, width: int, height: int, _image) -> None:
        draw.rectangle((0, 0, width, height), fill=(0, 0, 0))
        draw.rectangle((10, 10, width - 10, height - 10), outline=(255, 255, 255), width=3)
        draw.text((20, 20), "Hello Loupedeck", fill=(255, 255, 0))

    await device.connect()
    await device.draw_screen("center", draw_screen)

    while True:
        await asyncio.sleep(1)


if __name__ == "__main__":
    asyncio.run(main())
```

Notes
-----

- Ensure the official Loupedeck software is not running, as it can conflict with direct device access.
- Firmware 0.2.26 reportedly fails on Linux; 0.2.23 is known to work.

Examples
--------

- `examples/simple_async.py`: minimal connection + event logging
- `examples/simple_demo.py`: button colors, knobs, touch, and CT knob rendering
- `examples/draw_canvas.py`: Pillow-based drawing demo
- `examples/slide_puzzle.py`: knob-controlled slide puzzle
- `examples/web/`: local web UI + websocket relay

Credits
-------

Original Node.js library by [foxxyz](https://github.com/foxxyz/loupedeck).

License
-------

MIT