@@ -44,8 +44,11 @@ class NodeView(Mapping[_Node, dict[str, Any]], AbstractSet[_Node]):
4444 @overload
4545 def __call__ (self , data : Literal [False ] = False , default = None ) -> Self : ...
4646 @overload
47- def __call__ (self , data : Literal [True ] | str , default = None ) -> Self : ...
48- def data (self , data : bool | str = True , default = None ) -> Self : ...
47+ def __call__ (self , data : Literal [True ] | str , default = None ) -> NodeDataView [_Node ]: ...
48+ @overload
49+ def data (self , data : Literal [False ], default = None ) -> Self : ...
50+ @overload
51+ def data (self , data : Literal [True ] | str = True , default = None ) -> NodeDataView [_Node ]: ...
4952
5053class NodeDataView (AbstractSet [_Node ]):
5154 __slots__ = ("_nodes" , "_data" , "_default" )
@@ -57,12 +60,12 @@ class NodeDataView(AbstractSet[_Node]):
5760
5861class DiDegreeView (Generic [_Node ]):
5962 def __init__ (self , G : Graph [_Node ], nbunch : _NBunch [_Node ] = None , weight : None | bool | str = None ) -> None : ...
63+ @overload # Use this overload first in case _Node=str, since `str` matches `Iterable[str]`
64+ def __call__ (self , nbunch : _Node , weight : None | bool | str = None ) -> int : ... # type: ignore[overload-overlap]
6065 @overload
61- def __call__ (self , nbunch : None = None , weight : None | bool | str = None ) -> int : ... # type: ignore[overload-overlap]
62- @overload
63- def __call__ (self , nbunch : None | Iterable [_Node ], weight : None | bool | str = None ) -> Self : ...
64- def __getitem__ (self , n : _Node ) -> float : ...
65- def __iter__ (self ) -> Iterator [tuple [_Node , float ]]: ...
66+ def __call__ (self , nbunch : Iterable [_Node ] | None = None , weight : None | bool | str = None ) -> Self : ...
67+ def __getitem__ (self , n : _Node ) -> int : ...
68+ def __iter__ (self ) -> Iterator [tuple [_Node , int ]]: ...
6669 def __len__ (self ) -> int : ...
6770
6871class DegreeView (DiDegreeView [_Node ]): ...
0 commit comments