Issue #18200: Update the stdlib (except tests) to use

ModuleNotFoundError.
This commit is contained in:
Brett Cannon 2013-06-13 20:57:26 -04:00
parent 9702a17a6a
commit 0a140668fa
83 changed files with 144 additions and 158 deletions

View file

@ -1439,13 +1439,13 @@ class XMLParser:
def __init__(self, html=0, target=None, encoding=None):
try:
from xml.parsers import expat
except ImportError:
except ModuleNotFoundError:
try:
import pyexpat as expat
except ImportError:
raise ImportError(
"No module named expat; use SimpleXMLTreeBuilder instead"
)
except ModuleNotFoundError:
raise ModuleNotFoundError(
"No module named expat; use SimpleXMLTreeBuilder instead",
name='expat')
parser = expat.ParserCreate(encoding, "}")
if target is None:
target = TreeBuilder()

View file

@ -20,7 +20,7 @@ del sys
try:
from xml.parsers import expat
except ImportError:
except ModuleNotFoundError:
raise SAXReaderNotAvailable("expat not supported", None)
else:
if not hasattr(expat, "ParserCreate"):
@ -30,18 +30,7 @@ from xml.sax import xmlreader, saxutils, handler
AttributesImpl = xmlreader.AttributesImpl
AttributesNSImpl = xmlreader.AttributesNSImpl
# If we're using a sufficiently recent version of Python, we can use
# weak references to avoid cycles between the parser and content
# handler, otherwise we'll just have to pretend.
try:
import _weakref
except ImportError:
def _mkproxy(o):
return o
else:
import weakref
_mkproxy = weakref.proxy
del weakref, _weakref
import weakref
# --- ExpatLocator
@ -52,7 +41,7 @@ class ExpatLocator(xmlreader.Locator):
a circular reference between the parser and the content handler.
"""
def __init__(self, parser):
self._ref = _mkproxy(parser)
self._ref = weakref.proxy(parser)
def getColumnNumber(self):
parser = self._ref