1 from _typeshed import Self, SupportsRead
2 from typing import Any, Sequence, Type
4 from .builder import TreeBuilder
5 from .element import PageElement, SoupStrainer, Tag
6 from .formatter import Formatter
8 class GuessedAtParserWarning(UserWarning): ...
9 class MarkupResemblesLocatorWarning(UserWarning): ...
11 class BeautifulSoup(Tag):
13 DEFAULT_BUILDER_FEATURES: list[str]
15 NO_PARSER_SPECIFIED_WARNING: str
20 parse_only: SoupStrainer | None
24 markup: str | bytes | SupportsRead[str] | SupportsRead[bytes] = ...,
25 features: str | Sequence[str] | None = ...,
26 builder: TreeBuilder | Type[TreeBuilder] | None = ...,
27 parse_only: SoupStrainer | None = ...,
28 from_encoding: str | None = ...,
29 exclude_encodings: Sequence[str] | None = ...,
30 element_classes: dict[Type[PageElement], Type[Any]] | None = ...,
33 def __copy__(self: Self) -> Self: ...
39 preserve_whitespace_tag_stack: Any
40 string_container_stack: Any
41 def reset(self) -> None: ...
45 namespace: Any | None = ...,
46 nsprefix: Any | None = ...,
48 sourceline: Any | None = ...,
49 sourcepos: Any | None = ...,
52 def string_container(self, base_class: Any | None = ...): ...
53 def new_string(self, s, subclass: Any | None = ...): ...
54 def insert_before(self, *args) -> None: ...
55 def insert_after(self, *args) -> None: ...
57 def pushTag(self, tag) -> None: ...
58 def endData(self, containerClass: Any | None = ...) -> None: ...
59 def object_was_parsed(self, o, parent: Any | None = ..., most_recent_element: Any | None = ...) -> None: ...
60 def handle_starttag(self, name, namespace, nsprefix, attrs, sourceline: Any | None = ..., sourcepos: Any | None = ...): ...
61 def handle_endtag(self, name, nsprefix: Any | None = ...) -> None: ...
62 def handle_data(self, data) -> None: ...
63 def decode(self, pretty_print: bool = ..., eventual_encoding: str = ..., formatter: str | Formatter = ...): ... # type: ignore # missing some arguments
65 class BeautifulStoneSoup(BeautifulSoup): ...
66 class StopParsing(Exception): ...
67 class FeatureNotFound(ValueError): ...