semvec/pypi-packages huggingface dataset:
pyliebherr 2026.2.2
Helper models to connect to the Liebherr Smart Device Home API.
Requires Python: >=3.12

# PyLiebherr:  Access the Smart Home Device API Library

![PyPI - Version](https://img.shields.io/pypi/v/pyliebherr)

Python library to access the [Liebherr Smart Home API](https://developer.liebherr.com/apis/smartdevice-homeapi/) (account required).

## Changelog

### 2025.11.4 ➡️ 2026.1.1
* Controls are now mapped by type, zone_id, and device.  This optimizes the number of cpu cycles that Home Assistant will have to perform to find the control (no more looping through controls until the corresponding control is found).
* Fixed the case of some constant variables for consistency.

### 2026.1.2
* Controls mapping had to change to by `control_name` then `zone_id` if applicable.

### 2026.1.3
* Fixed a duplicative debug log issue.
vaultdantic 0.1.2
Pydantic settings with vault-backed fallbacks.
Requires Python: >=3.12

# vaultdantic

`vaultdantic` extends `pydantic-settings` with a vault-backed fallback source.

If you're already in the pydantic ecosystem, `pydantic-settings` makes it easy to specify your environment configuration as env files and load them at runtime. When you're working on a remote production app, you probably only need these global environment keys. But when you're working locally on side projects, it's way more convenient to store your environment parameters in a vault like 1Password. This lets you delete the contents of your machine and restore your secrets with a simple vault pull.

`BaseSettings` inputs continue to win in normal priority order (`init` args, env vars, `.env`, file
secrets), and the vault provider is only queried when required fields are still missing.

## Usage

```python
from pydantic import SecretStr
from pydantic_settings import BaseSettings, SettingsConfigDict

from vaultdantic import OnePasswordConfigDict, VaultMixin


class ExampleSettings(BaseSettings, VaultMixin):
    model_config = SettingsConfigDict(
        env_file=".env",
        env_file_encoding="utf-8",
        env_prefix="EXAMPLE_",
        extra="ignore",
    )
    model_vault_config = OnePasswordConfigDict(
        vault="Engineering",
        entry="example-service",
    )

    api_token: SecretStr
    workspace_id: str
```

When `ExampleSettings()` is created, values are resolved in this order:

1. `pydantic-settings` loads normal sources first (`__init__` kwargs, environment, `.env`, and file secrets).  
2. If required fields are still missing, `OnePasswordConfigDict.get_vars()` is called and only missing keys are filled from the vault entry.  
3. Any key already provided by earlier sources keeps precedence over vault values, then the final model is validated.

Vault field labels should use env-style keys (for example `EXAMPLE_API_TOKEN`, not `api_token`).
For nested fields, follow `pydantic-settings` rules: use `env_nested_delimiter` (for example
`PARENT_CHILD__TOKEN` when `env_nested_delimiter="__"`).

## Vault Providers

| Provider | Config Class |
| --- | --- |
| 1Password | `OnePasswordConfigDict` |

## CLI

We also provide convenience methods to sync your vaults _into_ an .env file, to make it easier to sync to a remote host or use in Docker. Sync all discovered vault values into `.env`:

```bash
uv run sync-vault-to-env
```

This will write your credentials in a special managed-by-vaultdantic section. We will overwrite this section on any subsequent syncs so we recommend leaving it alone.

```dotenv
# start managed by vaultdantic
...
# end managed by vaultdantic
```

## Development

```bash
make sync
make lint
make test
make build
```
iflow-mcp_zakahan-auto-slicing 0.1.2
auto slicing video stream.
Requires Python: >=3.11

# auto-slicing

[English](README_en.md) | [简体中文](README.md)

### 一句话概括

自动化切片：这是一个通过ASR + LLM Agent + MCP 实现自动化录播视频切片的项目。

### 👐毛遂自荐

- 有一天，你挂着直播，突发奇想，幻想了，又幻想了，想成为那些`超级切片man`，给你心爱的主播、你热爱的V🤳做视频切片，怎么办？
- 你心有余，而没时间剪辑，甚至没学过剪辑，怎么办？
- 你想了想，鼓起勇气搞到录播准备剪辑，发现这仅仅是起点🙂‍↕️
- 筛选、对时间轴⌚️、整个合适的标题🙋、太复杂了😩，如果偶尔某天，自己没看直播🏃‍♂️，还得把整个录播看一遍再切，怎么办？😭
- 你说你爱也迷人确实很惊艳，但这还是太吃操作了，那么有没有什么简单又强势的切片方式呢？
- 有的，有的兄弟。
- 来看看`auto-slicing`吧，你来搞定录播，它来搞定切片。
目前，它仍处于一个相对普通的阶段。请等待多轮优化。


## 👀快速开始

### 1. 安装相关依赖

#### 1.1 clone本项目或者直接下载zip包

前提条件：

- 显存>=8GB，更小的本人并没有试过

- 内存>=32GB



#### 1.2 配置python环境

python版本：理论上python  `3.11~3.12`均可，`3.13`之前遇到过一些问题，不太清楚现在是否已经修复



1. 推荐使用uv安装

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



2. 或者直接pip安装

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

注：如果安装过程中报了pillow的错误
可以
```bash
sudo apt-get install -y libjpeg-dev zlib1g-dev
```



#### 1.3 配置ffmpeg

本项目剪辑部分是由[`zakahan/vedit-mcp`](https://github.com/zakahan/vedit-mcp)实现的，该部分依赖`ffmpeg`实现，因此请配置ffmpeg

```bash
# ubuntu
sudo apt update
sudo apt install ffmpeg
```



#### 1.4. 下载ASR模型权重

- 音频解析使用，分别是语音识别和语音中断检测，请参考
  - https://github.com/FunAudioLLM/SenseVoice
  - [modelscope-iic/SenseVoiceSmall](https://www.modelscope.cn/models/iic/SenseVoiceSmall) - 对应SENSE_VOICE_MODEL_PATH
  - [modelscope-icc/vad_fsmmn](https://www.modelscope.cn/models/iic/speech_fsmn_vad_zh-cn-16k-common-pytorch/summary) - 对应SENSE_VOICE_VAD_MODEL_PATH

注：此部分目前仅支持本地推理，api方式可能会在后续支持

- 另一种方式，可以选择网盘下载
> 通过网盘分享的文件：iic.zip
> 链接: https://pan.baidu.com/s/128FIp4k8qGez5pjBAP9Pbg?pwd=6rfi 提取码: 6rfi 
> --来自百度网盘超级会员v8的分享

#### 1.5. 配置环境变量

```bash
cd auto-slicing/src
cp .env.example .env
```

编辑`.env`文件，修改部分配置为实际情况

注：目前本脚本采用的是[`火山方舟平台`](https://www.volcengine.com/product/ark)的api，因此API_BASE和API_KEY都使用的是该平台。

1. `OPENAI_API_BASE`：当前为火山方舟平台的api-base
2. `OPENAI_API_KEY` ：推荐直接使用环境变量配置，防止出现泄露问题，当然也可以直接在这里配置
3. `OPENAI_MODEL`与`OPENAI_MODEL_THINKING`：模型名称，请根据实际情况来
4. `SENSE_VOICE_LOCAL_MODEL_PATH`：修改为您所下载的sense_voice模型权重地址
5. `SENSE_VOICE_LOCAL_VAD_MODEL_PATH`：修改为您所下载的vad_model权重地址
6. `KB_BASE_PATH`：切片处理的基础路径，所有的文件都会相对于当前路径

注：以上路径均推荐使用绝对路径



### 2. 启动项目

（2.1和2.2任选一个）

#### 2.1 脚本启动

请修改 `src/main.py`中的query部分，修改为你需要的

注意：`raw_video`必须为相对于`KB_BASE_PATH`的路径，这样设计是为了减少大模型在调用过程中对出现路径错误的可能性。


```bash
cd src
python main.py
```


#### 2.2 webui

```bash
bash start_up.sh
```

进入webui即可



## 🫡实现介绍

整体架构图如下

![](assets/images/stream_cn.png)

具体直接看代码`src/processor`部分即可，这里是每个模块的入口，整体的思路在图上已经很清晰了。





## ✅Todo List

- [ ] 增加prompt切换，实现片头片尾的支持
- [ ] 实现对asr api的支持，脱离本地推理限制
- [ ] 扩展`vedit-mcp`，目前仅支持基本的剪辑功能，需要继续提供支持
- [ ] 增加添加字幕功能
- [ ] 添加语音识别的API调用方法
- [ ] 增加封面生成功能，先搞个简陋版的
- [ ] 考虑对歌回的支持
- [ ] 考虑使用说话人分离，实现对游戏回、看视频回等声音信号不唯一情景的支持




## 🔥Latest News

- 2025-05-18, 无法解决streamlit的file_uploader bug，改用gradio实现

- 2025-05-08, 使用streamlit实现了简易的webui界面

## 我的忏悔

最近比较忙，当然这是次要原因，主要原因是我太懒，所以好久没更新了。
目前这个方案整体上我不太满意，有生之年可能会更新，但短期内估计没有可能了。Orz
django-sqlitetrigger 0.1.1
SQLite trigger support integrated with Django models.
Requires Python: >=3.14
Keywords: django, sqlite, triggers

# django-sqlitetrigger

SQLite trigger support integrated with Django models.

Inspired by [django-pgtrigger](https://github.com/AmbitionEng/django-pgtrigger), this package provides declarative trigger support for SQLite-backed Django projects. I'm very grateful for the existence of `django-pgtrigger`, without which I don't think this package could exist.

## AI disclosure

To be super clear: this project was built by prompting GitHub Copilot to modify `django-pgtrigger` for use with SQLite. I was in the process of doing something very similar manually, when it dawned on me that this is the ideal use for today's agentic AI coding systems.

The resulting package is usable by me for my purposes. As the license notes, it comes with no warranty or expectation that it'll solve your problems.

## Quick start

Install and add `sqlitetrigger` to `INSTALLED_APPS`:

```python
INSTALLED_APPS = [
    "sqlitetrigger",
    # ...
]
```

Add triggers to your models:

```python
import sqlitetrigger

class ProtectedModel(models.Model):
    """This model cannot be deleted!"""

    class Meta:
        triggers = [
            sqlitetrigger.Protect(name="protect_deletes", operation=sqlitetrigger.Delete)
        ]
```

Install triggers:

```bash
python manage.py sqlitetrigger install
```

## Built-in triggers

- **Protect** — prevent insert, update, or delete operations
- **ReadOnly** — prevent changes to specific fields
- **SoftDelete** — intercept deletes and set a field instead
- **FSM** — enforce valid field state transitions

## Running tests

```bash
uv run pytest
```