11from _typeshed import Incomplete , SupportsItems , SupportsKeysAndGetItem , Unused
22from collections .abc import Callable , Collection , Generator , Hashable , Iterable , Iterator
3- from typing import Literal , TypeVar , overload
3+ from typing import Any , Literal , TypeVar , overload
44
55from networkx import _dispatchable
66from networkx .algorithms .planarity import PlanarEmbedding
@@ -53,34 +53,34 @@ __all__ = [
5353
5454_U = TypeVar ("_U" )
5555
56- def nodes (G : Graph [_Node ]): ...
57- def edges (G : Graph [_Node ], nbunch = None ): ...
58- def degree (G : Graph [_Node ], nbunch = None , weight = None ): ...
59- def neighbors (G : Graph [_Node ], n ): ...
60- def number_of_nodes (G : Graph [_Node ]): ...
61- def number_of_edges (G : Graph [_Node ]): ...
62- def density (G : Graph [_Node ]): ...
63- def degree_histogram (G : Graph [_Node ]) -> list [int ]: ...
64-
56+ def nodes (G : Graph [_Node , _NodeData , _EdgeData ]): ...
57+ def edges (G : Graph [_Node , _NodeData , _EdgeData ], nbunch = None ): ...
58+ def degree (G : Graph [_Node , _NodeData , _EdgeData ], nbunch = None , weight = None ): ...
59+ def neighbors (G : Graph [_Node , _NodeData , _EdgeData ], n ): ...
60+ def number_of_nodes (G : Graph [_Node , _NodeData , _EdgeData ]): ...
61+ def number_of_edges (G : Graph [_Node , _NodeData , _EdgeData ]): ...
62+ def density (G : Graph [_Node , _NodeData , _EdgeData ]): ...
63+ def degree_histogram (G : Graph [_Node , _NodeData , _EdgeData ]) -> list [int ]: ...
6564@overload
6665def is_directed (G : PlanarEmbedding [Hashable ]) -> Literal [False ]: ... # type: ignore[misc] # Incompatible return types
6766@overload
6867def is_directed (G : DiGraph [Hashable ]) -> Literal [True ]: ... # type: ignore[misc] # Incompatible return types
6968@overload
7069def is_directed (G : Graph [Hashable ]) -> Literal [False ]: ...
71-
72- def freeze (G : Graph [_Node ]): ...
70+ def freeze (G : Graph [_Node , _NodeData , _EdgeData ]): ...
7371def is_frozen (G : Graph [Incomplete ]) -> bool : ...
7472def add_star (G_to_add_to : Graph [Incomplete ], nodes_for_star : Iterable [Incomplete ], ** attr ) -> None : ...
7573def add_path (G_to_add_to : Graph [Incomplete ], nodes_for_path : Iterable [Incomplete ], ** attr ) -> None : ...
7674def add_cycle (G_to_add_to : Graph [Incomplete ], nodes_for_cycle : Iterable [Incomplete ], ** attr ) -> None : ...
77- def subgraph (G : Graph [_Node ], nbunch : Iterable [Incomplete ]): ...
75+ def subgraph (G : Graph [_Node , _NodeData , _EdgeData ], nbunch : Iterable [Incomplete ]): ...
7876def induced_subgraph (G : Graph [_Node , _NodeData , _EdgeData ], nbunch : _NBunch [_Node ]) -> Graph [_Node , _NodeData , _EdgeData ]: ...
79- def edge_subgraph (G : Graph [_Node ], edges : Iterable [Incomplete ]) -> Graph [Incomplete ]: ...
80- def restricted_view (G : Graph [_Node ], nodes : Iterable [Incomplete ], edges : Iterable [Incomplete ]) -> Graph [Incomplete ]: ...
77+ def edge_subgraph (G : Graph [_Node , _NodeData , _EdgeData ], edges : Iterable [Incomplete ]) -> Graph [_Node , _NodeData , _EdgeData ]: ...
78+ def restricted_view (
79+ G : Graph [_Node , _NodeData , _EdgeData ], nodes : Iterable [Incomplete ], edges : Iterable [Incomplete ]
80+ ) -> Graph [_Node , _NodeData , _EdgeData ]: ...
8181def to_directed (graph ): ...
8282def to_undirected (graph ): ...
83- def create_empty_copy (G : Graph [_Node ], with_data : bool = True ): ...
83+ def create_empty_copy (G : Graph [_Node , _NodeData , _EdgeData ], with_data : bool = True ): ...
8484
8585# incomplete: Can "Any scalar value" be enforced?
8686@overload
@@ -94,22 +94,20 @@ def set_node_attributes(
9494) -> None : ...
9595@overload
9696def set_node_attributes (
97- G : Graph [_Node ],
97+ G : Graph [_Node , _NodeData , _EdgeData ],
9898 values : SupportsItems [_Node , SupportsKeysAndGetItem [Incomplete , Incomplete ] | Iterable [tuple [Incomplete , Incomplete ]]],
9999 name : None = None ,
100100 * ,
101101 backend = None ,
102102 ** backend_kwargs ,
103103) -> None : ...
104-
105104@_dispatchable
106- def get_node_attributes (G : Graph [_Node ], name : str , default = None ) -> dict [_Node , Incomplete ]: ...
105+ def get_node_attributes (G : Graph [_Node , _NodeData , _EdgeData ], name : str , default = None ) -> dict [_Node , Incomplete ]: ...
107106@_dispatchable
108- def remove_node_attributes (G : Graph [_Node ], * attr_names , nbunch = None ) -> None : ...
109-
107+ def remove_node_attributes (G : Graph [_Node , _NodeData , _EdgeData ], * attr_names , nbunch = None ) -> None : ...
110108@overload
111109def set_edge_attributes (
112- G : Graph [_Node ],
110+ G : Graph [_Node , _NodeData , _EdgeData ],
113111 values : SupportsItems [tuple [_Node , _Node ], Incomplete ],
114112 name : str ,
115113 * ,
@@ -118,7 +116,7 @@ def set_edge_attributes(
118116) -> None : ...
119117@overload
120118def set_edge_attributes (
121- G : MultiGraph [_Node ],
119+ G : MultiGraph [_Node , _NodeData , _EdgeData ],
122120 values : dict [tuple [_Node , _Node , Incomplete ], Incomplete ],
123121 name : str ,
124122 * ,
@@ -129,54 +127,60 @@ def set_edge_attributes(
129127def set_edge_attributes (
130128 G : Graph [Hashable ], values , name : None = None , * , backend : str | None = None , ** backend_kwargs
131129) -> None : ...
132-
133130@_dispatchable
134- def get_edge_attributes (G : Graph [_Node ], name : str , default = None ) -> dict [tuple [_Node , _Node ], Incomplete ]: ...
131+ def get_edge_attributes (
132+ G : Graph [_Node , _NodeData , _EdgeData ], name : str , default = None
133+ ) -> dict [tuple [_Node , _Node ], Incomplete ]: ...
135134@_dispatchable
136- def remove_edge_attributes (G : Graph [_Node ], * attr_names , ebunch = None ) -> None : ...
137- def all_neighbors (graph : Graph [_Node ], node : _Node ) -> Iterator [_Node ]: ...
138- def non_neighbors (graph : Graph [_Node ], node : _Node ) -> Generator [_Node ]: ...
139- def non_edges (graph : Graph [_Node ]) -> Generator [tuple [_Node , _Node ]]: ...
140- def common_neighbors (G : Graph [_Node ], u : _Node , v : _Node ) -> Generator [_Node ]: ...
135+ def remove_edge_attributes (G : Graph [_Node , _NodeData , _EdgeData ], * attr_names , ebunch = None ) -> None : ...
136+ def all_neighbors (graph : Graph [_Node , _NodeData , _EdgeData ], node : _Node ) -> Iterator [_Node ]: ...
137+ def non_neighbors (graph : Graph [_Node , _NodeData , _EdgeData ], node : _Node ) -> Generator [_Node ]: ...
138+ def non_edges (graph : Graph [_Node , _NodeData , _EdgeData ]) -> Generator [tuple [_Node , _Node ]]: ...
139+ def common_neighbors (G : Graph [_Node , _NodeData , _EdgeData ], u : _Node , v : _Node ) -> Generator [_Node ]: ...
141140@_dispatchable
142- def is_weighted (G : Graph [_Node ], edge : tuple [_Node , _Node ] | None = None , weight : str = "weight" ) -> bool : ...
141+ def is_weighted (
142+ G : Graph [_Node , _NodeData , _EdgeData ], edge : tuple [_Node , _Node ] | None = None , weight : str = "weight"
143+ ) -> bool : ...
143144@_dispatchable
144- def is_negatively_weighted (G : Graph [_Node ], edge : tuple [_Node , _Node ] | None = None , weight : str = "weight" ) -> bool : ...
145+ def is_negatively_weighted (
146+ G : Graph [_Node , _NodeData , _EdgeData ], edge : tuple [_Node , _Node ] | None = None , weight : str = "weight"
147+ ) -> bool : ...
145148@_dispatchable
146149def is_empty (G : Graph [Hashable ]) -> bool : ...
147- def nodes_with_selfloops (G : Graph [_Node ]) -> Generator [_Node ]: ...
148-
150+ def nodes_with_selfloops (G : Graph [_Node , _NodeData , _EdgeData ]) -> Generator [_Node ]: ...
149151@overload
150152def selfloop_edges (
151- G : Graph [_Node ], data : Literal [False ] = False , keys : Literal [False ] = False , default = None
153+ G : Graph [_Node , _NodeData , _EdgeData ], data : Literal [False ] = False , keys : Literal [False ] = False , default = None
152154) -> Generator [tuple [_Node , _Node ]]: ...
153155@overload
154156def selfloop_edges (
155157 G : Graph [_Node , _NodeData , _EdgeData ], data : Literal [True ], keys : Literal [False ] = False , default = None
156158) -> Generator [tuple [_Node , _Node , _EdgeData ]]: ...
157159@overload
158160def selfloop_edges (
159- G : Graph [_Node ], data : str , keys : Literal [False ] = False , default : _U | None = None
161+ G : Graph [_Node , Any , Any ], data : str , keys : Literal [False ] = False , default : _U | None = None
160162) -> Generator [tuple [_Node , _Node , _U ]]: ...
161163@overload
162164def selfloop_edges (
163- G : Graph [_Node ], data : Literal [False ], keys : Literal [True ], default = None
165+ G : Graph [_Node , _NodeData , _EdgeData ], data : Literal [False ], keys : Literal [True ], default = None
164166) -> Generator [tuple [_Node , _Node , int ]]: ...
165167@overload
166168def selfloop_edges (
167- G : Graph [_Node ], data : Literal [False ] = False , * , keys : Literal [True ], default = None
169+ G : Graph [_Node , _NodeData , _EdgeData ], data : Literal [False ] = False , * , keys : Literal [True ], default = None
168170) -> Generator [tuple [_Node , _Node , int ]]: ...
169171@overload
170172def selfloop_edges (
171173 G : Graph [_Node , _NodeData , _EdgeData ], data : Literal [True ], keys : Literal [True ], default = None
172174) -> Generator [tuple [_Node , _Node , int , _EdgeData ]]: ...
173175@overload
174176def selfloop_edges (
175- G : Graph [_Node ], data : str , keys : Literal [True ], default : _U | None = None
177+ G : Graph [_Node , Any , Any ], data : str , keys : Literal [True ], default : _U | None = None
176178) -> Generator [tuple [_Node , _Node , int , _U ]]: ...
177-
178179@_dispatchable
179180def number_of_selfloops (G : Graph [Hashable ]) -> int : ...
180- def is_path (G : Graph [_Node ], path : Iterable [Incomplete ]) -> bool : ...
181- def path_weight (G : Graph [_Node ], path : Collection [Incomplete ], weight : str ) -> int : ...
182- def describe (G : Graph [_Node ], describe_hook : Callable [[Graph [_Node ]], dict [str , Incomplete ]] | None = None ) -> None : ...
181+ def is_path (G : Graph [_Node , _NodeData , _EdgeData ], path : Iterable [Incomplete ]) -> bool : ...
182+ def path_weight (G : Graph [_Node , _NodeData , _EdgeData ], path : Collection [Incomplete ], weight : str ) -> int : ...
183+ def describe (
184+ G : Graph [_Node , _NodeData , _EdgeData ],
185+ describe_hook : Callable [[Graph [_Node , _NodeData , _EdgeData ]], dict [str , Incomplete ]] | None = None ,
186+ ) -> None : ...
0 commit comments