1717 from typing import Literal
1818
1919 if TYPE_CHECKING :
20- from numpy . typing import ArrayLike
20+ from pandas . api . typing . aliases import AnyArrayLike
2121 else : # sphinx-autodoc-typehints will execute the outer block, but end up here:
22- ArrayLike = type ("ArrayLike" , (), dict (__module__ = "numpy.typing" ))
22+ AnyArrayLike = type (
23+ "AnyArrayLike" , (), dict (__module__ = "pandas.api.typing.aliases" )
24+ )
2325
2426 from .._compat import SpBase
2527
@@ -104,25 +106,25 @@ def confusion_matrix(
104106
105107@overload
106108def modularity (
107- connectivities : ArrayLike | SpBase , / , labels : ArrayLike , * , is_directed : bool
109+ connectivities : AnyArrayLike | SpBase , / , labels : AnyArrayLike , * , is_directed : bool
108110) -> float : ...
109111
110112
111113@overload
112114def modularity (
113115 adata : AnnData ,
114116 / ,
115- labels : str | ArrayLike = "leiden" ,
117+ labels : str | AnyArrayLike = "leiden" ,
116118 * ,
117119 neighbors_key : str | None = None ,
118120 mode : Literal ["calculate" , "update" , "retrieve" ] = "calculate" ,
119121) -> float : ...
120122
121123
122124def modularity (
123- adata_or_connectivities : AnnData | ArrayLike | SpBase ,
125+ adata_or_connectivities : AnnData | AnyArrayLike | SpBase ,
124126 / ,
125- labels : str | ArrayLike = "leiden" ,
127+ labels : str | AnyArrayLike = "leiden" ,
126128 * ,
127129 neighbors_key : str | None = None ,
128130 is_directed : bool | None = None ,
@@ -176,7 +178,7 @@ def modularity_adata(
176178 adata : AnnData ,
177179 / ,
178180 * ,
179- labels : str | ArrayLike ,
181+ labels : str | AnyArrayLike ,
180182 neighbors_key : str | None ,
181183 mode : Literal ["calculate" , "update" , "retrieve" ],
182184) -> float :
@@ -197,7 +199,7 @@ def modularity_adata(
197199
198200
199201def modularity_array (
200- connectivities : ArrayLike | SpBase , / , * , labels : ArrayLike , is_directed : bool
202+ connectivities : AnyArrayLike | SpBase , / , * , labels : AnyArrayLike , is_directed : bool
201203) -> float :
202204 try :
203205 import igraph as ig
@@ -209,10 +211,10 @@ def modularity_array(
209211 return graph .modularity (_codes (labels ))
210212
211213
212- def _codes (labels : ArrayLike ) -> ArrayLike :
214+ def _codes (labels : AnyArrayLike ) -> AnyArrayLike :
213215 """Convert cluster labels to integer codes as required by igraph."""
214216 if isinstance (labels , pd .Series ):
215217 labels = labels .astype ("category" , copy = False ).array
216218 if not isinstance (labels , pd .Categorical ):
217- labels = pd .Categorical (np . asarray ( labels ) )
219+ labels = pd .Categorical (labels )
218220 return labels .codes
0 commit comments