ElementTree.iselement() returns true for the Element type
オープン
まだ誰も着手していません。
stdlib
topic-XML
type-bug
- 主要言語
- Python
- スター
- 77.2k
- フォーク
- 35.9k
- PR マージ指標
- PR 指標を取得中
説明
According to documentation, ElementTree.iselement() check if the argument is an element object.
But it returns true also for the Element type which has all attributes of an Element instance. The way how the Element class is defined in Python suggests that this may be intentional, but the intention was lost in the documentation.
There is also an example of dataclasses.is_dataclass() which returns true both for a dataclass type and for a dataclass instance.
So, there are two ways:
- Fix the documentation to match the current behavior. All uses of
iselement()(see #135640) should also check if the argument is a type is they need an element object. - Fix the implementation to check if the argument is a type. This may break the user code that uses it to check for the Element type (I don't know if it exists) but may fix bugs in the user code which expects that
iselement()works as documented.
cc @scoder
Linked PRs
- gh-136482
- gh-136484
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
ElementTree.iselement() のドキュメントと実装から始め、次に関連する PR gh-136482 と gh-136484、および #135640 で参照されている使用箇所を調べます。完了条件は、文書化された動作を変更すべきか実装を変更すべきかを判断し、関連する動作またはドキュメントを一貫して更新することです。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- python
- 領域
- api
- issue の種類
- バグ
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 20/100