semvec/pypi-packages huggingface dataset:
ime-utils 0.2.4
Chinese IME ciku (aka cell wordlist file) parsing tool
Requires Python: >=3.10

# IME-Utils

<div align="center">

![GitHub stars](https://img.shields.io/github/stars/hantang/ime-utils?style=flat-square)
![GitHub release](https://img.shields.io/github/v/release/hantang/ime-utils?style=flat-square)
![GitHub repo size](https://img.shields.io/github/repo-size/hantang/ime-utils?style=flat-square)
![GitHub license](https://img.shields.io/github/license/hantang/ime-utils?style=flat-square)

</div>

中文输入法词库文件（细胞词库）解析工具。

> Chinese IME ciku (aka cell wordlist file) parsing tool.

支持：

- [x] 搜狗拼音（`.scel`）
- [x] 百度拼音（`.bdict`）、百度输入法手机版（`.bcd`）
- [x] QQ 拼音（`.qcel`）、QQ 拼音旧版（6.0 以下词库，`.qpyd`）
- [x] 华宇拼音（紫光输入法）（`.uwl`）

## 使用

- 程序调用：

```python
# 安装
# pip install ime-utils
# uv pip install . # 本地

# 用例：
from ime_utils.parser import SogouParser, BaiduParser

parser = BaiduParser()
files = [
    "医学词汇.bdict",
    "电影明星.bdict",
    "体操基本术语.bdict",
]

for file in files:
    save_file = f"out-{file}.txt"
    if parser.parse(file):
        parser.save_data(save_file, keep_error=False)
        result = parser.export_data()
```

- 命令行调用

```shell
# 或者 python -m ime_utils -f file-names -o output

# 指定多个文件
ime-utils -f file-name1,file-name2 -o output
# 指定目录，-e保留解析异常词语, -r 目录递归检索文件
ime-utils -d file-dir -o text -e -r
```

## 开发

```shell
# 开发环境
uv sync --dev --all-extras # --locked

# 提交前检查
uvx ruff check .
uvx mypy .

# 构建
uv build
```

## 相关

- [:link: 蔷薇词库转换 nopdan/rose](https://github.com/nopdan/rose)
  ![](https://img.shields.io/github/v/release/nopdan/rose)
  ![](https://img.shields.io/github/license/nopdan/rose)
  ![](https://img.shields.io/github/last-commit/nopdan/rose)

- [:link: 深蓝词库转换 studyzy/imewlconverter](https://github.com/studyzy/imewlconverter)
  ![](https://img.shields.io/github/v/release/studyzy/imewlconverter)
  ![](https://img.shields.io/github/license/studyzy/imewlconverter)
  ![](https://img.shields.io/github/last-commit/studyzy/imewlconverter)
vaultdweller 0.2.2
This is the simplest client for quick work with vaultwarden.
Requires Python: >=3.11

# VaultDweller
## This is the simplest client for quick work with vaultwarden.

### Installation
```sh 
pip install vaultdweller
```
### Usage
You can get credits by name or by ID.

The names of repositories, collections, and records are not unique in vaultWarden, only the IDs are unique.
Therefore, if you are searching by name and the name of the record is duplicated, the first one found will be returned.
In such cases, you can add the name of the collection and/or storage
There are synchronous and asynchronous search methods.

I tested on python 3.11, I think it will work on earlier versions,
maybe it will be necessary to fix the typing.

``` python
vault = VaultWarden(
    url=url,
    email=email,
    password=master_password,
    client_id=client_id,
    client_secret=client_secret,
    device_id=device_id,
)
by_id_async = await vault.get_creds_by_id('ea27e9e3-f4c0-45ca-afd3-f7e722303a4b')

by_name_async = await vault.creds_by_name('item_name_1')
by_name_sync = vault.creds_by_name_sync('item_name_2', collection='Collection_1')

# change password
await vault.change_password(by_name_async.item_id, 'new_password')

#generate new totp
by_name_async.get_current_totp()

```
### Results
```
username='some_user'
password='some_password'
topt='111111'                   # one time password
uri='https://localhost/Login'
custom_fields=None              # if you added custom field in item 
```

#### Requirements:
* pyotp>=2.9.0
* httpx>=0.28.1
* pycryptodome>=3.22.0
* hkdf>=0.0.3
tviz 0.2.2
tviz is a visualization dashboard for the Tinker API
Requires Python: >=3.10

<h1 align="center">tviz</h1>
<div align="center">
  <img src="https://github.com/user-attachments/assets/58bb9adb-3866-40ad-a0fb-1b265c638743" alt="tviz dashboard" width="80%" />
</div>

tviz is a local dashboard for visualizing RL training runs. Similar to wandb, you add a logger to your training loop. Metrics, rollouts, and trajectories are stored in a local SQLite database and displayed in real-time.

## Installation

```bash
pip install tviz
```

## Quick Start

```python
from tviz import TvizLogger

logger = TvizLogger(run_name="gsm8k_rl")
logger.log_hparams({"model": "llama-3.2-1b", "lr": 1e-4})
print(f"View at: {logger.get_logger_url()}")

for step in range(100):
    # ... training code ...
    logger.log_metrics({"reward": 0.5, "loss": 0.1}, step=step)
    logger.log_rollouts(rollouts, step=step)

logger.close()
```

## Dashboard

```bash
git clone https://github.com/sdan/tviz.git
cd tviz && bun install && bun dev
```

Open `http://localhost:3003` to view training runs.

By default, tviz stores data in `~/.tviz/tviz.db`. Override with `TVIZ_DB_PATH`.

## API Reference

### TvizLogger

```python
TvizLogger(
    db_path: str | None = None,    # Path to SQLite db (default: ~/.tviz/tviz.db)
    run_name: str | None = None,   # Human-readable run name
    modality: str = "text"         # "text" or "vision"
)
```

### Methods

| Method | Description |
|--------|-------------|
| `log_hparams(config)` | Log hyperparameters dict |
| `log_metrics(metrics, step)` | Log scalar metrics for a step |
| `log_rollouts(rollouts, step)` | Log trajectory rollouts |
| `get_logger_url()` | Get dashboard URL for this run |
| `close()` | Mark run complete, close connection |

### Rollout Format

```python
logger.log_rollouts([
    {
        "group_idx": 0,
        "prompt_text": "What is 2+2?",
        "trajectories": [
            {"trajectory_idx": 0, "reward": 1.0, "output_text": "4"},
            {"trajectory_idx": 1, "reward": 0.0, "output_text": "5"},
        ],
    }
], step=100)
```

## Tinker Integration

```python
from tviz.adapters.tinker import from_tinker_batch

# After rollouts:
rollouts = from_tinker_batch(trajectory_groups_P, tokenizer=tokenizer)
logger.log_rollouts(rollouts, step=i_batch)
```

## Modalities

- **text**: LLM RL (math, code, chat)
- **vision**: VLM tasks with images and maps

## License

MIT