29 lines
951 B
Python
29 lines
951 B
Python
"""Exceptions defined by Beautiful Soup itself."""
|
|
|
|
from typing import Union
|
|
|
|
|
|
class StopParsing(Exception):
|
|
"""Exception raised by a TreeBuilder if it's unable to continue parsing."""
|
|
|
|
|
|
class FeatureNotFound(ValueError):
|
|
"""Exception raised by the BeautifulSoup constructor if no parser with the
|
|
requested features is found.
|
|
"""
|
|
|
|
|
|
class ParserRejectedMarkup(Exception):
|
|
"""An Exception to be raised when the underlying parser simply
|
|
refuses to parse the given markup.
|
|
"""
|
|
|
|
def __init__(self, message_or_exception: Union[str, Exception]):
|
|
"""Explain why the parser rejected the given markup, either
|
|
with a textual explanation or another exception.
|
|
"""
|
|
if isinstance(message_or_exception, Exception):
|
|
e = message_or_exception
|
|
message_or_exception = "%s: %s" % (e.__class__.__name__, str(e))
|
|
super(ParserRejectedMarkup, self).__init__(message_or_exception)
|