22 src/lxml-stubs/cssselect.pyi | 10 ++---
33 src/lxml-stubs/etree/_element.pyi | 74 +++++++++++++++++-----------------
44 src/lxml-stubs/etree/_factory_func.pyi | 7 ++--
5- src/lxml-stubs/html/_element.pyi | 24 +++++------
6- src/lxml-stubs/objectify/_element.pyi | 6 +--
5+ src/lxml-stubs/html/_element.pyi | 36 ++++++ +++++------
6+ src/lxml-stubs/objectify/_element.pyi | 9 ++ +--
77 tests/runtime/_testutils/common.py | 2 +-
8- 7 files changed, 62 insertions(+), 63 deletions(-)
8+ 7 files changed, 77 insertions(+), 63 deletions(-)
99
1010diff --git a/pyproject.toml b/pyproject.toml
11- index bb3ff5c..7309657 100644
11+ index c638ef7..0f5bfa3 100644
1212--- a/pyproject.toml
1313+++ b/pyproject.toml
1414@@ -5,7 +5,7 @@ requires = ['pdm-backend ~= 2.4']
@@ -55,7 +55,7 @@ index a37ec88..6ee9a2c 100644
5555- ) -> list[_ET]: ...
5656+ ) -> list[_Element]: ...
5757diff --git a/src/lxml-stubs/etree/_element.pyi b/src/lxml-stubs/etree/_element.pyi
58- index f9e4b37..2e1f903 100644
58+ index 98dba20..7357598 100644
5959--- a/src/lxml-stubs/etree/_element.pyi
6060+++ b/src/lxml-stubs/etree/_element.pyi
6161@@ -27,9 +27,9 @@ else:
@@ -389,65 +389,83 @@ index 60f92a4..b670190 100644
389389- ) -> _ET: ...
390390+ ) -> _Element: ...
391391diff --git a/src/lxml-stubs/html/_element.pyi b/src/lxml-stubs/html/_element.pyi
392- index 77c1b61..6d37ab9 100644
392+ index 77c1b61..9284edd 100644
393393--- a/src/lxml-stubs/html/_element.pyi
394394+++ b/src/lxml-stubs/html/_element.pyi
395- @@ -133,7 +133,7 @@ class HtmlElement(etree.ElementBase):
395+ @@ -133,7 +133,8 @@ class HtmlElement(etree.ElementBase):
396396 # Subclassing of _Element should not go beyond HtmlElement. For example,
397397 # while children of HtmlElement are mostly HtmlElement, FormElement never
398398 # contains FormElement as child.
399399- @overload
400400+ @overload # type: ignore[override]
401+ + # pyrefly: ignore[bad-override]
401402 def __getitem__(
402403 self,
403404 __x: int,
404- @@ -143,7 +143,7 @@ class HtmlElement(etree.ElementBase):
405+ @@ -143,7 +144,8 @@ class HtmlElement(etree.ElementBase):
405406 self,
406407 __x: slice,
407408 ) -> list[HtmlElement]: ...
408409- @overload
409410+ @overload # type: ignore[override]
411+ + # pyrefly: ignore[bad-override]
410412 def __setitem__(
411413 self,
412414 __x: int,
413- @@ -159,7 +159,7 @@ class HtmlElement(etree.ElementBase):
415+ @@ -157,12 +159,14 @@ class HtmlElement(etree.ElementBase):
416+ ) -> None: ...
417+ def __iter__(self) -> Iterator[HtmlElement]: ...
414418 def __reversed__(self) -> Iterator[HtmlElement]: ...
419+ + # pyrefly: ignore[bad-override]
415420 def append( # pyright: ignore[reportIncompatibleMethodOverride] # ty: ignore[invalid-method-override]
416421 self,
417422- element: HtmlElement,
418423+ element: HtmlElement, # type: ignore[override]
419424 ) -> None: ...
420425 @overload
421426 @deprecated("Expects iterable of elements as value, not single element")
422- @@ -175,30 +175,30 @@ class HtmlElement(etree.ElementBase):
427+ + # pyrefly: ignore[bad-override]
428+ def extend(
429+ self,
430+ elements: etree._Element,
431+ @@ -172,33 +176,39 @@ class HtmlElement(etree.ElementBase):
432+ self,
433+ elements: Iterable[HtmlElement],
434+ ) -> None: ...
435+ + # pyrefly: ignore[bad-override]
423436 def insert( # pyright: ignore[reportIncompatibleMethodOverride] # ty: ignore[invalid-method-override]
424437 self,
425438 index: int,
426439- element: HtmlElement,
427440+ element: HtmlElement, # type: ignore[override]
428441 ) -> None: ...
442+ + # pyrefly: ignore[bad-override]
429443 def remove( # pyright: ignore[reportIncompatibleMethodOverride] # ty: ignore[invalid-method-override]
430444 self,
431445- element: HtmlElement,
432446+ element: HtmlElement, # type: ignore[override]
433447 ) -> None: ...
448+ + # pyrefly: ignore[bad-override]
434449 def index( # pyright: ignore[reportIncompatibleMethodOverride] # ty: ignore[invalid-method-override]
435450 self,
436451- child: HtmlElement,
437452+ child: HtmlElement, # type: ignore[override]
438453 start: int | None = None,
439454 stop: int | None = None,
440455 ) -> int: ...
456+ + # pyrefly: ignore[bad-override]
441457 def addnext( # pyright: ignore[reportIncompatibleMethodOverride] # ty: ignore[invalid-method-override]
442458 self,
443459- element: HtmlElement,
444460+ element: HtmlElement, # type: ignore[override]
445461 ) -> None: ...
462+ + # pyrefly: ignore[bad-override]
446463 def addprevious( # pyright: ignore[reportIncompatibleMethodOverride] # ty: ignore[invalid-method-override]
447464 self,
448465- element: HtmlElement,
449466+ element: HtmlElement, # type: ignore[override]
450467 ) -> None: ...
468+ + # pyrefly: ignore[bad-override]
451469 def replace( # pyright: ignore[reportIncompatibleMethodOverride] # ty: ignore[invalid-method-override]
452470 self,
453471- old_element: HtmlElement,
@@ -457,51 +475,62 @@ index 77c1b61..6d37ab9 100644
457475 ) -> None: ...
458476 def getparent(self) -> HtmlElement | None: ...
459477 def getnext(self) -> HtmlElement | None: ...
460- @@ -279,7 +279,7 @@ class HtmlElement(etree.ElementBase):
478+ @@ -273,13 +283,15 @@ class HtmlElement(etree.ElementBase):
479+ *,
480+ with_tail: bool = True,
481+ ) -> Iterator[str]: ...
482+ + # pyrefly: ignore[bad-override]
483+ makeelement: type[HtmlElement] # pyright: ignore[reportIncompatibleVariableOverride]
484+ def find(
485+ self,
461486 path: _ElemPathArg,
462487 namespaces: _StrOnlyNSMap | None = None,
463488 ) -> HtmlElement | None: ...
464489- def findall( # pyright: ignore[reportIncompatibleMethodOverride] # ty: ignore[invalid-method-override]
490+ + # pyrefly: ignore[bad-override]
465491+ def findall( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] # ty: ignore[invalid-method-override]
466492 self,
467493 path: _ElemPathArg,
468494 namespaces: _StrOnlyNSMap | None = None,
469- @@ -289,7 +289 ,7 @@ class HtmlElement(etree.ElementBase):
495+ @@ -289,7 +301 ,7 @@ class HtmlElement(etree.ElementBase):
470496 path: _ElemPathArg,
471497 namespaces: _StrOnlyNSMap | None = None,
472498 ) -> Iterator[HtmlElement]: ...
473499- def cssselect( # pyright: ignore[reportIncompatibleMethodOverride] # ty: ignore[invalid-method-override]
474- + def cssselect( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] # ty: ignore[invalid-method-override]
500+ + def cssselect( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] # ty: ignore[invalid-method-override] # pyrefly: ignore[bad-override]
475501 self,
476502 expr: str,
477503 *,
478504diff --git a/src/lxml-stubs/objectify/_element.pyi b/src/lxml-stubs/objectify/_element.pyi
479- index 0a18dc8..c8c6c26 100644
505+ index 58a59fa..c6f04ee 100644
480506--- a/src/lxml-stubs/objectify/_element.pyi
481507+++ b/src/lxml-stubs/objectify/_element.pyi
482- @@ -59 ,7 +59,7 @@ class ObjectifiedElement(ElementBase):
508+ @@ -60 ,7 +60,8 @@ class ObjectifiedElement(ElementBase):
483509 def addattr(self, tag: _TagName, value: object) -> None: ...
484510 def countchildren(self) -> int: ...
485511 def descendantpaths(self, prefix: str | list[str] | None = None) -> list[str]: ...
486512- def getchildren( # pyright: ignore[reportIncompatibleMethodOverride] # ty: ignore[invalid-method-override]
513+ + # pyrefly: ignore[bad-override]
487514+ def getchildren( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] # ty: ignore[invalid-method-override]
488515 self,
489516 ) -> list[ObjectifiedElement]: ...
490517 def __iter__(self) -> Iterator[ObjectifiedElement]: ...
491- @@ -70 ,7 +70,7 @@ class ObjectifiedElement(ElementBase):
518+ @@ -71 ,7 +72,8 @@ class ObjectifiedElement(ElementBase):
492519 def __delattr__(self, __name: str) -> None: ...
493520 # elem['foo'] is equivalent to elem.foo, but allows for
494521 # special attribute names (like 'text' or 'tail')
495522- @overload
496523+ @overload # type: ignore[override]
524+ + # pyrefly: ignore[bad-override]
497525 def __getitem__(self, key: int | str | bytes, /) -> ObjectifiedElement: ...
498526 @overload
499527 def __getitem__( # pyright: ignore[reportIncompatibleMethodOverride] # ty: ignore[invalid-method-override]
500- @@ -86 ,7 +86,7 @@ class ObjectifiedElement(ElementBase):
528+ @@ -87 ,7 +89,8 @@ class ObjectifiedElement(ElementBase):
501529 # TODO Check if _Element methods need overriding
502530 # CSS selector is not a normal use case for objectified
503531 # element (and unnecessary), but still usable nonetheless
504532- def cssselect( # pyright: ignore[reportIncompatibleMethodOverride] # ty: ignore[invalid-method-override]
533+ + # pyrefly: ignore[bad-override]
505534+ def cssselect( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] # ty: ignore[invalid-method-override]
506535 self,
507536 expr: str,
0 commit comments