diff --git a/stdlib/@tests/stubtest_allowlists/py314.txt b/stdlib/@tests/stubtest_allowlists/py314.txt index e5c32d5ef..3435332ca 100644 --- a/stdlib/@tests/stubtest_allowlists/py314.txt +++ b/stdlib/@tests/stubtest_allowlists/py314.txt @@ -66,7 +66,6 @@ multiprocessing.managers._BaseDictProxy.__ror__ multiprocessing.managers._BaseDictProxy.fromkeys multiprocessing.process.BaseProcess.interrupt multiprocessing.synchronize.SemLock.locked -pyexpat.errors.XML_ERROR_NOT_STARTED shutil.__all__ sre_compile.CH_NEGATE sre_constants.CH_NEGATE @@ -85,10 +84,6 @@ turtle.poly turtle.save types.CodeType.co_branches types.FrameType.f_generator -xml.parsers.expat.errors.XML_ERROR_NOT_STARTED -xml.sax.__all__ -xml.sax.InputSource - # ========================= # New errors in Python 3.14 diff --git a/stdlib/pyexpat/errors.pyi b/stdlib/pyexpat/errors.pyi index cae4da089..493ae0345 100644 --- a/stdlib/pyexpat/errors.pyi +++ b/stdlib/pyexpat/errors.pyi @@ -49,3 +49,5 @@ if sys.version_info >= (3, 11): XML_ERROR_INVALID_ARGUMENT: Final[LiteralString] XML_ERROR_NO_BUFFER: Final[LiteralString] XML_ERROR_AMPLIFICATION_LIMIT_BREACH: Final[LiteralString] +if sys.version_info >= (3, 14): + XML_ERROR_NOT_STARTED: Final[LiteralString] diff --git a/stdlib/xml/sax/__init__.pyi b/stdlib/xml/sax/__init__.pyi index a2eecc5a7..ebe92d28c 100644 --- a/stdlib/xml/sax/__init__.pyi +++ b/stdlib/xml/sax/__init__.pyi @@ -1,3 +1,4 @@ +import sys from _typeshed import ReadableBuffer, StrPath, SupportsRead, _T_co from collections.abc import Iterable from typing import Protocol @@ -10,7 +11,7 @@ from xml.sax._exceptions import ( SAXReaderNotAvailable as SAXReaderNotAvailable, ) from xml.sax.handler import ContentHandler as ContentHandler, ErrorHandler as ErrorHandler -from xml.sax.xmlreader import XMLReader +from xml.sax.xmlreader import InputSource as InputSource, XMLReader class _SupportsReadClose(SupportsRead[_T_co], Protocol[_T_co]): def close(self) -> None: ... @@ -23,3 +24,19 @@ def make_parser(parser_list: Iterable[str] = ()) -> XMLReader: ... def parse(source: _Source, handler: ContentHandler, errorHandler: ErrorHandler = ...) -> None: ... def parseString(string: ReadableBuffer | str, handler: ContentHandler, errorHandler: ErrorHandler | None = ...) -> None: ... def _create_parser(parser_name: str) -> XMLReader: ... + +if sys.version_info >= (3, 14): + __all__ = [ + "ContentHandler", + "ErrorHandler", + "InputSource", + "SAXException", + "SAXNotRecognizedException", + "SAXNotSupportedException", + "SAXParseException", + "SAXReaderNotAvailable", + "default_parser_list", + "make_parser", + "parse", + "parseString", + ]