semvec/pypi-packages huggingface dataset:
libdatachannel-py 2026.1.0.dev1
libdatachannel-py is a Python binding for libdatachannel.
Requires Python: >=3.12

# libdatachannel-py

[![PyPI](https://img.shields.io/pypi/v/libdatachannel-py)](https://pypi.org/project/libdatachannel-py/)
[![image](https://img.shields.io/pypi/pyversions/libdatachannel-py.svg)](https://pypi.python.org/pypi/libdatachannel-py)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Actions status](https://github.com/shiguredo/libdatachannel-py/workflows/build/badge.svg)](https://github.com/shiguredo/sora-python-sdk/actions)

## About Shiguredo's open source software

We will not respond to PRs or issues that have not been discussed on Discord. Also, Discord is only available in Japanese.

Please read <https://github.com/shiguredo/oss/blob/master/README.en.md> before use.

## 時雨堂のオープンソースソフトウェアについて

利用前に <https://github.com/shiguredo/oss> をお読みください。

## libdatachannel-py について

[libdatachannel](https://github.com/paullouisageneau/libdatachannel) の Python バインディングです。

## 特徴

- [nanobind](https://github.com/wjakob/nanobind) を利用しています
- [scikit-build-core](https://github.com/scikit-build/scikit-build-core) を利用してビルドしています

## 音声や映像コーデックの利用

[webcodecs-py](https://github.com/shiguredo/webcodecs-py) を利用してください。

## Python

- 3.14
- 3.14t
- 3.13
- 3.12

## プラットフォーム

- Ubuntu 24.04 LTS x86_64
- Ubuntu 24.04 LTS arm64
- Ubuntu 22.04 LTS x86_64
- Ubuntu 22.04 LTS arm64
- macOS 26 arm64
- macOS 15 arm64

## リリースビルド

```bash
make wheel
```

## 開発ビルド

```bash
make develop
```

## テスト

```bash
uv sync
make test
```

## サンプル

[examples/](examples/) ディレクトリにサンプルコードがあります。

## 優先実装

優先実装とは Sora / Sora Cloud の契約頂いているお客様向けに libdatachannel-py の実装予定機能を有償にて前倒しで実装することです。

**詳細は Discord やメールなどでお気軽にお問い合わせください**

### 優先実装が可能な機能一覧

- Windows 11 対応
  - x86_64
- Windows Server 2025 対応
  - x86_64

## サポートについて

### Discord

- **サポートしません**
- アドバイスします
- フィードバック歓迎します

最新の状況などは Discord で共有しています。質問や相談も Discord でのみ受け付けています。

<https://discord.gg/shiguredo>

### バグ報告

Discord へお願いします。

## ライセンス

Apache License 2.0

```text
Copyright 2025-2026, Wandbox LLC (Original Author)
Copyright 2025-2026, Shiguredo Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```
iflow-mcp_rainer85ah-mcp-server 0.1.0
MCP Server using FastMCP, and FastAPI.
Requires Python: >=3.11

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
[![Python](https://img.shields.io/badge/Python-3.12%2B-blue.svg)](https://www.python.org/)
[![Docker](https://img.shields.io/badge/Docker-Ready-blue)](https://www.docker.com/)


# 🚀 FastMCP Boilerplate for MCP Servers

A modern **MCP (Model Control Protocol)** project built with **Python**, **FastMCP**, **FastAPI**, **Docker**, and integrated with **Ollama** and **Open-webUI**.

This project provides a lightweight, extensible foundation for building and deploying intelligent systems that manage and expose AI/LLM capabilities.

![Model Control Protocol (MCP)](utils/MCP.gif)
---

## 🔧 Tech Stack

- 🐍 **Python** – Primary language
- ⚡ **FastMCP** – Model Control Protocol framework for managing AI models
- 🌐 **FastAPI** – High-performance API backend
- 🧠 **Ollama** – LLM execution and orchestration
- 🧩 **Open-webUI** – Chat-style interface for AI interactions
- 🐳 **Docker** – Containerized for easy deployment and reproducibility in dev and production environments.

---

## 🧱 Features

- 🚀 Fast startup with Docker
- 🔌 Easy integration with Ollama and Open-webUI
- 📦 Pluggable architecture for adding models and routes
- 🎯 Designed for rapid prototyping or production use
- ✅ REST API ready with OpenAPI docs

---

## 📦 Getting Started

### 1. Clone the repo

```bash

git clone https://github.com/rainer85ah/mcp-server.git
cd mcp-server
```

### 🐳 2. Run with Docker Compose (recommended)

```bash

docker compose up --build -d
```

### 3. Access the app

```bash

Ollama: http://localhost:11434
API Docs: http://localhost:8000/docs
OpenAPI: http://localhost:8000/openapi.json
MCP Server: http://localhost:8000/service/mcp/
Open-webUI: http://localhost:3000
```

## 🌱 Use as a Boilerplate

Use this project as a starter template for:

- **AI chat platforms**
- **Model routing gateways**
- **Developer LLM sandboxes**
- **FastAPI-based ML backends**   


## 📜 License


This project is licensed under the [MIT License](https://opensource.org/license/mit).  
You are free to use, modify, and distribute this software with proper attribution.


## 🤝 Contributing

Contributions are welcome! Feel free to:

- **⭐ Star the project**
- **🍴 Fork the repo**
- **🛠️ Open issues or feature requests**
- **🔁 Submit pull requests**    


## 📫 Contact

Created with 💡 by **Rainer Arencibia**  
🔗 Connect with me on [LinkedIn](https://www.linkedin.com/in/rainer-arencibia)
pycommremover 0.3
Python library to remove block and line comments.
Requires Python: >=3.11
Keywords: comment, remover

# pycommremover
*Python module to convert from duration to date and time.*

## Installation
### Install with uv:
```
uv add pycommremover
```

## Usage
```
In [1]: import pycommremover

In [2]: text = """
print("First line")

\"\"\"

print("Commented line.")

'''
print("Commented line 2.")

print("Commented line 3.")

# Single line comment 1.
'''

# Single line comment.
print("Commented line 4.")

\"\"\"

# Single line comment 2.

print("Commented line 5")
"""

In [3]: output = pycommremover.remove_comments(text=text)


In [4]: print(output)

print("First line")





print("Commented line 5")


```
waldur-site-agent-digitalocean 0.1.0
DigitalOcean plugin for Waldur Site Agent
Requires Python: <4,>=3.9

# DigitalOcean plugin for Waldur Site Agent

This plugin integrates Waldur Site Agent with DigitalOcean using the
`python-digitalocean` SDK. It provisions droplets based on marketplace orders
and exposes droplet metadata back to Waldur.

## Configuration

Example configuration for an offering:

```yaml
offerings:
  - name: DigitalOcean VM
    waldur_api_url: https://waldur.example.com/api/
    waldur_api_token: <TOKEN>
    waldur_offering_uuid: <OFFERING_UUID>
    backend_type: digitalocean
    order_processing_backend: digitalocean
    reporting_backend: digitalocean
    membership_sync_backend: digitalocean
    backend_settings:
      token: <DIGITALOCEAN_API_TOKEN>
      default_region: ams3
      default_image: ubuntu-22-04-x64
      default_size: s-1vcpu-1gb
      default_user_data: |
        #cloud-config
        packages:
          - htop
      default_tags:
        - waldur
    backend_components:
      cpu:
        measured_unit: Cores
        unit_factor: 1
        accounting_type: limit
        label: CPU
      ram:
        measured_unit: MiB
        unit_factor: 1
        accounting_type: limit
        label: RAM
      disk:
        measured_unit: MiB
        unit_factor: 1
        accounting_type: limit
        label: Disk
```

## Resource attributes

You can override defaults per resource using attributes passed from Waldur:

- `region` or `backend_region_id`
- `image` or `backend_image_id`
- `size` or `backend_size_id`
- `user_data` or `cloud_init`
- `ssh_key_id`, `ssh_key_fingerprint`, or `ssh_public_key`
- `ssh_key_name` (optional when using `ssh_public_key`)
- `tags` (list of strings)

If `ssh_public_key` is provided, the plugin will create the key in DigitalOcean
if it does not already exist.

## Resize via limits

To resize droplets from UPDATE orders, you can provide a size mapping:

```yaml
backend_settings:
  size_mapping:
    s-1vcpu-1gb:
      cpu: 1
      ram: 1024
      disk: 25
```

When limits match an entry in `size_mapping`, the droplet will be resized to
the corresponding `size_slug`.
lifx-emulator-core 3.6.2
Core LIFX Emulator library for testing LIFX LAN protocol libraries
Requires Python: >=3.10

# lifx-emulator-core

Core Python library for emulating LIFX devices using the LAN protocol.

This package provides the embeddable library for creating virtual LIFX devices in your own projects. It implements the binary UDP protocol from the [LIFX LAN Protocol](https://lan.developer.lifx.com) specification.

## Installation

```bash
pip install lifx-emulator-core
```

## Quick Start

```python
import asyncio
from lifx_emulator import EmulatedLifxServer, DeviceManager
from lifx_emulator.factories import create_color_light
from lifx_emulator.repositories import DeviceRepository

async def main():
    # Create devices
    devices = [
        create_color_light(serial="d073d5000001"),
        create_color_light(serial="d073d5000002"),
    ]

    # Create repository and manager
    repository = DeviceRepository()
    manager = DeviceManager(repository)

    # Start the emulator server
    server = EmulatedLifxServer(
        devices=devices,
        device_manager=manager,
        bind_address="127.0.0.1",
        port=56700,
    )

    await server.start()
    print("LIFX Emulator running on 127.0.0.1:56700")

    # Keep running until interrupted
    try:
        await asyncio.Event().wait()
    finally:
        await server.stop()

asyncio.run(main())
```

## Features

- Emulate color lights, multizone strips, tiles, infrared, HEV, and switch devices
- Full LIFX LAN protocol implementation
- Persistent device state storage
- Testing scenarios for simulating edge cases
- Product registry with 137+ official LIFX products

## Documentation

Full documentation is available at: **https://djelibeybi.github.io/lifx-emulator**

- [Installation Guide](https://djelibeybi.github.io/lifx-emulator/getting-started/installation/)
- [Quick Start](https://djelibeybi.github.io/lifx-emulator/getting-started/quickstart/)
- [API Reference](https://djelibeybi.github.io/lifx-emulator/library/)
- [Architecture](https://djelibeybi.github.io/lifx-emulator/architecture/)

## Related Packages

- **[lifx-emulator](https://pypi.org/project/lifx-emulator/)**: Standalone CLI tool and HTTP management API built on this library

## License

[UPL-1.0](https://opensource.org/licenses/UPL)
fuzzybunny 0.2.2
A fuzzy search tool for python written in C++
Requires Python: >=3.8

<p align="center">
  <img src="https://raw.githubusercontent.com/cachevector/fuzzybunny/master/docs/assets/fuzzybunny.png" alt="FuzzyBunny Logo" width="150" />
</p>

<h1 align="center">FuzzyBunny</h1>

<p align="center">
  <b> A high-performance, lightweight Python library for fuzzy string matching and ranking, implemented in C++ with Pybind11. </b>
</p>

<p align="center">
  <img src="https://img.shields.io/badge/License-MIT-green" />
  <img src="https://img.shields.io/badge/Language-C%2B%2B-00599C" />
  <img src="https://img.shields.io/badge/Bindings-Pybind11-blue" />
</p>

## Features

- **Blazing Fast**: C++ core for 2-5x speed improvement over pure Python alternatives.
- **Multiple Scorers**: Support for Levenshtein, Jaccard, and Token Sort ratios.
- **Partial Matching**: Find the best substring matches.
- **Hybrid Scoring**: Combine multiple scorers with custom weights.
- **Pandas & NumPy Integration**: Native support for Series and Arrays.
- **Batch Processing**: Parallelized matching for large datasets using OpenMP.
- **Unicode Support**: Handles international characters and normalization.
- **Benchmarking Tools**: Built-in utilities to measure performance.

## Installation

```bash
pip install fuzzybunny
```

## Quick Start

```python
import fuzzybunny

# Basic matching
score = fuzzybunny.levenshtein("kitten", "sitting")
print(f"Similarity: {score:.2f}")

# Ranking candidates
candidates = ["apple", "apricot", "banana", "cherry"]
results = fuzzybunny.rank("app", candidates, top_n=2)
# [('apple', 0.6), ('apricot', 0.42)]
```

## Advanced Usage

### Hybrid Scorer
Combine different algorithms to get better results:

```python
results = fuzzybunny.rank(
    "apple banana", 
    ["banana apple"], 
    scorer="hybrid", 
    weights={"levenshtein": 0.3, "token_sort": 0.7}
)
```

### Pandas Integration
Use the specialized accessor for clean code:

```python
import pandas as pd
import fuzzybunny

df = pd.DataFrame({"names": ["apple pie", "banana bread", "cherry tart"]})
results = df["names"].fuzzy.match("apple", mode="partial")
```

### Benchmarking
Compare performance on your specific data:

```python
perf = fuzzybunny.benchmark("query", candidates)
print(f"Levenshtein mean time: {perf['levenshtein']['mean']:.6f}s")
```

## License
MIT
wobs 0.1.7
Wuying Observer SDK for Python
Requires Python: >=3.9

# Wuying GuestOS Observer Python
## 功能
* 记录埋点和Trace数据
* 埋点的数据格式是JSON对象，包含埋点名称（eventName）、时间（time）、属性（properties）和一些其它的配置信息，比如实例名称、版本等信息。
* Trace数据格式是JSON对象，包含TraceID、SpanID、ParentSpanID、Name、Kind、StartTime、EndTime、Duration、Attributes、Events、Links、StatusCode、StatusMessage等信息。以SLS Trace数据格式输出到本地文件, 通过定制opentelemetry-python的Exporter实现。
## 使用方法
1. 创建一个Python项目，并安装OpenTelemetry SDK
2. 使用示例可以参考demo.py
~~~python
from wobs.observer import init, shutdown, new_span_as_current, new_track_point


if __name__ == "__main__":
    # 初始化observer，指定trackpoint和trace文件存放目录，这里设置为当前路径，默认可不填，和C++、Golang版本保持一致
    init("test", track_point_dir='./', trace_dir='./')

    # 创建一个span，并设置属性和事件
    with new_span_as_current("test_trace") as span:
        # 设置属性
        span.set_attribute("key", "value")
        # 添加事件
        span.add_event("event1", {"event_attr": "event_value"})
        # 如果失败了，设置trace的状态和错误信息
        span.set_status(get_status(False), "error message")
        # 记录一个埋点
        new_track_point("test_trace")

    # 程序结束后关闭observer，这一步是可选的
    shutdown()
~~~

### 如何使用远端的trace_id创建span
创建span时，可以指定trace_id和span_id，这样trace_id和span_id就会作为span的父span，从而实现链路追踪。这里在new_span_as_current和new_span方法中做了封装，可以直接传入trace_id和span_id，具体的实现可以参考wobs/observer.py。
~~~python
    with new_span_as_current("test_trace", trace_id="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", span_id="xxxxxxxxxxxxxxxx") as span:
        span.set_attribute("key", "value")
~~~

### 动态配置 userAliUid
SDK 支持从配置文件 `wobs.config.json` 中动态读取 `userAliUid`，并自动将其附加到埋点数据中。

**配置文件路径**（根据平台自动选择）：
- 云手机（Android）: `/data/vendor/log/wuying/wobs.config.json`
- Windows: `C:\ProgramData\wuying\wobs.config.json`
- Linux/macOS: `/var/log/wuying/wobs.config.json`

**配置文件格式**：
~~~json
{
  "userAliUid": "1234567890"
}
~~~

**功能特性**：
- SDK 初始化时自动读取配置文件中的 `userAliUid`
- 后台线程每 3 秒轮询配置文件，实时检测变更
- 无需重启程序，配置文件的修改会在 3 秒内生效
- `userAliUid` 自动附加到所有埋点数据的用户信息字段中

**测试示例**：
~~~bash
python3 examples/test_userAliUid.py
~~~

## 发布
修改pyproject.toml文件中的version字段，并执行以下命令进行发布
~~~sh
uv build
uv run twine upload dist/*
~~~

## 依赖
* Opentelemetry python sdk
cxv 0.1.2
CXV.ONE CLI
Requires Python: >=3.9

# cxv

CLI for CXV.ONE.

## Install

```bash
pip install cxv
```

## Login

```bash
cxv login --email you@example.com --password "..."
```

Or use a CLI token from Settings → Security:

```bash
cxv login --token cxv_cli_...
```

## Usage

```bash
cxv whoami
cxv projects list
cxv projects create --name "My Bot"
cxv projects get --project-id <project-id>
cxv projects archive --project-id <project-id>
cxv projects unarchive --project-id <project-id>
cxv projects disable --project-id <project-id>
cxv projects enable --project-id <project-id>
cxv projects run --project-id <project-id>
cxv projects stop --project-id <project-id>
cxv projects export-zip --project-id <project-id> --out ./bot.zip
cxv projects api-keys list --project-id <project-id>
cxv projects api-keys create --project-id <project-id>
cxv projects api-keys revoke --project-id <project-id> --key-id <key-id>
cxv projects data get --project-id <project-id> --key balance
cxv projects data set --project-id <project-id> --key balance --value '{"value":100}'
cxv projects data increment --project-id <project-id> --key balance --amount 5
cxv projects data delete --project-id <project-id> --key balance
cxv projects data export --project-id <project-id>
cxv workflows list --project-id <project-id>
cxv workflows get --workflow-id <workflow-id>
cxv workflows publish --workflow-id <workflow-id>
cxv workflows deploy --workflow-id <workflow-id>
cxv workflows run --workflow-id <workflow-id>
cxv workflows deployments --workflow-id <workflow-id>
cxv workflows requirements --workflow-id <workflow-id>
cxv deployments runs --deployment-id <deployment-id>
cxv runs logs --run-id <run-id>
cxv templates list
cxv templates mine
cxv templates get --template-id <template-id>
cxv templates submit --workflow-id <workflow-id> --title "Hello Bot" --summary "Basic hello" --description "..."
cxv templates withdraw --template-id <template-id>
cxv templates duplicate --template-id <template-id>
cxv domains list
cxv domains add --domain example.com
cxv domains verify --request-id <request-id>
cxv domains delete --request-id <request-id>
cxv domains mailbox-request --request-id <request-id> --domain example.com --local-part support
cxv cli-tokens list
cxv cli-tokens create
cxv cli-tokens revoke --token-id <token-id>
```

## Notes
- CLI stores an auth cookie in `~/.cxv/config.json`.
- Use `cxv logout` to clear the session.