Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
内容
概要:
UserDictionary
クラスを追加してリファクタリングVOICEVOX ENGINE はユーザー辞書の実装として
read_dict()
などの個別関数を多数定義し、それらを直接呼び出している。これら関数が内部でアクセスする辞書は辞書パス引数によって設定されている。またデフォルトの辞書パスはハードコードしたうえでこのパス引数のデフォルト引数として渡されている。
その結果、現在のユーザー辞書 API は DI 不可能な構造となっている。これによりユーザー辞書 E2E テストの実装がブロックされている。
プリセットやマニフェストの実装はクラスベースとなっており、DI 可能な設計となっている。これを踏襲すれば DI 可能なユーザー辞書になる。
このような背景から、ユーザー辞書機能の
UserDictionary
クラス化によるリファクタリングを提案します。関連 Issue
無し
Review 向け補足情報
UserDictionary
クラス新設が主です。UserDictionary
は既存のread_dict()
等をラップし、従来関数呼び出しだった箇所をメソッド呼び出しで置き換えています。既存の
read_dict()
等はローカル関数になったため、_
prefix によるローカル化をしています。またこれらのデフォルト引数を廃止可能になったため、デフォルト引数は一括削除しています。