semvec/pypi-packages huggingface dataset:
pyemoncms 0.1.3
A python library to interrogate emoncms API
Requires Python: >=3.9

# pyemoncms
python library for emoncms API

rely on [aiohttp](https://github.com/aio-libs/aiohttp)

to install : `pip3 install pyemoncms`

how to use :

```
import logging
import asyncio
from pyemoncms import EmoncmsClient

key = "your32bitsAPIkey"
url = "http://url:8081"
client = EmoncmsClient(url, key, request_timeout=1)
client.logger.setLevel("DEBUG")

async def get_path(path):
    print(await client.async_request(path))

async def list_feeds():
    print(await client.async_list_feeds())
    
async def get_feed_fields(feed_id):
    print(await client.async_get_feed_fields(feed_id))


loop = asyncio.get_event_loop()
loop.create_task(get_path("feed/list.json"))
loop.create_task(get_path("/user/getuuid.json"))
loop.create_task(list_feeds())
loop.create_task(get_feed_fields(1))
try:
    loop.run_forever()
except Exception:
    client.logger.error("something happened")
finally:
    loop.run_until_complete(client.close())
    loop.close()
```

even simpler with a context manager :

```
async def main():
    """fetches somes datas in emoncms"""
    async with EmoncmsClient(url, key, request_timeout=1) as client:
        client.logger.setLevel("DEBUG")
        print(await client.async_get_uuid())
        print(await client.async_list_feeds())
        print(await client.async_get_feed_fields(1))

if __name__ == "__main__":
    asyncio.run(main())
```
clear-skies-akeyless-custom-wiz 2.0.7
Akeyless+Clearskies Custom Wiz Producer/Rotator
Requires Python: <4.0,>=3.11

# wiz

Wiz dynamic producer for Akeyless

The payload for this producer looks like:

```json
{"clientId": "[YOUR_CLIENT_ID_HERE]", "clientSecret": "[YOUR_CLIENT_SECRET_HERE]"}
```

Call `clearskies_akeyless_custom_wiz.build_wiz_producer()` to initialize the create/rotate/revoke endpoints.  You can
optionally provide the `url` parameter which will add a prefix to the endpoints.  This can then be attached to a
[clearskies context](https://clearskies.info/docs/context/index.html) or an [endpoint group](https://clearskies.info/docs/endpoint-groups/endpoint-groups.html):

If used as a producer, it will use the client credentials to fetch and return a Wiz JWT.  It can also rotate the
client credentials you provide.

## Installation

```bash
# Install uv if not already installed
uv add clear-skies-akeyless-custom-wiz
```

```bash
pip install clear-skies-akeyless-custom-wiz
```

or

```bash
pipenv install clear-skies-akeyless-custom-wiz
```

or

```bash
poetry add clear-skies-akeyless-custom-wiz
```

```python
import clearskies
import clearskies_akeyless_custom_wiz

wsgi = clearskies.contexts.WsgiRef(
    clearskies_akeyless_custom_wiz.build_wiz_producer()
)
wsgi()
```

Which you can test directly using calls like:

```bash
curl 'http://localhost:8080/sync/create' -d '{"payload":"{\"clientId\":\"YOUR_CLIENT_ID_HERE\",\"clientSecret\":\"YOUR_CLIENT_SECRET_HERE\"}"}'

curl 'http://localhost:8080/sync/rotate' -d '{"payload":"{\"clientId\":\"YOUR_CLIENT_ID_HERE\",\"clientSecret\":\"YOUR_CLIENT_SECRET_HERE\"}"}'
```

**NOTE:** Akeyless doesn't store your payload as JSON, even when you put in a JSON payload.  Instead, it ends up as a stringified-json
(hence the escaped apostrophes in the above example commands).  This is normal, and normally invisible to you, unless you try to invoke the
endpoints yourself.
agent-response-transformer 0.1.2
A Python SDK to transform Claude response to OpenAI response format
Requires Python: >=3.7

# Agent Response Transformer

A Python SDK to transform Claude response to OpenAI response format.

## Installation

Install the package via pip:

```bash
pip install agent-response-transformer
```

## Usage

```python
from agent_response_transformer import ResponseTransformer

# Create an instance of the transformer
transformer = ResponseTransformer()

# Transform Claude response to OpenAI format (for full conversation)
result = transformer.claude_json_to_openai_response(claude_response)

# Transform a single Claude response to OpenAI format (for individual messages)
single_result = transformer.single_claude_json_to_openai_response(single_claude_response)
```

## Features

- Transform Claude response format to OpenAI response format
- Support for text content and function calls
- Proper handling of tool usage and results

## Development

To install the package in development mode:

```bash
pip install -e .
```

## Dependencies

The package has no direct dependencies. However, when using this package in your projects, you may need to install:

- openai
- agents (if it's a separate package)

For development, you can install all dependencies using:

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

## Publishing to PyPI

To publish a new version to PyPI:

1. Update the version in `setup.py`
2. Build the package:
   ```bash
   python setup.py sdist bdist_wheel
   ```
3. Upload to Test PyPI first:
   ```bash
   twine upload --repository testpypi dist/*
   ```
4. Upload to PyPI:
   ```bash
   twine upload dist/*
   ```

## TODO

[] mapping claude code internal mcp to openai agent tools
[] 


## License

MIT
AioAllay 0.0.7
Async client for Minecraft Bedrock Server API
Requires Python: >=3.10
Keywords: dangerous, library, python, minecraft, allay, bedrock, dangerous, mcapi

AioAllay WIP


> 🌐 [English](https://github.com/yurasulima/AioAllay/blob/main/README.en.md) | 🇺🇦 [Українська](https://github.com/yurasulima/AioAllay/blob/main/README.uk.md)

AioAllay is an asynchronous client for interacting with the [Dangerous](https://mblueberry.space) Minecraft Bedrock server API.

Features

    🌀 Asynchronous (based on aiohttp)

    🛠️ Easy integration into asyncio applications

    📦 Interaction with user profiles, orders, logs, and more

Installation

Install via PyPI:

pip install aioallay

Or install from source:

git clone https://github.com/yurasulima/AioAllay.git
cd AioAllay
pip install .

Example usage
    
    import asyncio
    from typing import List
    from aioallay.types import User
    from aioallay import Client
    
    TOKEN = "your-token"
    
    client = Client(token=TOKEN)
    
    async def main() -> None:
        users: List[User] = await client.get_all_user()
        print(users)
    
    if __name__ == "__main__":
        asyncio.run(main())

Requirements

    Python 3.10 or higher

    pydantic~=2.11.5

    aiohttp~=3.10.11

License

MIT © Yurii Sulima
nonebot-plugin-who-is-spy 0.0.4
一款适用于QQ群的谁是卧底小游戏插件
Requires Python: >=3.8

<div align="center">
  <img src="https://s2.loli.net/2022/06/16/opBDE8Swad5rU3n.png" width="180" height="180" alt="NoneBotPluginLogo">
  <br>
  <p><img src="https://s2.loli.net/2022/06/16/xsVUGRrkbn1ljTD.png" width="240" alt="NoneBotPluginText"></p>
</div>

<div align="center">

# nonebot-plugin-who-is-spy

_✨ 一个谁是卧底小游戏插件 ✨_


<a href="./LICENSE">
    <img src="https://img.shields.io/github/license/Hanserprpr/nonebot-plugin-who-is-spy.svg" alt="license">
</a>
<a href="https://pypi.python.org/pypi/nonebot-plugin-who-is-spy">
    <img src="https://img.shields.io/pypi/v/nonebot-plugin-who-is-spy.svg" alt="pypi">
</a>
<img src="https://img.shields.io/badge/python-3.9+-blue.svg" alt="python">

</div>

一个基于 **[NoneBot2](https://nonebot.dev/)** 的群聊游戏插件 —— **谁是卧底**  
支持 **群聊轮流发言** + **私聊匿名投票**，带有胜场统计、排行榜、胜率榜等功能。

## 📖 介绍

`nonebot-plugin-who-is-spy` 是一个基于 [NoneBot2](https://v2.nonebot.dev/) 开发的多人群聊游戏插件，复刻了经典的 **谁是卧底** 桌游玩法。  
它支持在 QQ 群里发起游戏，玩家轮流发言，通过私聊匿名投票淘汰嫌疑人，直到一方胜利。  

特点：
- **规则完整**：平民、卧底、白板三种身份，还原线下游戏体验  
- **私聊投票**：保护投票隐私，避免被针对  
- **自动化流程**：发言、投票、淘汰、胜负判定全程自动进行  
- **数据统计**：记录胜场、参与次数，支持排行榜与胜率榜  
- **可定制化**：词库、玩家人数、白板开关、身份提示等均可配置

## 💿 安装

<details open>
<summary>使用 nb-cli 安装</summary>
在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装

    nb plugin install nonebot-plugin-who-is-spy

</details>

<details>
<summary>使用包管理器安装</summary>
在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令

<details>
<summary>pip</summary>

    pip install nonebot-plugin-who-is-spy
</details>
<details>
<summary>pdm</summary>

    pdm add nonebot-plugin-who-is-spy
</details>
<details>
<summary>poetry</summary>

    poetry add nonebot-plugin-who-is-spy
</details>
<details>
<summary>conda</summary>

    conda install nonebot-plugin-who-is-spy
</details>

打开 nonebot2 项目根目录下的 `pyproject.toml` 文件, 在 `[tool.nonebot]` 部分追加写入

    plugins = ["nonebot_plugin_template"]

</details>

## ⚙️ 配置

在 nonebot2 项目的`.env`文件中添加下表中的必填配置

| 配置项 | 必填 | 默认值 | 说明 |
|:-----:|:----:|:----:|:----:|
| spy_min_players | 否 | 4 | 最少人数 |
| spy_max_players | 否 | 12 | 最大人数 |
| spy_default_undercovers | 否 | 1 | 默认卧底人数 |
| spy_allow_blank | 否 | True | 是否允许白板 |
| spy_show_role_default | 否 | False | 发词时是否显示身份 |

## 📂 词库

插件的词库文件使用 JSON 格式，存放在：

[template/undercover_words.json](template/undercover_words.json)

文件内容是一个二维数组，每一项是一个词对，格式为：

```json
[
  ["平民词", "卧底词"],
  ["苹果", "香蕉"],
  ["猫", "狗"],
  ["飞机", "火车"]
]
```

运行 `nb localstore` 来获取数据路径，将[词库文件](template/undercover_words.json)放在 `Data Dir` 下名为 `nonebot_plugin_who_is_spy` 的文件夹内。

例如Windows下，使用 `"C:\Users\***\AppData\Local\nonebot2\nonebot_plugin_who_is_spy\undercover_words.json"` 作为词库路径

## 🎉 使用

### 指令

- 在群内发送 `卧底帮助` 即可获取帮助

```sh
🎮 谁是卧底 - 群聊版玩法说明
——————————
【开局】
卧底开局 [卧底人数] [blank]  → 创建房间（可选参数：卧底人数，blank=有白板）
加入   → 进入房间
发身份 → 房主开始游戏并私聊词语

【发言阶段】
- 系统会在群里公布发言顺序
- 轮到谁，谁直接在群里说一句描述
- 每人一句话，依次发完自动进入投票

【投票阶段（私聊进行）】
- 机器人私聊存活玩家投票序号列表
- 私聊直接回复数字：0=弃权，数字=投票对象

【胜负判定】
- 卧底全出局 → 平民胜利
- 卧底数≥平民数 → 卧底胜利

【常用指令】
状态   → 查看当前局势和投票序号
复盘   → 查看上一局记录
结束卧底 → 强制结束当前局
身份提示 开/关 → 设置私聊是否提示身份
卧底帮助 → 查看本说明
胜率榜 / 我的胜率 → 查看胜率 
```

### 效果图

![alt text](dd293f33ba2a5fab033aa7829a44c20a.jpg)
elias 0.4.19
ELIAS experiment library for facilitating machine learning projects
Requires Python: >=3.6

# Experiment Library and Setup (ELIAS)

## 1. Main functionalities

### `Config` class
Intuitive dataclass extension that addresses issues commonly encountered in research projects. 
A `Config` has the following features:
 - Easily **persistable** to a file (JSON or YAML)
 - Stored configs are **human-readable and editable**
 - Special support for storing **enums** and **inheritance structures**
 - **Backward compatibility** to allow loading older persisted configs

TODO: Overview image of benefits of using Config over regular dataclass

Philosophy for stored config file types:
 - Everything should be human-readable
 - JSON for configs that may be viewed often (statistics, preprocessing/training configs, evaluation results)
 - YAML for configs that have to be edited (run specifications)

### Experiment Workflow Utilities
To speed up the experimentation process with utility classes the `elias` library assumes the following workflow:
 
Stage | Input | Output | Utility
---|---|---|---
Data Preprocessing | <ul><li>Processing Configuration</li> <li>Raw Data</li></ul> | <ul><li>Preprocessed Data (.p, .p.gz, .json, .npy, ...)</li> <li>Data Statistics (stats.json)</li> <li>Preprocessing Config (config.json)</li></ul> | DataFolder -> DataManager
Training/Fitting | <ul><li>Preprocessed Data</li> <li>Hyperparameters</li></ul> | <ul><li>Model checkpoints</li> <li>Hyperparameter configs</li></ul> | ModelManager -> RunManager
Evaluation | <ul><li>Trained model</li><li>Evaluation Config</li></ul> | <ul><li>Evaluation Config</li> <li>Evaluation Results</li></ul> | RunManager -> EvaluationManager
Manual Analysis | Any model/data | Plots, statistics, images | AnalysisFolder -> AnalysisManager
encodelikepro 0.1.0
A Python package for base69 encoding
Requires Python: >=3.7
Keywords: encoding, base69

# Base69

A Python package for Base69 encoding and decoding.

## Installation

```bash
pip install base69
```

## Usage

```python
from base69 import encode, decode

# Encode bytes to Base69
encoded = encode(b"Hello, World!")
print(encoded)

# Decode Base69 back to bytes
decoded = decode(encoded)
print(decoded)
```

## Development

To install for development:

```bash
pip install -e .
```

## License

MIT