Closed keitakn closed 6 months ago
https://github.com/nekochans/ai-cat-api/issues/96
https://github.com/nekochans/ai-cat-api/issues/96 の完了の定義に記載されている通り、CatMessageRepository.generate_message_for_guest_user の型定義を現時点でベストと思われる形に変更する。
CatMessageRepository.generate_message_for_guest_user
UI変更はないのでなし
タイトルの通りジェネレータメソッドである CatMessageRepository.generate_message_for_guest_user の型定義を現時点でベストと思われる内容に変更。
実装当時は正直Pythonにも不慣れでジェネレータの型定義方法をあまり良く分かっておらず # type: ignore を使って mypy のチェックを回避していたが以下の記事を見て from collections.abc import AsyncIterator を利用する形に変更した。(元記事では非同期関数ではないので Iterator を利用)
# 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 を利用しないといけないのでよりシンプルな型定義で済む Iterator(AsyncIterator) を使ったほうがシンプルになると判断した。
from collections.abc import Generator
None
AsyncIterator
おそらく今の形がベストではと思っているが、もしも更により型定義の方法があれば教えていただけると🙏
インラインコメント記載。
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
を利用しないといけないのでよりシンプルな型定義で済むIterator
(AsyncIterator
) を使ったほうがシンプルになると判断した。レビュアーに重点的にチェックして欲しい点
おそらく今の形がベストではと思っているが、もしも更により型定義の方法があれば教えていただけると🙏
補足情報
インラインコメント記載。