Plugin registry compares plugins by equality, not identity
メンテナーはふだん 1 日以内に返信
@00200200 がすでに取り組んでいます。
2026年10月11日 から。
評価
調査の方向性
プラグインマネージャーのregister()、get_name()、is_registered()から始めます。これらは_name2pluginの値に対して==またはinを使ってプラグインを比較しており、すでにisを使っているget_hookcallers()と比較します。issueにある2つのdataclassインスタンスの例で再現し、その後比較をidentity(同一性)比較に切り替えてください。等しいが別個の2つのプラグインオブジェクトを異なる名前で登録できて、既存のテストスイートも引き続き通れば完了です。
索引モデルが issue の本文から書いたものです。
説明
🤖 Written by Claude Opus 5.5 via Claude Code for the pluggy maintainers; I prompted it, it did the work, I read it.
register() (plugin in self._name2plugin.values()), get_name() and is_registered() use ==, while get_hookcallers() uses is. Two distinct plugins that compare equal are treated as one:
@dataclass
class P:
@hookimpl
def myhook(self): ...
pm.register(P(), "one")
pm.register(P(), "two") # ValueError: Plugin already registered under a different name
Proposal: use identity everywhere. Small behavior change for plugins with a custom __eq__.
Found while working on #759.
- 主要言語
- Python
- スター
- 1.7k
- フォーク
- 172
- 平均マージ
- 2日 18時間
- マージ済み PR(30日)
- 21
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
pytest-dev/pluggy のほかの issue
-
Defaulted positional-only hook parameters are forwarded as keywords対応中かも @adenzhou1350 が 3 日前に担当しました。 オープン
難易度 4/5 1〜2日 初心者へのやさしさ 45/100
pytest-dev/pluggy#774 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
list_plugin_distinfo() keeps unregistered plugins対応中かも @RonnyPfannschmidt が 4 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 35/100
pytest-dev/pluggy#763 ·
メンテナーはふだん 1 日以内に返信
-
unregister() argument validation relies on assert対応中かも @ekanshul が 4 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 42/100
pytest-dev/pluggy#762 ·
メンテナーはふだん 1 日以内に返信
-
Failures during add_hookspecs / historic replay leave partial state対応中かも @starx710 が今日担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 50/100
pytest-dev/pluggy#761 ·
メンテナーはふだん 1 日以内に返信
-
[Downstream] devpi broken - trying to register `None`対応中かも @bluetech が 13 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 58/100
pytest-dev/pluggy#749 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
pytest-dev/pluggy の issue をすべて見る
似ている issue
-
[Bug]: Streamed /v1/chat/completions sends unredacted agent error text (keys) in the final chunk対応中かも @rodricksz4h5 が今日担当しました。 オープンarea/streaming comp/gateway P2 type/security
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
NousResearch/hermes-agent#138245 ·
メンテナーはふだん 1 日以内に返信
-
[oblt-aw][autodoc] Update user onboarding guide for mandatory trigger CODEOWNERS step対応中かも @github-actions が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
メンテナーはふだん 1 日以内に返信
-
correction metadata
難易度 2/5 1時間未満 初心者へのやさしさ 68/100
acl-org/acl-anthology#10378 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
cloudtrail_multi_region_enabled_logging_management_events fails when the advanced event selector has a custom name対応中かも @12YYCCYY16 が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
prowler-cloud/prowler#13033 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 1/5 1〜3時間 初心者へのやさしさ 88/100
graygarbage/HermesKey#23 ·