diff options
author | Berker Peksag <berker.peksag@gmail.com> | 2020-07-16 06:13:05 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-16 06:13:05 (GMT) |
commit | e34bbfd61f405eef89e8aa50672b0b25022de320 (patch) | |
tree | 7a24deba19acb56131638e7ee185378cfabc56d8 | |
parent | 936a66094591dc0e67d4a60c170148bb700ec016 (diff) | |
download | cpython-e34bbfd61f405eef89e8aa50672b0b25022de320.zip cpython-e34bbfd61f405eef89e8aa50672b0b25022de320.tar.gz cpython-e34bbfd61f405eef89e8aa50672b0b25022de320.tar.bz2 |
bpo-31844: Remove _markupbase.ParserBase.error() (GH-8562)
-rw-r--r-- | Doc/whatsnew/3.9.rst | 5 | ||||
-rw-r--r-- | Lib/_markupbase.py | 35 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Library/2018-07-30-12-48-17.bpo-31844.0_GKsD.rst | 4 |
3 files changed, 27 insertions, 17 deletions
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst index c2db9bc..18cc558 100644 --- a/Doc/whatsnew/3.9.rst +++ b/Doc/whatsnew/3.9.rst @@ -887,6 +887,11 @@ Removed :func:`asyncio.current_task` and :func:`asyncio.all_tasks` instead. (Contributed by RĂ©mi Lapeyre in :issue:`40967`) +* The ``ParserBase.error()`` method from the private and undocumented ``_markupbase`` + module has been removed. :class:`html.parser.HTMLParser` is the only subclass of + ``ParserBase`` and its ``error()`` implementation has already been removed in + Python 3.5. + (Contributed by Berker Peksag in :issue:`31844`.) Porting to Python 3.9 ===================== diff --git a/Lib/_markupbase.py b/Lib/_markupbase.py index 2af5f1c..3ad7e27 100644 --- a/Lib/_markupbase.py +++ b/Lib/_markupbase.py @@ -29,10 +29,6 @@ class ParserBase: raise RuntimeError( "_markupbase.ParserBase must be subclassed") - def error(self, message): - raise NotImplementedError( - "subclasses of ParserBase must override error()") - def reset(self): self.lineno = 1 self.offset = 0 @@ -131,12 +127,11 @@ class ParserBase: # also in data attribute specifications of attlist declaration # also link type declaration subsets in linktype declarations # also link attribute specification lists in link declarations - self.error("unsupported '[' char in %s declaration" % decltype) + raise AssertionError("unsupported '[' char in %s declaration" % decltype) else: - self.error("unexpected '[' char in declaration") + raise AssertionError("unexpected '[' char in declaration") else: - self.error( - "unexpected %r char in declaration" % rawdata[j]) + raise AssertionError("unexpected %r char in declaration" % rawdata[j]) if j < 0: return j return -1 # incomplete @@ -156,7 +151,9 @@ class ParserBase: # look for MS Office ]> ending match= _msmarkedsectionclose.search(rawdata, i+3) else: - self.error('unknown status keyword %r in marked section' % rawdata[i+3:j]) + raise AssertionError( + 'unknown status keyword %r in marked section' % rawdata[i+3:j] + ) if not match: return -1 if report: @@ -168,7 +165,7 @@ class ParserBase: def parse_comment(self, i, report=1): rawdata = self.rawdata if rawdata[i:i+4] != '<!--': - self.error('unexpected call to parse_comment()') + raise AssertionError('unexpected call to parse_comment()') match = _commentclose.search(rawdata, i+4) if not match: return -1 @@ -192,7 +189,9 @@ class ParserBase: return -1 if s != "<!": self.updatepos(declstartpos, j + 1) - self.error("unexpected char in internal subset (in %r)" % s) + raise AssertionError( + "unexpected char in internal subset (in %r)" % s + ) if (j + 2) == n: # end of buffer; incomplete return -1 @@ -209,8 +208,9 @@ class ParserBase: return -1 if name not in {"attlist", "element", "entity", "notation"}: self.updatepos(declstartpos, j + 2) - self.error( - "unknown declaration %r in internal subset" % name) + raise AssertionError( + "unknown declaration %r in internal subset" % name + ) # handle the individual names meth = getattr(self, "_parse_doctype_" + name) j = meth(j, declstartpos) @@ -234,14 +234,14 @@ class ParserBase: if rawdata[j] == ">": return j self.updatepos(declstartpos, j) - self.error("unexpected char after internal subset") + raise AssertionError("unexpected char after internal subset") else: return -1 elif c.isspace(): j = j + 1 else: self.updatepos(declstartpos, j) - self.error("unexpected char %r in internal subset" % c) + raise AssertionError("unexpected char %r in internal subset" % c) # end of buffer reached return -1 @@ -387,8 +387,9 @@ class ParserBase: return name.lower(), m.end() else: self.updatepos(declstartpos, i) - self.error("expected name token at %r" - % rawdata[declstartpos:declstartpos+20]) + raise AssertionError( + "expected name token at %r" % rawdata[declstartpos:declstartpos+20] + ) # To be overridden -- handlers for unknown objects def unknown_decl(self, data): diff --git a/Misc/NEWS.d/next/Library/2018-07-30-12-48-17.bpo-31844.0_GKsD.rst b/Misc/NEWS.d/next/Library/2018-07-30-12-48-17.bpo-31844.0_GKsD.rst new file mode 100644 index 0000000..9034afd --- /dev/null +++ b/Misc/NEWS.d/next/Library/2018-07-30-12-48-17.bpo-31844.0_GKsD.rst @@ -0,0 +1,4 @@ +Remove ``ParserBase.error()`` method from the private and undocumented +``_markupbase`` module. :class:`html.parser.HTMLParser` is the only +subclass of ``ParserBase`` and its ``error()`` implementation was deprecated +in Python 3.4 and removed in Python 3.5. |