@@ -3,7 +3,7 @@ from typing import Literal, TypeAlias, overload
3
3
from typing_extensions import TypeVar
4
4
5
5
import optype .numpy as onp
6
- from ._base import _spbase
6
+ from ._base import _spbase , sparray
7
7
from ._bsr import bsr_array , bsr_matrix
8
8
from ._coo import coo_array , coo_matrix
9
9
from ._csc import csc_array , csc_matrix
@@ -16,19 +16,10 @@ from ._typing import Index1D, Numeric, SPFormat
16
16
17
17
__all__ = ["find" , "tril" , "triu" ]
18
18
19
- _SCT = TypeVar ("_SCT" , bound = Numeric , default = Numeric )
20
- _ShapeT = TypeVar ("_ShapeT" , bound = tuple [int ] | tuple [int , int ], default = tuple [int ] | tuple [int , int ])
19
+ ###
21
20
21
+ _SCT = TypeVar ("_SCT" , bound = Numeric , default = Numeric )
22
22
_ToDense : TypeAlias = onp .CanArrayND [_SCT ] | Seq [_SCT ] | Seq [Seq [_SCT ] | onp .CanArrayND [_SCT ]]
23
- _SpArray : TypeAlias = (
24
- bsr_array [_SCT ]
25
- | coo_array [_SCT , _ShapeT ]
26
- | csc_array [_SCT ]
27
- | csr_array [_SCT , _ShapeT ]
28
- | dia_array [_SCT ]
29
- | dok_array [_SCT , _ShapeT ]
30
- | lil_array [_SCT ]
31
- )
32
23
33
24
###
34
25
@@ -37,31 +28,31 @@ def find(A: _spbase[_SCT] | _ToDense) -> tuple[Index1D, Index1D, onp.Array1D[_SC
37
28
38
29
# NOTE: `tril` and `triu` have identical signatures
39
30
@overload # sparray -> coo_array (default)
40
- def tril (A : _SpArray [_SCT ], k : int = 0 , format : Literal ["coo" ] | None = None ) -> coo_array [_SCT , tuple [int , int ]]: ...
31
+ def tril (A : sparray [_SCT ], k : int = 0 , format : Literal ["coo" ] | None = None ) -> coo_array [_SCT , tuple [int , int ]]: ...
41
32
@overload # sparray -> bsr_array (positional)
42
- def tril (A : _SpArray [_SCT ], k : int , format : Literal ["bsr" ]) -> bsr_array [_SCT ]: ...
33
+ def tril (A : sparray [_SCT ], k : int , format : Literal ["bsr" ]) -> bsr_array [_SCT ]: ...
43
34
@overload # sparray -> bsr_array (keyword)
44
- def tril (A : _SpArray [_SCT ], k : int = 0 , * , format : Literal ["bsr" ]) -> bsr_array [_SCT ]: ...
35
+ def tril (A : sparray [_SCT ], k : int = 0 , * , format : Literal ["bsr" ]) -> bsr_array [_SCT ]: ...
45
36
@overload # sparray -> csc_array (positional)
46
- def tril (A : _SpArray [_SCT ], k : int , format : Literal ["csc" ]) -> csc_array [_SCT ]: ...
37
+ def tril (A : sparray [_SCT ], k : int , format : Literal ["csc" ]) -> csc_array [_SCT ]: ...
47
38
@overload # sparray -> csc_array (keyword)
48
- def tril (A : _SpArray [_SCT ], k : int = 0 , * , format : Literal ["csc" ]) -> csc_array [_SCT ]: ...
39
+ def tril (A : sparray [_SCT ], k : int = 0 , * , format : Literal ["csc" ]) -> csc_array [_SCT ]: ...
49
40
@overload # sparray -> csr_array (positional)
50
- def tril (A : _SpArray [_SCT ], k : int , format : Literal ["csr" ]) -> csr_array [_SCT , tuple [int , int ]]: ...
41
+ def tril (A : sparray [_SCT ], k : int , format : Literal ["csr" ]) -> csr_array [_SCT , tuple [int , int ]]: ...
51
42
@overload # sparray -> csr_array (keyword)
52
- def tril (A : _SpArray [_SCT ], k : int = 0 , * , format : Literal ["csr" ]) -> csr_array [_SCT , tuple [int , int ]]: ...
43
+ def tril (A : sparray [_SCT ], k : int = 0 , * , format : Literal ["csr" ]) -> csr_array [_SCT , tuple [int , int ]]: ...
53
44
@overload # sparray -> dia_array (positional)
54
- def tril (A : _SpArray [_SCT ], k : int , format : Literal ["dia" ]) -> dia_array [_SCT ]: ...
45
+ def tril (A : sparray [_SCT ], k : int , format : Literal ["dia" ]) -> dia_array [_SCT ]: ...
55
46
@overload # sparray -> dia_array (keyword)
56
- def tril (A : _SpArray [_SCT ], k : int = 0 , * , format : Literal ["dia" ]) -> dia_array [_SCT ]: ...
47
+ def tril (A : sparray [_SCT ], k : int = 0 , * , format : Literal ["dia" ]) -> dia_array [_SCT ]: ...
57
48
@overload # sparray -> dok_array (positional)
58
- def tril (A : _SpArray [_SCT ], k : int , format : Literal ["dok" ]) -> dok_array [_SCT , tuple [int , int ]]: ...
49
+ def tril (A : sparray [_SCT ], k : int , format : Literal ["dok" ]) -> dok_array [_SCT , tuple [int , int ]]: ...
59
50
@overload # sparray -> dok_array (keyword)
60
- def tril (A : _SpArray [_SCT ], k : int = 0 , * , format : Literal ["dok" ]) -> dok_array [_SCT , tuple [int , int ]]: ...
51
+ def tril (A : sparray [_SCT ], k : int = 0 , * , format : Literal ["dok" ]) -> dok_array [_SCT , tuple [int , int ]]: ...
61
52
@overload # sparray -> lil_array (positional)
62
- def tril (A : _SpArray [_SCT ], k : int , format : Literal ["lil" ]) -> lil_array [_SCT ]: ...
53
+ def tril (A : sparray [_SCT ], k : int , format : Literal ["lil" ]) -> lil_array [_SCT ]: ...
63
54
@overload # sparray -> lil_array (keyword)
64
- def tril (A : _SpArray [_SCT ], k : int = 0 , * , format : Literal ["lil" ]) -> lil_array [_SCT ]: ...
55
+ def tril (A : sparray [_SCT ], k : int = 0 , * , format : Literal ["lil" ]) -> lil_array [_SCT ]: ...
65
56
@overload # spmatrix | array-like -> coo_matrix (default)
66
57
def tril (A : spmatrix [_SCT ] | _ToDense [_SCT ], k : int = 0 , format : Literal ["coo" ] | None = None ) -> coo_matrix [_SCT ]: ...
67
58
@overload # spmatrix | array-like -> bsr_matrix (positional)
@@ -93,31 +84,31 @@ def tril(A: _spbase | onp.ToComplexND, k: int = 0, *, format: SPFormat | None =
93
84
94
85
#
95
86
@overload # sparray -> coo_array (default)
96
- def triu (A : _SpArray [_SCT ], k : int = 0 , format : Literal ["coo" ] | None = None ) -> coo_array [_SCT , tuple [int , int ]]: ...
87
+ def triu (A : sparray [_SCT ], k : int = 0 , format : Literal ["coo" ] | None = None ) -> coo_array [_SCT , tuple [int , int ]]: ...
97
88
@overload # sparray -> bsr_array (positional)
98
- def triu (A : _SpArray [_SCT ], k : int , format : Literal ["bsr" ]) -> bsr_array [_SCT ]: ...
89
+ def triu (A : sparray [_SCT ], k : int , format : Literal ["bsr" ]) -> bsr_array [_SCT ]: ...
99
90
@overload # sparray -> bsr_array (keyword)
100
- def triu (A : _SpArray [_SCT ], k : int = 0 , * , format : Literal ["bsr" ]) -> bsr_array [_SCT ]: ...
91
+ def triu (A : sparray [_SCT ], k : int = 0 , * , format : Literal ["bsr" ]) -> bsr_array [_SCT ]: ...
101
92
@overload # sparray -> csc_array (positional)
102
- def triu (A : _SpArray [_SCT ], k : int , format : Literal ["csc" ]) -> csc_array [_SCT ]: ...
93
+ def triu (A : sparray [_SCT ], k : int , format : Literal ["csc" ]) -> csc_array [_SCT ]: ...
103
94
@overload # sparray -> csc_array (keyword)
104
- def triu (A : _SpArray [_SCT ], k : int = 0 , * , format : Literal ["csc" ]) -> csc_array [_SCT ]: ...
95
+ def triu (A : sparray [_SCT ], k : int = 0 , * , format : Literal ["csc" ]) -> csc_array [_SCT ]: ...
105
96
@overload # sparray -> csr_array (positional)
106
- def triu (A : _SpArray [_SCT ], k : int , format : Literal ["csr" ]) -> csr_array [_SCT , tuple [int , int ]]: ...
97
+ def triu (A : sparray [_SCT ], k : int , format : Literal ["csr" ]) -> csr_array [_SCT , tuple [int , int ]]: ...
107
98
@overload # sparray -> csr_array (keyword)
108
- def triu (A : _SpArray [_SCT ], k : int = 0 , * , format : Literal ["csr" ]) -> csr_array [_SCT , tuple [int , int ]]: ...
99
+ def triu (A : sparray [_SCT ], k : int = 0 , * , format : Literal ["csr" ]) -> csr_array [_SCT , tuple [int , int ]]: ...
109
100
@overload # sparray -> dia_array (positional)
110
- def triu (A : _SpArray [_SCT ], k : int , format : Literal ["dia" ]) -> dia_array [_SCT ]: ...
101
+ def triu (A : sparray [_SCT ], k : int , format : Literal ["dia" ]) -> dia_array [_SCT ]: ...
111
102
@overload # sparray -> dia_array (keyword)
112
- def triu (A : _SpArray [_SCT ], k : int = 0 , * , format : Literal ["dia" ]) -> dia_array [_SCT ]: ...
103
+ def triu (A : sparray [_SCT ], k : int = 0 , * , format : Literal ["dia" ]) -> dia_array [_SCT ]: ...
113
104
@overload # sparray -> dok_array (positional)
114
- def triu (A : _SpArray [_SCT ], k : int , format : Literal ["dok" ]) -> dok_array [_SCT , tuple [int , int ]]: ...
105
+ def triu (A : sparray [_SCT ], k : int , format : Literal ["dok" ]) -> dok_array [_SCT , tuple [int , int ]]: ...
115
106
@overload # sparray -> dok_array (keyword)
116
- def triu (A : _SpArray [_SCT ], k : int = 0 , * , format : Literal ["dok" ]) -> dok_array [_SCT , tuple [int , int ]]: ...
107
+ def triu (A : sparray [_SCT ], k : int = 0 , * , format : Literal ["dok" ]) -> dok_array [_SCT , tuple [int , int ]]: ...
117
108
@overload # sparray -> lil_array (positional)
118
- def triu (A : _SpArray [_SCT ], k : int , format : Literal ["lil" ]) -> lil_array [_SCT ]: ...
109
+ def triu (A : sparray [_SCT ], k : int , format : Literal ["lil" ]) -> lil_array [_SCT ]: ...
119
110
@overload # sparray -> lil_array (keyword)
120
- def triu (A : _SpArray [_SCT ], k : int = 0 , * , format : Literal ["lil" ]) -> lil_array [_SCT ]: ...
111
+ def triu (A : sparray [_SCT ], k : int = 0 , * , format : Literal ["lil" ]) -> lil_array [_SCT ]: ...
121
112
@overload # spmatrix | array-like -> coo_matrix (default)
122
113
def triu (A : spmatrix [_SCT ] | _ToDense [_SCT ], k : int = 0 , format : Literal ["coo" ] | None = None ) -> coo_matrix [_SCT ]: ...
123
114
@overload # spmatrix | array-like -> bsr_matrix (positional)
0 commit comments