Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 96358fd

Browse files
authored
beautifulsoup4 stub improvements (#5907)
1 parent 4e22887 commit 96358fd

1 file changed

Lines changed: 21 additions & 21 deletions

File tree

stubs/beautifulsoup4/bs4/element.pyi

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from _typeshed import Self
2-
from typing import Any, Callable, Iterable, List, Mapping, Pattern, Set, Tuple, Type, TypeVar, Union, overload
2+
from typing import Any, Callable, Generic, Iterable, List, Mapping, Pattern, Set, Tuple, Type, TypeVar, Union, overload
33

44
from . import BeautifulSoup
55
from .builder import TreeBuilder
@@ -33,14 +33,14 @@ _SimpleNormalizedStrainable = Union[str, bool, None, Pattern[str], Callable[[str
3333
_NormalizedStrainable = Union[_SimpleNormalizedStrainable, Iterable[_SimpleNormalizedStrainable]]
3434

3535
class PageElement:
36-
parent: PageElement | None
36+
parent: Tag | None
3737
previous_element: PageElement | None
3838
next_element: PageElement | None
3939
next_sibling: PageElement | None
4040
previous_sibling: PageElement | None
4141
def setup(
4242
self,
43-
parent: PageElement | None = ...,
43+
parent: Tag | None = ...,
4444
previous_element: PageElement | None = ...,
4545
next_element: PageElement | None = ...,
4646
previous_sibling: PageElement | None = ...,
@@ -59,7 +59,7 @@ class PageElement:
5959
def extract(self: Self, _self_index: int | None = ...) -> Self: ...
6060
def insert(self, position: int, new_child: PageElement) -> None: ...
6161
def append(self, tag: PageElement) -> None: ...
62-
def extend(self, tags: Tag | Iterable[PageElement]) -> None: ...
62+
def extend(self, tags: Iterable[PageElement]) -> None: ...
6363
def insert_before(self, *args: PageElement) -> None: ...
6464
def insert_after(self, *args: PageElement) -> None: ...
6565
def find_next(
@@ -77,7 +77,7 @@ class PageElement:
7777
text: _Strainable | None = ...,
7878
limit: int | None = ...,
7979
**kwargs: _Strainable,
80-
) -> ResultSet: ...
80+
) -> ResultSet[PageElement]: ...
8181
findAllNext = find_all_next
8282
def find_next_sibling(
8383
self,
@@ -94,7 +94,7 @@ class PageElement:
9494
text: _Strainable | None = ...,
9595
limit: int | None = ...,
9696
**kwargs: _Strainable,
97-
) -> ResultSet: ...
97+
) -> ResultSet[PageElement]: ...
9898
findNextSiblings = find_next_siblings
9999
fetchNextSiblings = find_next_siblings
100100
def find_previous(
@@ -112,7 +112,7 @@ class PageElement:
112112
text: _Strainable | None = ...,
113113
limit: int | None = ...,
114114
**kwargs: _Strainable,
115-
) -> ResultSet: ...
115+
) -> ResultSet[PageElement]: ...
116116
findAllPrevious = find_all_previous
117117
fetchPrevious = find_all_previous
118118
def find_previous_sibling(
@@ -130,23 +130,23 @@ class PageElement:
130130
text: _Strainable | None = ...,
131131
limit: int | None = ...,
132132
**kwargs: _Strainable,
133-
) -> ResultSet: ...
133+
) -> ResultSet[PageElement]: ...
134134
findPreviousSiblings = find_previous_siblings
135135
fetchPreviousSiblings = find_previous_siblings
136136
def find_parent(
137137
self,
138138
name: _Strainable | SoupStrainer | None = ...,
139139
attrs: dict[str, _Strainable] | _Strainable = ...,
140140
**kwargs: _Strainable,
141-
) -> Tag | NavigableString | None: ...
141+
) -> Tag | None: ...
142142
findParent = find_parent
143143
def find_parents(
144144
self,
145145
name: _Strainable | SoupStrainer | None = ...,
146146
attrs: dict[str, _Strainable] | _Strainable = ...,
147147
limit: int | None = ...,
148148
**kwargs: _Strainable,
149-
) -> ResultSet: ...
149+
) -> ResultSet[Tag]: ...
150150
findParents = find_parents
151151
fetchParents = find_parents
152152
@property
@@ -162,14 +162,14 @@ class PageElement:
162162
@property
163163
def previous_siblings(self) -> Iterable[PageElement]: ...
164164
@property
165-
def parents(self) -> Iterable[PageElement]: ...
165+
def parents(self) -> Iterable[Tag]: ...
166166
@property
167167
def decomposed(self) -> bool: ...
168168
def nextGenerator(self) -> Iterable[PageElement]: ...
169169
def nextSiblingGenerator(self) -> Iterable[PageElement]: ...
170170
def previousGenerator(self) -> Iterable[PageElement]: ...
171171
def previousSiblingGenerator(self) -> Iterable[PageElement]: ...
172-
def parentGenerator(self) -> Iterable[PageElement]: ...
172+
def parentGenerator(self) -> Iterable[Tag]: ...
173173

174174
class NavigableString(str, PageElement):
175175
PREFIX: str
@@ -227,8 +227,8 @@ class Tag(PageElement):
227227
sourceline: int | None
228228
sourcepos: int | None
229229
known_xml: bool | None
230-
attrs: Mapping[str, Any]
231-
contents: Any
230+
attrs: Mapping[str, str]
231+
contents: List[PageElement]
232232
hidden: bool
233233
can_be_empty_element: bool | None
234234
cdata_list_attributes: list[str] | None
@@ -240,8 +240,8 @@ class Tag(PageElement):
240240
name: str | None = ...,
241241
namespace: str | None = ...,
242242
prefix: str | None = ...,
243-
attrs: Mapping[str, Any] | None = ...,
244-
parent: PageElement | None = ...,
243+
attrs: Mapping[str, str] | None = ...,
244+
parent: Tag | None = ...,
245245
previous: PageElement | None = ...,
246246
is_xml: bool | None = ...,
247247
sourceline: int | None = ...,
@@ -282,7 +282,7 @@ class Tag(PageElement):
282282
def __bool__(self) -> bool: ...
283283
def __setitem__(self, key: str, value: str | list[str]) -> None: ...
284284
def __delitem__(self, key: str) -> None: ...
285-
def __getattr__(self, tag: str) -> Tag | NavigableString | None: ...
285+
def __getattr__(self, tag: str) -> Tag | None: ...
286286
def __eq__(self, other: object) -> bool: ...
287287
def __ne__(self, other: object) -> bool: ...
288288
def __unicode__(self) -> str: ...
@@ -316,7 +316,7 @@ class Tag(PageElement):
316316
text: _Strainable | None = ...,
317317
limit: int | None = ...,
318318
**kwargs: _Strainable,
319-
) -> ResultSet: ...
319+
) -> ResultSet[PageElement]: ...
320320
__call__ = find_all
321321
findAll = find_all
322322
findChildren = find_all
@@ -325,7 +325,7 @@ class Tag(PageElement):
325325
@property
326326
def descendants(self) -> Iterable[PageElement]: ...
327327
def select_one(self, selector: str, namespaces: Any | None = ..., **kwargs) -> Tag | None: ...
328-
def select(self, selector: str, namespaces: Any | None = ..., limit: int | None = ..., **kwargs) -> ResultSet: ...
328+
def select(self, selector: str, namespaces: Any | None = ..., limit: int | None = ..., **kwargs) -> ResultSet[Tag]: ...
329329
def childGenerator(self) -> Iterable[PageElement]: ...
330330
def recursiveChildGenerator(self) -> Iterable[PageElement]: ...
331331
def has_key(self, key: str) -> bool: ...
@@ -345,6 +345,6 @@ class SoupStrainer:
345345
searchTag = search_tag
346346
def search(self, markup: PageElement | Iterable[PageElement]): ...
347347

348-
class ResultSet(List[PageElement]):
348+
class ResultSet(Generic[_PageElementT], List[_PageElementT]):
349349
source: SoupStrainer
350-
def __init__(self, source: SoupStrainer, result: Iterable[PageElement] = ...) -> None: ...
350+
def __init__(self, source: SoupStrainer, result: Iterable[_PageElementT] = ...) -> None: ...

0 commit comments

Comments
 (0)