Merge pull request #8248 from RonnyPfannschmidt/mixin-mro-position

alter the PyObjMixin to carry over typing information from Node
This commit is contained in:
Ronny Pfannschmidt 2021-02-07 18:44:44 +01:00 committed by GitHub
commit 325d701f6e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 14 deletions

View File

@ -0,0 +1 @@
Internal Restructure: let python.PyObjMixing inherit from nodes.Node to carry over typing information.

View File

@ -23,7 +23,6 @@ from typing import Optional
from typing import Sequence
from typing import Set
from typing import Tuple
from typing import Type
from typing import TYPE_CHECKING
from typing import Union
@ -254,21 +253,14 @@ def pytest_pycollect_makeitem(collector: "PyCollector", name: str, obj: object):
return res
class PyobjMixin:
class PyobjMixin(nodes.Node):
"""this mix-in inherits from Node to carry over the typing information
as its intended to always mix in before a node
its position in the mro is unaffected"""
_ALLOW_MARKERS = True
# Function and attributes that the mixin needs (for type-checking only).
if TYPE_CHECKING:
name: str = ""
parent: Optional[nodes.Node] = None
own_markers: List[Mark] = []
def getparent(self, cls: Type[nodes._NodeType]) -> Optional[nodes._NodeType]:
...
def listchain(self) -> List[nodes.Node]:
...
@property
def module(self):
"""Python module object this node was collected from (can be None)."""