semvec/pypi-packages huggingface dataset:
pylukeroberts 0.4.0
A library to control Luke Roberts lamps via Bluetooth Low Energy
Requires Python: <3.14,>=3.10
Keywords: bluetooth, BLE, luvo, control, Luke Roberts

# pyLukeRoberts

This library enables control of Luke Roberts Luvo lamps via Bluetooth Low Energy. It was written as a library to power a future Home Assistant Plug-In.



## Table of Contents

- [Capabilities](#capabilities)
- [Installation](#installation)
- [Usage](#usage)
- [Contributing](#contributing)
- [License](#license)
- [Contact](#contact)

## Capabilities
* Discover Luke Roberts Luvo lamps
* Switch Lamps On/Off
* Read all configured scenes
* Read current scene
* Change scene
* Change Color for Uplight

Future Features
* Change Brightness
* Change Color Temperature for Downlight and Uplight


## Installation


```bash
# Install via pypi
pip install pylukeroberts
```

## Dependencies

pyLukeRoberts uses bleak for Bluetooth Low Energy connectivity

## Usage

Example from `examples/set_scene.py`

```python
from pylukeroberts import LUVOLAMP, find_lamp
import asyncio

async def main():
    # try:
    lamp_address = await find_lamp()
    print(f"Found Luke Roberts Lamp at address: {lamp_address}")
    lamp = LUVOLAMP(lamp_address)
    await lamp.update_scenes()
    await lamp.update_current_scene()
    print (f'{lamp.get_current_scene()} with ID: {lamp.get_current_scene(True)}')
    await lamp.select_scene(12)
    await lamp.switch_off()

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

## Contributing

Guidelines for contributing to the project.

1. Fork the repository.
2. Create a new branch (`git checkout -b feature-branch`).
3. Make your changes.
4. Commit your changes (`git commit -m 'Add some feature'`).
5. Push to the branch (`git push origin feature-branch`).
6. Open a pull request.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Contact

Timur Pulathaneli - [timur@koeln.de](mailto:timur@koeln.de)

Project Link: [https://github.com/tpulatha/pylukeroberts](https://github.com/tpulatha/pylukeroberts)
singlejson 0.5.2
Load and save json files as a global object 
Requires Python: >=3.10

# singlejson
![GitHub issues](https://img.shields.io/github/issues/IgnyteX-Labs/singlejson) 
![PyPI](https://img.shields.io/pypi/v/singlejson)

A simple set of utilities for working with JSON in Python.

View the [documentation](https://singlejson.readthedocs.io/) here.

## Features:
* Easy loading of JSON files
* One instance for each opened file
* Multiple ways of handling default values

## Installation:
Install singlejson using pip
```shell
pip install singlejson
```

## Usage:
Loading JSON from a file:
```python
import singlejson

file = singlejson.load('file.json')  # Load file.json
# Returns a JSONFile object which has the json property
file.json["fun"] = True  # Edit some values in the JSONFile
```
When we load the same file from the filesystem again, we get the same object:
```text
import singlejson
file2 = singlejson.load('file.json')
print(file2.json["fun"])  # > True
```

To save the file back to the disk we call ``file.save()``

If the requested file doesn't exist, the file and its parent directories
will be created and *default_data* will be written.
```text
import singlejson
file = singlejson.load('new_file.json', default_data={"fun": False})
print(file.json)  # > {"fun": False}
```

Or initialize the file with a default file path:
```text
import singlejson
file = singlejson.load('auth.json', default_path='defaults/auth.json')
```
This way you can commit default files to your repository.
If the file doesn't exist or is corrupt,
the default file will be copied to the requested location.

For more detailed information,
visit the [documentation](https://singlejson.readthedocs.io/)


### Contributing:
This is just a fun project of mine mainly to try out python packaging. 
If you would like to contribute or have a feature-request,
please [open an issue or pull request](https://github.com/Qrashi/singlejson/issues/new).
llmglot 0.1.0
Sync LLM agent configuration files (AGENTS.md, skills/) across different coding assistants
Requires Python: >=3.12

# llmglot

A CLI tool for syncing canonical LLM agent configuration files across different coding assistants.

## Why llmglot?

Managing configurations for multiple AI coding assistants is tedious. Each tool has its own location for instructions and skills:

- Claude uses `CLAUDE.md` and `.claude/skills/`
- Cursor uses `.cursorrules` and `.cursor/rules/`
- Windsurf uses `.windsurfrules` and `.windsurf/rules/`
- And so on...

**llmglot** lets you maintain a single source of truth (`LLMGLOT.md` + `skills/`) and sync it everywhere.

## Installation

```bash
pip install llmglot
```

Or with [uv](https://github.com/astral-sh/uv):

```bash
uv add llmglot
```

## Quick Start

1. Create your canonical config:

```bash
# Create LLMGLOT.md with your project instructions
echo "# My Project\n\nProject-specific instructions for AI assistants." > LLMGLOT.md

# Create skills directory
mkdir -p skills
echo "# Code Review\n\nWhen reviewing code, check for..." > skills/code-review.md
```

2. Sync to all agents:

```bash
llmglot sync all
```

That's it! Your config is now available to Claude, Cursor, Windsurf, Copilot, Cline, and Gemini.

## Usage

```bash
# Preview what will be synced (recommended first step)
llmglot sync all --dry-run

# Sync everything to all agents
llmglot sync all

# Sync only to specific agents
llmglot sync all --target claude --target cursor

# Sync only skills or only the main instructions
llmglot sync skills
llmglot sync agents
```

## Supported Agents

| Agent | Skills Directory | Instructions File |
|-------|------------------|-------------------|
| Claude | `.claude/skills/` | `CLAUDE.md` |
| Cursor | `.cursor/rules/` | `.cursorrules` |
| Windsurf | `.windsurf/rules/` | `.windsurfrules` |
| Copilot | `.github/copilot-skills/` | `.github/copilot-instructions.md` |
| Cline | `.cline/rules/` | `.clinerules` |
| Gemini | `.gemini/skills/` | `GEMINI.md` |

## Templating

Use Jinja2 templates to customize content per agent:

```markdown
# Project Guide

{% if agent_name %}
You are **{{ agent_name }}**.
{% endif %}

{% if agent_id == "claude" %}
Use /help for assistance.
{% elif agent_id == "cursor" %}
Use Cmd+K for inline edits.
{% endif %}
```

### Available Variables

| Variable | Description | Example |
|----------|-------------|---------|
| `{{ agent_name }}` | Human-readable name | "Claude", "Cursor" |
| `{{ agent_id }}` | CLI identifier | "claude", "cursor" |
| `{{ skill_name }}` | Skill file stem (skills only) | "code-review" |

## Project Structure

```
your-project/
├── LLMGLOT.md          # Canonical instructions (synced to all agents)
├── skills/             # Reusable skills
│   ├── code-review.md
│   └── testing.md
├── CLAUDE.md           # Generated - don't edit directly
├── .cursorrules        # Generated - don't edit directly
└── ...
```

## License

MIT