nekochans / ai-cat-api

ねこの人格を持ったAIとお話できるサービスのバックエンドAPI
6 stars 0 forks source link

ジェネレータメソッドであるCatMessageRepository.generate_message_for_guest_user の型定義を適切な形に変更 #98

Closed keitakn closed 6 months ago

keitakn commented 6 months ago

issueURL

https://github.com/nekochans/ai-cat-api/issues/96

この PR で対応する範囲 / この PR で対応しない範囲

https://github.com/nekochans/ai-cat-api/issues/96 の完了の定義に記載されている通り、CatMessageRepository.generate_message_for_guest_user の型定義を現時点でベストと思われる形に変更する。

Storybook の URL、 スクリーンショット

UI変更はないのでなし

変更点概要

タイトルの通りジェネレータメソッドである CatMessageRepository.generate_message_for_guest_user の型定義を現時点でベストと思われる内容に変更。

実装当時は正直Pythonにも不慣れでジェネレータの型定義方法をあまり良く分かっておらず # type: ignore を使って mypy のチェックを回避していたが以下の記事を見て from collections.abc import AsyncIterator を利用する形に変更した。(元記事では非同期関数ではないので Iterator を利用)

https://nikkie-ftnext.hatenablog.com/entry/generator-function-return-value-type-hint

この変更により mypy のチェックを無事に通過するようになり # type: ignore を削除する事になった。

ちなみに元記事では from collections.abc import Generator を利用していたが、None を利用しないといけないのでよりシンプルな型定義で済む IteratorAsyncIterator) を使ったほうがシンプルになると判断した。

レビュアーに重点的にチェックして欲しい点

おそらく今の形がベストではと思っているが、もしも更により型定義の方法があれば教えていただけると🙏

補足情報

インラインコメント記載。