1+ from collections .abc import Callable
12from typing import Literal , TypeAlias , overload
23
34import numpy .typing as npt
@@ -7,13 +8,38 @@ import optype.numpy.compat as npc
78from scipy .sparse ._base import _spbase
89from scipy .sparse .linalg import LinearOperator
910
11+ _LaplacianFunction : TypeAlias = Callable [[onp .ToComplex2D ], onp .Array2D [npc .number ]]
1012_LaplacianMatrix : TypeAlias = onp .Array2D [npc .number ] | _spbase | LinearOperator
1113_LaplacianDiag : TypeAlias = onp .Array1D [npc .number ]
1214_ToCSGraph : TypeAlias = onp .ToComplex2D | _spbase
13- _Form : TypeAlias = Literal ["array" , "function" , " lo" ]
15+ _Form : TypeAlias = Literal ["array" , "lo" ]
1416
1517###
1618
19+ @overload
20+ def laplacian (
21+ csgraph : _ToCSGraph ,
22+ normed : bool = False ,
23+ return_diag : onp .ToFalse = False ,
24+ use_out_degree : bool = False ,
25+ * ,
26+ copy : bool = True ,
27+ form : Literal ["function" ],
28+ dtype : npt .DTypeLike | None = None ,
29+ symmetrized : bool = False ,
30+ ) -> _LaplacianFunction : ...
31+ @overload
32+ def laplacian (
33+ csgraph : _ToCSGraph ,
34+ normed : bool = False ,
35+ * ,
36+ return_diag : onp .ToTrue ,
37+ use_out_degree : bool = False ,
38+ copy : bool = True ,
39+ form : Literal ["function" ],
40+ dtype : npt .DTypeLike | None = None ,
41+ symmetrized : bool = False ,
42+ ) -> tuple [_LaplacianFunction , _LaplacianDiag ]: ...
1743@overload
1844def laplacian (
1945 csgraph : _ToCSGraph ,
0 commit comments