Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

ASYNC103 for sync functions

オープン
#447 コメント 5 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
62/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
静か
技術スタック
python
領域
tooling

調査の方向性

まず、src/trio/_core/_instrumentation.py に示されている同期呼び出しに対して ASYNC103 を再現し、ルールが同期関数と非同期関数をどのように区別しているかを調べます。意図された ASYNC103 のケースは引き続き報告される一方で、この誤検出が報告されなくなれば完了です。場所を特定したら、関連する回帰テストを追加または更新します。

索引モデルが issue の本文から書いたものです。

説明

rule improvement

I don't think sync functions can raise trio.Cancelled, but this is causing ASYNC103:

    def call(
        self,
        hookname: str,
        *args: object,
    ) -> None:
        # snip
        for instrument in list(self.data[hookname]):
            try:
                getattr(instrument, hookname)(*args)
            except BaseException:  # E
                self.remove_instrument(instrument)
                INSTRUMENT_LOGGER.exception(
                    "Exception raised when calling %r on instrument %r. "
                    "Instrument has been disabled.",
                    hookname,
                    instrument,
                )

Error message:

src/trio/_core/_instrumentation.py:110:20: ASYNC103 BaseException block with a code path that doesn't re-raise the error. Consider adding an `except trio.Cancelled: raise` before this exception handler.
主要言語
Python
スター
26
フォーク
10
PR マージ指標
30日以内にマージされた PR はありません

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

python-trio/flake8-async のほかの issue

python-trio/flake8-async の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。