From 971f0c64c6780d656b2f7a99ce55d9ae9bf5a41d Mon Sep 17 00:00:00 2001 From: Stephen Morton Date: Wed, 20 Nov 2024 04:56:44 -0800 Subject: [PATCH] Add `xml.__all__`, remove import not existing at runtime (#13048) --- stdlib/@tests/stubtest_allowlists/common.txt | 2 ++ stdlib/xml/__init__.pyi | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/stdlib/@tests/stubtest_allowlists/common.txt b/stdlib/@tests/stubtest_allowlists/common.txt index 3abe00aa8..074bc9367 100644 --- a/stdlib/@tests/stubtest_allowlists/common.txt +++ b/stdlib/@tests/stubtest_allowlists/common.txt @@ -591,8 +591,10 @@ email.mime email.parser email.quoprimime email.utils +xml.__all__ xml.dom xml.etree +xml.parsers xml.sax # Missing aliases to existing methods that not many people seem to use. diff --git a/stdlib/xml/__init__.pyi b/stdlib/xml/__init__.pyi index a487d2467..7a2409651 100644 --- a/stdlib/xml/__init__.pyi +++ b/stdlib/xml/__init__.pyi @@ -1 +1,3 @@ -from xml import parsers as parsers +# At runtime, listing submodules in __all__ without them being imported is +# valid, and causes them to be included in a star import. See #6523 +__all__ = ["dom", "parsers", "sax", "etree"] # noqa: F822 # pyright: ignore[reportUnsupportedDunderAll]