| """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) |