Metadata-Version: 2.4
Name: cnchar
Version: 0.1.0
Summary: A Chinese character and language processing toolkit for Python
Author-email: songwupei <songwupei@163.com>
License-Expression: MIT
Project-URL: Homepage, https://codeberg.org/songwupei/cnchar
Project-URL: Bug Reports, https://codeberg.org/songwupei/cnchar/issues
Project-URL: Source, https://codeberg.org/songwupei/cnchar
Keywords: chinese,idiom,search,language,education
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Education
Classifier: Topic :: Text Processing :: Linguistic
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: dev
Requires-Dist: pytest>=6.0; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Dynamic: license-file

# cnchar

[![PyPI version](https://badge.fury.io/py/cnchar.svg)](https://badge.fury.io/py/cnchar)

一个中文成语搜索工具包，提供基于模式匹配和新华字典风格的成语查询功能。

## 特性

- 🔍 **多种搜索模式**: 支持模式搜索和新华字典风格搜索
- 📝 **详细信息**: 提供成语的拼音、解释、例句和出处
- 💻 **命令行工具**: 提供便捷的命令行界面
- 🐍 **Python API**: 提供完整的 Python 编程接口
- 💾 **结果导出**: 支持将结果保存为文本文件或 JSON 格式

## 安装

```bash
pip install cnchar
```

## 快速开始

### 命令行使用

```bash
# 模式搜索（第一位是"一"，第三位是"二"）
cnchar-idiom "一,,二,"

# 新华字典风格搜索
cnchar-idiom --xinhuadict "一:0" "二:2" --limit 5

# 交互模式
cnchar-idiom --interactive
```

### Python API

```python
from cnchar import IdiomSearcher

# 创建搜索器（自动加载包内成语数据）
searcher = IdiomSearcher()

# 模式搜索
results = searcher.search_by_pattern(["字", "", "母", ""])
for idiom in results:
    print(f"{idiom['word']} - {idiom['pinyin']}")

# 新华字典风格搜索
results = searcher.get_idiom_by_xinhuadict_detailed(["字", "母"], [0, 2], limit=5)
```

### 更多示例

参见 [`examples/`](examples/) 目录。

## 项目结构

```
cnchar/
└── cnidiom/     # 成语搜索模块
    ├── core.py   # 核心搜索逻辑
    ├── cli.py    # 命令行界面
    ├── utils.py  # 工具函数
    └── idiom.json # 成语数据
```

## 数据来源

本工具使用新华字典成语数据，数据文件随包分发。

## 许可证

MIT License
