mirror of
https://github.com/davidhalter/typeshed.git
synced 2026-05-04 20:45:49 +08:00
networkx: improve the shortest_paths.weighted module (#14508)
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
from _typeshed import Incomplete, SupportsGetItem
|
||||
from collections.abc import Callable, Generator
|
||||
from collections.abc import Callable, Collection, Generator
|
||||
from typing import Any
|
||||
from typing_extensions import TypeAlias
|
||||
|
||||
from networkx.classes.graph import Graph, _Node
|
||||
from networkx.utils.backends import _dispatchable
|
||||
@@ -33,156 +33,114 @@ __all__ = [
|
||||
"johnson",
|
||||
]
|
||||
|
||||
_WeightFunc: TypeAlias = Callable[
|
||||
[_Node, _Node, dict[str, Any]], # Any: type of edge data cannot be known statically
|
||||
float | None, # the weight or None to indicate a hidden edge
|
||||
]
|
||||
|
||||
@_dispatchable
|
||||
def dijkstra_path(
|
||||
G: Graph[_Node],
|
||||
source: _Node,
|
||||
target: _Node,
|
||||
weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight",
|
||||
) -> dict[Incomplete, list[Incomplete]] | list[Incomplete]: ...
|
||||
G: Graph[_Node], source: _Node, target: _Node, weight: str | _WeightFunc[_Node] | None = "weight"
|
||||
) -> list[_Node]: ...
|
||||
@_dispatchable
|
||||
def dijkstra_path_length(
|
||||
G: Graph[_Node],
|
||||
source: _Node,
|
||||
target: _Node,
|
||||
weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight",
|
||||
): ...
|
||||
G: Graph[_Node], source: _Node, target: _Node, weight: str | _WeightFunc[_Node] | None = "weight"
|
||||
) -> float: ...
|
||||
@_dispatchable
|
||||
def single_source_dijkstra_path(
|
||||
G: Graph[_Node],
|
||||
source: _Node,
|
||||
cutoff: float | None = None,
|
||||
weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight",
|
||||
) -> dict[Incomplete, list[Incomplete]] | list[Incomplete]: ...
|
||||
G: Graph[_Node], source: _Node, cutoff: float | None = None, weight: str | _WeightFunc[_Node] | None = "weight"
|
||||
) -> dict[_Node, list[_Node]]: ...
|
||||
@_dispatchable
|
||||
def single_source_dijkstra_path_length(
|
||||
G: Graph[_Node],
|
||||
source: _Node,
|
||||
cutoff: float | None = None,
|
||||
weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight",
|
||||
) -> dict[Incomplete, Incomplete]: ...
|
||||
G: Graph[_Node], source: _Node, cutoff: float | None = None, weight: str | _WeightFunc[_Node] | None = "weight"
|
||||
) -> dict[_Node, float]: ...
|
||||
@_dispatchable
|
||||
def single_source_dijkstra(
|
||||
G: Graph[_Node],
|
||||
source: _Node,
|
||||
target: _Node | None = None,
|
||||
cutoff: float | None = None,
|
||||
weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight",
|
||||
) -> tuple[Incomplete, Incomplete]: ...
|
||||
weight: str | _WeightFunc[_Node] | None = "weight",
|
||||
) -> tuple[dict[_Node, float], dict[_Node, list[_Node]]] | tuple[float, list[_Node]]: ... # TODO: overload on target
|
||||
@_dispatchable
|
||||
def multi_source_dijkstra_path(
|
||||
G: Graph[_Node],
|
||||
sources,
|
||||
cutoff: float | None = None,
|
||||
weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight",
|
||||
) -> dict[Incomplete, list[Incomplete]] | list[Incomplete]: ...
|
||||
G: Graph[_Node], sources: Collection[_Node], cutoff: float | None = None, weight: str | _WeightFunc[_Node] | None = "weight"
|
||||
) -> dict[_Node, list[_Node]]: ...
|
||||
@_dispatchable
|
||||
def multi_source_dijkstra_path_length(
|
||||
G: Graph[_Node],
|
||||
sources,
|
||||
cutoff: float | None = None,
|
||||
weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight",
|
||||
) -> dict[Incomplete, Incomplete]: ...
|
||||
G: Graph[_Node], sources: Collection[_Node], cutoff: float | None = None, weight: str | _WeightFunc[_Node] | None = "weight"
|
||||
) -> dict[_Node, float]: ...
|
||||
@_dispatchable
|
||||
def multi_source_dijkstra(
|
||||
G: Graph[_Node],
|
||||
sources,
|
||||
sources: Collection[_Node],
|
||||
target: _Node | None = None,
|
||||
cutoff: float | None = None,
|
||||
weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight",
|
||||
) -> tuple[Incomplete, Incomplete]: ...
|
||||
weight: str | _WeightFunc[_Node] | None = "weight",
|
||||
) -> tuple[dict[_Node, float], dict[_Node, list[_Node]]] | tuple[float, list[_Node]]: ... # TODO: overload on target
|
||||
@_dispatchable
|
||||
def dijkstra_predecessor_and_distance(
|
||||
G: Graph[_Node],
|
||||
source: _Node,
|
||||
cutoff: float | None = None,
|
||||
weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight",
|
||||
) -> tuple[dict[Incomplete, list[Incomplete]], dict[Incomplete, Incomplete]]: ...
|
||||
G: Graph[_Node], source: _Node, cutoff: float | None = None, weight: str | _WeightFunc[_Node] | None = "weight"
|
||||
) -> tuple[dict[_Node, list[_Node]], dict[_Node, float]]: ...
|
||||
@_dispatchable
|
||||
def all_pairs_dijkstra(
|
||||
G: Graph[_Node],
|
||||
cutoff: float | None = None,
|
||||
weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight",
|
||||
) -> Generator[Incomplete, None, None]: ...
|
||||
G: Graph[_Node], cutoff: float | None = None, weight: str | _WeightFunc[_Node] | None = "weight"
|
||||
) -> Generator[tuple[_Node, tuple[dict[_Node, float], dict[_Node, list[_Node]]]]]: ...
|
||||
@_dispatchable
|
||||
def all_pairs_dijkstra_path_length(
|
||||
G: Graph[_Node],
|
||||
cutoff: float | None = None,
|
||||
weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight",
|
||||
) -> Generator[Incomplete, None, None]: ...
|
||||
G: Graph[_Node], cutoff: float | None = None, weight: str | _WeightFunc[_Node] | None = "weight"
|
||||
) -> Generator[tuple[_Node, dict[_Node, float]]]: ...
|
||||
@_dispatchable
|
||||
def all_pairs_dijkstra_path(
|
||||
G: Graph[_Node],
|
||||
cutoff: float | None = None,
|
||||
weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight",
|
||||
) -> Generator[tuple[Incomplete, Incomplete], None, None]: ...
|
||||
G: Graph[_Node], cutoff: float | None = None, weight: str | _WeightFunc[_Node] | None = "weight"
|
||||
) -> Generator[tuple[_Node, dict[_Node, list[_Node]]]]: ...
|
||||
@_dispatchable
|
||||
def bellman_ford_predecessor_and_distance(
|
||||
G: Graph[_Node],
|
||||
source: _Node,
|
||||
target: _Node | None = None,
|
||||
weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight",
|
||||
weight: str | _WeightFunc[_Node] | None = "weight",
|
||||
heuristic: bool = False,
|
||||
) -> tuple[Incomplete, Incomplete]: ...
|
||||
) -> tuple[dict[_Node, list[_Node]], dict[_Node, float]]: ...
|
||||
@_dispatchable
|
||||
def bellman_ford_path(
|
||||
G: Graph[_Node],
|
||||
source: _Node,
|
||||
target: _Node,
|
||||
weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight",
|
||||
) -> list[Incomplete] | dict[Incomplete, list[Incomplete]]: ...
|
||||
G: Graph[_Node], source: _Node, target: _Node, weight: str | _WeightFunc[_Node] | None = "weight"
|
||||
) -> list[_Node]: ...
|
||||
@_dispatchable
|
||||
def bellman_ford_path_length(
|
||||
G: Graph[_Node],
|
||||
source: _Node,
|
||||
target: _Node,
|
||||
weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight",
|
||||
): ...
|
||||
G: Graph[_Node], source: _Node, target: _Node, weight: str | _WeightFunc[_Node] | None = "weight"
|
||||
) -> float: ...
|
||||
@_dispatchable
|
||||
def single_source_bellman_ford_path(
|
||||
G: Graph[_Node], source: _Node, weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight"
|
||||
) -> list[Incomplete] | dict[Incomplete, list[Incomplete]]: ...
|
||||
G: Graph[_Node], source: _Node, weight: str | _WeightFunc[_Node] | None = "weight"
|
||||
) -> dict[_Node, list[_Node]]: ...
|
||||
@_dispatchable
|
||||
def single_source_bellman_ford_path_length(
|
||||
G: Graph[_Node], source: _Node, weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight"
|
||||
) -> dict[Incomplete, int]: ...
|
||||
G: Graph[_Node], source: _Node, weight: str | _WeightFunc[_Node] | None = "weight"
|
||||
) -> dict[_Node, float]: ...
|
||||
@_dispatchable
|
||||
def single_source_bellman_ford(
|
||||
G: Graph[_Node],
|
||||
source: _Node,
|
||||
target: _Node | None = None,
|
||||
weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight",
|
||||
): ...
|
||||
G: Graph[_Node], source: _Node, target: _Node | None = None, weight: str | _WeightFunc[_Node] | None = "weight"
|
||||
) -> tuple[dict[_Node, float], dict[_Node, list[_Node]]] | tuple[float, list[_Node]]: ... # TODO: overload on target
|
||||
@_dispatchable
|
||||
def all_pairs_bellman_ford_path_length(
|
||||
G: Graph[_Node], weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight"
|
||||
) -> Generator[Incomplete, None, None]: ...
|
||||
G: Graph[_Node], weight: str | _WeightFunc[_Node] | None = "weight"
|
||||
) -> Generator[tuple[_Node, dict[_Node, float]]]: ...
|
||||
@_dispatchable
|
||||
def all_pairs_bellman_ford_path(
|
||||
G: Graph[_Node], weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight"
|
||||
) -> Generator[tuple[Incomplete, Incomplete], None, None]: ...
|
||||
G: Graph[_Node], weight: str | _WeightFunc[_Node] | None = "weight"
|
||||
) -> Generator[tuple[_Node, dict[_Node, list[_Node]]]]: ...
|
||||
@_dispatchable
|
||||
def goldberg_radzik(
|
||||
G: Graph[_Node], source: _Node, weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight"
|
||||
) -> tuple[dict[Incomplete, None], dict[Incomplete, int | float]]: ...
|
||||
G: Graph[_Node], source: _Node, weight: str | _WeightFunc[_Node] | None = "weight"
|
||||
) -> tuple[dict[_Node, _Node | None], dict[_Node, float]]: ...
|
||||
@_dispatchable
|
||||
def negative_edge_cycle(
|
||||
G: Graph[_Node],
|
||||
weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight",
|
||||
heuristic: bool = True,
|
||||
): ...
|
||||
def negative_edge_cycle(G: Graph[_Node], weight: str | _WeightFunc[_Node] | None = "weight", heuristic: bool = True) -> bool: ...
|
||||
@_dispatchable
|
||||
def find_negative_cycle(
|
||||
G: Graph[_Node], source: _Node, weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight"
|
||||
): ...
|
||||
def find_negative_cycle(G: Graph[_Node], source: _Node, weight: str | _WeightFunc[_Node] | None = "weight") -> list[_Node]: ...
|
||||
@_dispatchable
|
||||
def bidirectional_dijkstra(
|
||||
G: Graph[_Node],
|
||||
source: _Node,
|
||||
target: _Node,
|
||||
weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight",
|
||||
): ...
|
||||
G: Graph[_Node], source: _Node, target: _Node, weight: str | _WeightFunc[_Node] | None = "weight"
|
||||
) -> tuple[float, list[_Node]]: ...
|
||||
@_dispatchable
|
||||
def johnson(
|
||||
G: Graph[_Node], weight: str | Callable[[Any, Any, SupportsGetItem[str, Any]], float | None] | None = "weight"
|
||||
) -> dict[Any, dict[Any, list[Any]]]: ...
|
||||
def johnson(G: Graph[_Node], weight: str | _WeightFunc[_Node] | None = "weight") -> dict[_Node, dict[_Node, list[_Node]]]: ...
|
||||
|
||||
Reference in New Issue
Block a user