Metadata-Version: 2.4
Name: userdic-py
Version: 0.2.0
Summary: Convert Japanese IME user dictionary files
Author: Kai Kuchiki
License-Expression: GPL-3.0-or-later
Project-URL: Homepage, https://github.com/Umichang/userdic-py
Project-URL: Repository, https://github.com/Umichang/userdic-py
Project-URL: Issues, https://github.com/Umichang/userdic-py/issues
Keywords: ime,japanese,dictionary,mozc,atok,msime
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: Natural Language :: Japanese
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
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: Programming Language :: Python :: 3.14
Classifier: Topic :: Text Processing :: Linguistic
Classifier: Topic :: Utilities
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# userdic-py

`userdic-ng`（Ruby 実装）を Python に移植した、日本語 IME ユーザー辞書変換ツールです。

## 必要環境

- Python 3.9 以上

## インストール

### 1) PyPI から入れる（推奨）

```bash
python -m pip install userdic-py
```

インストール後は `userdic-py` コマンドが使えます。

### 2) リポジトリから入れる

```bash
python -m pip install .
```

開発中に編集内容をそのまま反映したい場合:

```bash
python -m pip install -e .
```

### 3) `make install` でローカル配置する

`/usr/local/bin` にコマンド、`/usr/local/lib/userdic-py` にライブラリを配置します。

```bash
make install
```

別のインストール先を使う場合:

```bash
make install PREFIX=/path/to/prefix
```

削除する場合:

```bash
make uninstall
```

## 使い方

```bash
userdic-py [--input-encoding ENCODING] [--output-encoding ENCODING] <from> <to> < input > output
```

リポジトリを直接実行する場合は、従来どおり `./userdic.py` でも動作します。

```bash
./userdic.py [--input-encoding ENCODING] [--output-encoding ENCODING] <from> <to> < input > output
```

`<from>` / `<to>` には次を指定できます。

- `mozc`
- `google`
- `anthy`
- `canna`
- `atok`
- `msime`
- `wnn`
- `apple`
- `generic`

`--input-encoding` / `--output-encoding` には Python の codec 名を指定します。
例: `utf-8`, `utf-16`, `utf-16-le`, `cp932`, `euc_jp`

## 使用例

```bash
userdic-py generic mozc < generic.txt > mozc.txt
```

```bash
userdic-py --input-encoding cp932 --output-encoding utf-8 msime generic < msime.txt > generic.txt
```

## 仕様メモ

- 入力エンコーディング未指定時は `utf-16` / `cp932` / `euc_jp` / `utf-8` の順で読み取りを試行します。
- 出力エンコーディング未指定時の既定値:
  - `msime`, `atok`: `utf-16`
  - `wnn`, `canna`: `euc_jp`
  - その他テキスト形式: `utf-8`
- `apple` は plist(XML) 形式を読み書きします。
- `apple` 入出力では `--input-encoding` / `--output-encoding` は利用できません。

## リリース手順

リリース用のツールを用意します。

```bash
python -m pip install --upgrade build twine
```

バージョンは `userdic_py/_version.py` の `__version__` を更新します。

配布物を作って検査します。

```bash
make check-dist
```

TestPyPI にアップロードしてインストール確認します。

```bash
make publish-test
python -m pip install --index-url https://test.pypi.org/simple/ --no-deps userdic-py
userdic-py --version
```

問題がなければ PyPI にアップロードします。

```bash
make publish
```
