From 40d71803e10b31598ea696e0f961230ca468ad2c Mon Sep 17 00:00:00 2001 From: Ali Hamdan Date: Fri, 1 Aug 2025 22:23:49 +0200 Subject: [PATCH] networkx: improve the multigraph module --- .../networkx/networkx/classes/multigraph.pyi | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/stubs/networkx/networkx/classes/multigraph.pyi b/stubs/networkx/networkx/classes/multigraph.pyi index a35727bdf7e0..414881f07926 100644 --- a/stubs/networkx/networkx/classes/multigraph.pyi +++ b/stubs/networkx/networkx/classes/multigraph.pyi @@ -1,7 +1,6 @@ -from _typeshed import Incomplete -from collections.abc import Mapping +from collections.abc import Hashable from functools import cached_property -from typing import ClassVar +from typing import Any, ClassVar from typing_extensions import TypeAlias from networkx.classes.coreviews import MultiAdjacencyView @@ -15,16 +14,18 @@ __all__ = ["MultiGraph"] class MultiGraph(Graph[_Node]): edge_key_dict_factory: ClassVar[_MapFactory] - def __init__(self, incoming_graph_data=None, multigraph_input: bool | None = None, **attr) -> None: ... + def __init__(self, incoming_graph_data=None, multigraph_input: bool | None = None, **attr: object) -> None: ... @cached_property - def adj(self) -> MultiAdjacencyView[_Node, _Node, dict[str, Incomplete]]: ... + def adj(self) -> MultiAdjacencyView[_Node, _Node, dict[str, Any]]: ... # data can be any type def new_edge_key(self, u: _Node, v: _Node) -> int: ... - def add_edge(self, u_for_edge, v_for_edge, key=None, **attr): ... # type: ignore[override] # Has an additional `key` keyword argument - def remove_edge(self, u, v, key=None): ... - def has_edge(self, u: _Node, v: _Node, key=None) -> bool: ... + def add_edge( # type: ignore[override] # Has an additional `key` keyword argument + self, u_for_edge: _Node, v_for_edge: _Node, key: Hashable | None = None, **attr: object + ): ... + def remove_edge(self, u: _Node, v: _Node, key: Hashable | None = None) -> None: ... + def has_edge(self, u: _Node, v: _Node, key: Hashable | None = None) -> bool: ... def get_edge_data( # type: ignore[override] # Has an additional `key` keyword argument - self, u, v, key=None, default=None - ) -> Mapping[str, Incomplete]: ... + self, u: _Node, v: _Node, key: Hashable | None = None, default: object | None = None + ) -> dict[str, Any]: ... # data can be any type def copy(self, as_view: bool = False) -> MultiGraph[_Node]: ... def to_directed(self, as_view: bool = False) -> MultiDiGraph[_Node]: ... def to_undirected(self, as_view: bool = False) -> MultiGraph[_Node]: ...