ASYNC103 for sync functions
まだ誰も着手していません。
評価
調査の方向性
まず、src/trio/_core/_instrumentation.py に示されている同期呼び出しに対して ASYNC103 を再現し、ルールが同期関数と非同期関数をどのように区別しているかを調べます。意図された ASYNC103 のケースは引き続き報告される一方で、この誤検出が報告されなくなれば完了です。場所を特定したら、関連する回帰テストを追加または更新します。
索引モデルが issue の本文から書いたものです。
説明
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 はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
python-trio/flake8-async のほかの issue
-
rule improvement
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
python-trio/flake8-async#457 · リアクション 1 件 ·
-
Extend ASYNC401 to other forms対応中かも @anshurajbisoyi98-ctrl が 2 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
python-trio/flake8-async#475 · コメント 1 件 · リアクション 1 件 ·
-
new rule
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
python-trio/flake8-async#454 · コメント 1 件 ·
-
New rule: `ASYNC233` for blocking `pathlib` methods対応中かも @paranoa233 が 90 日前に担当しました。 オープンgood first issue
難易度 5/5 1週間以上 初心者へのやさしさ 15/100
python-trio/flake8-async#396 · コメント 1 件 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
python-trio/flake8-async#395 · コメント 8 件 ·
python-trio/flake8-async の issue をすべて見る
似ている issue
-
enhancement P2
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
Toloka/tolokaforge#1776 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
TencentCloud/Octop#1622 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 68/100
-
Rust: `const _` gets its file's node ID, so the file node is relabelled `_` and gains a self-loopオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
Graphify-Labs/graphify#4064 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信