yupix / MiPAC

Misskey Python API Core
https://mipac.akarinext.org/
MIT License
17 stars 4 forks source link

target_cache.put で KeyError が発生する #147

Closed yuma-m closed 6 days ago

yupix commented 2 weeks ago

ご報告ありがとうございます。 前回と同様にエラーでご迷惑をおかけして申し訳ないです。

朝は少し作業する時間が取れないので、昼頃か夕方に調査させて頂きます。

上記の del self.items[key] は self._remove_node(self.items[key]) とすべき?

その可能性は結構高いので調査の際に確認させて頂きます🙏

また、複数のコルーチンから LRUCache への操作が発生しても大丈夫でしょうか?

複数のコルーチンからのアクセスは問題ないと考えています

yupix commented 2 weeks ago

LRUCacheを作成した際に fetch_ 系での動作確認を忘れていたみたいで、全く気づきませんでした。

上記の del self.items[key] は self._remove_node(self.items[key]) とすべき?

で解決しそうなので v0.7.2をリリースしますのでそちらで解決するようでしたらIssueをクローズしていただけると助かります。

yupix commented 2 weeks ago

リリースしたのでお手数ですが確認のほどよろしくお願いします。

https://pypi.org/project/mipac/0.7.2/

yuma-m commented 2 weeks ago

@yupix スピーディなご対応、どうもありがとうございます。アップデートの上、しらばく運用して問題なさそうであれば Close するようにいたします。

yuma-m commented 2 weeks ago

@yupix 五月雨式にすみません。0.7.2 に上げたところ以下のようなエラーが発生するので、5ecc256 と対応する下記の行の削除が必要そうです。

https://github.com/yupix/MiPAC/blob/8a2f586379ca2466b85c7e687755a88fda414768/mipac/models/user.py#L47

  File "/home/xxx/main.py", line 12, in <module>
    from mipac import Note
  File "/home/xxx/.local/lib/python3.13/site-packages/mipac/__init__.py", line 15, in <module>
    from .actions import *
  File "/home/xxx/.local/lib/python3.13/site-packages/mipac/actions/__init__.py", line 1, in <module>
    from .admins import *
  File "/home/xxx/.local/lib/python3.13/site-packages/mipac/actions/admins/__init__.py", line 1, in <mo>
    from .admin import *
  File "/home/xxx/.local/lib/python3.13/site-packages/mipac/actions/admins/admin.py", line 7, in <modul>
    from mipac.models.admin import IndexStat, ModerationLog, ServerInfo, UserIP
  File "/home/xxx/.local/lib/python3.13/site-packages/mipac/models/__init__.py", line 12, in <module>
    from .user import *
AttributeError: module 'mipac.models.user' has no attribute 'UserRole'
yupix commented 2 weeks ago

申し訳ないです。 こちらでもそれは出てたのですがコミットするのを忘れてました、今から再度リリースさせて頂きます

yupix commented 2 weeks ago

v0.7.3としてリリースしました

https://pypi.org/project/mipac/0.7.3/

yuma-m commented 1 week ago

1点質問です。 client.note.action.fetch_reactions(note_id="xxx", limit=xxx, type=":xxx:")None を返す場合があるのですが、想定通りの挙動でしょうか? Type Hints では戻り値が list[NoteReaction] となっているので気になりました。 https://github.com/yupix/MiPAC/blob/a75c05027218609bdc6b6dc0472a9886094bc801/mipac/actions/note.py#L275-L283

以下の fetch_reaction 内で、cache(override=False)get_reactions を呼び出している部分が気になったのですが、もし私のアプリケーション側での fetch/get メソッドの使い分け等が間違っているようでしたら教えて下さい。自身の過去の発言に対するリアクションを定期的に取得する処理で利用しております。 https://github.com/yupix/MiPAC/blob/a75c05027218609bdc6b6dc0472a9886094bc801/mipac/actions/reaction.py#L92-L104

yupix commented 1 week ago

質問の方に関してはこちらの想定としてはNoneは返すつもりがないのでバグです。他の点については現在まだ自宅ではないので帰宅後に確認します。

yupix commented 1 week ago

以下の fetch_reaction 内で、cache(override=False) の get_reactions を呼び出している部分が気になったのですが、もし私のアプリケーション側での fetch/get メソッドの使い分け等が間違っているようでしたら教えて下さい。自身の過去の発言に対するリアクションを定期的に取得する処理で利用しております。

スマホで軽くコードを見た感じ本来fetchでリクエストをやるはずがほとんどの箇所でgetで行ってしまっているのが原因かもしれません。

yupix commented 1 week ago

このissueでやるのは少し範囲外な気がするので新しいissueを作成しました。 #149

yupix commented 1 week ago

fetch,getに関係なく今回の不具合は cache デコレータにてキーが見つからなかった場合に対応した動作が無かったことのようです、今動作確認をある程度したのでリリースします

yupix commented 1 week ago

v0.7.4で上記の問題は修正できたかと思います。 度々申し訳ございませんが、再度更新のほどよろしくお願いします。

https://pypi.org/project/mipac/0.7.4/

yuma-m commented 1 week ago

いつも素早いご対応、どうもありがとうございます🙏 v0.7.4 でしばらく挙動を確認させていただきます。

yuma-m commented 6 days ago

4〜5日ほど運用しておりますが、特に問題なさそうですので Close いたします。ご対応どうもありがとうございました!

yupix commented 6 days ago

検証ありがとうございます。お手数おかけして申し訳ないです。いつもバグ報告助かってます。また何かありましたらご連絡くだされば幸いです🙏