1
- from _typeshed import Incomplete
2
1
from collections .abc import Callable , Collection , Hashable , Iterable , Iterator , Mapping , MutableMapping
3
2
from functools import cached_property
4
3
from typing import Any , ClassVar , TypeVar , overload
@@ -7,7 +6,7 @@ from typing_extensions import Self, TypeAlias
7
6
import numpy
8
7
from networkx .classes .coreviews import AdjacencyView , AtlasView
9
8
from networkx .classes .digraph import DiGraph
10
- from networkx .classes .reportviews import DegreeView , DiDegreeView , NodeView , OutEdgeView
9
+ from networkx .classes .reportviews import DegreeView , EdgeView , NodeView
11
10
12
11
_Node = TypeVar ("_Node" , bound = Hashable )
13
12
_NodeWithData : TypeAlias = tuple [_Node , dict [str , Any ]]
@@ -38,12 +37,14 @@ class Graph(Collection[_Node]):
38
37
graph_attr_dict_factory : ClassVar [_MapFactory ]
39
38
40
39
graph : dict [str , Any ]
40
+ __networkx_cache__ : dict [str , Any ]
41
41
42
42
def to_directed_class (self ) -> type [DiGraph [_Node ]]: ...
43
43
def to_undirected_class (self ) -> type [Graph [_Node ]]: ...
44
- def __init__ (self , incoming_graph_data : _Data [_Node ] | None = None , ** attr ) -> None : ...
44
+ def __init__ (self , incoming_graph_data : _Data [_Node ] | None = None , ** attr : Any ) -> None : ... # attr: key=value pairs
45
45
@cached_property
46
- def adj (self ) -> AdjacencyView [_Node , _Node , dict [str , Incomplete ]]: ...
46
+ def adj (self ) -> AdjacencyView [_Node , _Node , Mapping [str , Any ]]: ...
47
+ # This object is a read-only dict-like structure
47
48
@property
48
49
def name (self ) -> str : ...
49
50
@name .setter
@@ -53,20 +54,22 @@ class Graph(Collection[_Node]):
53
54
def __contains__ (self , n : object ) -> bool : ...
54
55
def __len__ (self ) -> int : ...
55
56
def add_node (self , node_for_adding : _Node , ** attr : Any ) -> None : ... # attr: Set or change node attributes using key=value
56
- def add_nodes_from (self , nodes_for_adding : Iterable [_NodePlus [_Node ]], ** attr ) -> None : ...
57
+ def add_nodes_from (self , nodes_for_adding : Iterable [_NodePlus [_Node ]], ** attr : Any ) -> None : ... # attr: key=value pairs
57
58
def remove_node (self , n : _Node ) -> None : ...
58
59
def remove_nodes_from (self , nodes : Iterable [_Node ]) -> None : ...
59
60
@cached_property
60
61
def nodes (self ) -> NodeView [_Node ]: ...
61
62
def number_of_nodes (self ) -> int : ...
62
63
def order (self ) -> int : ...
63
64
def has_node (self , n : _Node ) -> bool : ...
64
- # attr: Edge data (or labels or objects) can be assigned using keyword arguments
65
65
def add_edge (self , u_of_edge : _Node , v_of_edge : _Node , ** attr : Any ) -> None : ...
66
- def add_edges_from (self , ebunch_to_add : Iterable [_EdgePlus [_Node ]], ** attr ) -> None : ...
66
+ # attr: Edge data (or labels or objects) can be assigned using keyword arguments
67
+ def add_edges_from (self , ebunch_to_add : Iterable [_EdgePlus [_Node ]], ** attr : Any ) -> None : ...
68
+ # attr: Edge data (or labels or objects) can be assigned using keyword arguments
67
69
def add_weighted_edges_from (
68
- self , ebunch_to_add : Iterable [tuple [_Node , _Node , Incomplete ]], weight : str = "weight" , ** attr
70
+ self , ebunch_to_add : Iterable [tuple [_Node , _Node , float ]], weight : str = "weight" , ** attr : Any
69
71
) -> None : ...
72
+ # attr: Edge attributes to add/update for all edges.
70
73
def remove_edge (self , u : _Node , v : _Node ) -> None : ...
71
74
def remove_edges_from (self , ebunch : Iterable [_EdgePlus [_Node ]]) -> None : ...
72
75
@overload
@@ -78,11 +81,12 @@ class Graph(Collection[_Node]):
78
81
def has_edge (self , u : _Node , v : _Node ) -> bool : ...
79
82
def neighbors (self , n : _Node ) -> Iterator [_Node ]: ...
80
83
@cached_property
81
- def edges (self ) -> OutEdgeView [_Node ]: ...
82
- def get_edge_data (self , u : _Node , v : _Node , default = None ) -> Mapping [str , Incomplete ]: ...
83
- def adjacency (self ) -> Iterator [tuple [_Node , Mapping [_Node , Mapping [str , Incomplete ]]]]: ...
84
+ def edges (self ) -> EdgeView [_Node ]: ...
85
+ def get_edge_data (self , u : _Node , v : _Node , default : Any = None ) -> Mapping [str , Any ]: ...
86
+ # default: any Python object
87
+ def adjacency (self ) -> Iterator [tuple [_Node , Mapping [_Node , Mapping [str , Any ]]]]: ...
84
88
@cached_property
85
- def degree (self ) -> DegreeView [ _Node ] | DiDegreeView [_Node ]: ... # Include subtypes' possible return types
89
+ def degree (self ) -> int | DegreeView [_Node ]: ...
86
90
def clear (self ) -> None : ...
87
91
def clear_edges (self ) -> None : ...
88
92
def is_multigraph (self ) -> bool : ...
0 commit comments