Skip to content

Commit 0dbd182

Browse files
authored
Closes #5206: NotImplemented stubs for ArkoudaStringArray (#5207)
# Summary Add explicit NotImplementedError stubs for a set of NumPy-style array methods on Arkouda-backed ExtensionArray classes. ## Motivation These methods currently appear via introspection or inheritance but are not supported for Arkouda-backed arrays. Making them explicit clarifies the API surface, avoids silent or confusing fallback behavior, and provides clear extension points for future implementations. ## Scope Adds method stubs that raise NotImplementedError No behavioral changes for supported operations No performance impact Closes #5206: NotImplemented stubs for ArkoudaStringArray Co-authored-by: ajpotts <[email protected]>
1 parent 1c9801b commit 0dbd182

File tree

1 file changed

+120
-0
lines changed

1 file changed

+120
-0
lines changed

arkouda/pandas/extension/_arkouda_string_array.py

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,3 +99,123 @@ def __eq__(self, other):
9999

100100
def __repr__(self):
101101
return f"ArkoudaStringArray({self._data})"
102+
103+
def _not_implemented(self, name: str):
104+
raise NotImplementedError(f"`{name}` is not implemented for Arkouda-backed arrays yet.")
105+
106+
def all(self, *args, **kwargs):
107+
self._not_implemented("all")
108+
109+
def any(self, *args, **kwargs):
110+
self._not_implemented("any")
111+
112+
def argpartition(self, *args, **kwargs):
113+
self._not_implemented("argpartition")
114+
115+
def byteswap(self, *args, **kwargs):
116+
self._not_implemented("byteswap")
117+
118+
def choose(self, *args, **kwargs):
119+
self._not_implemented("choose")
120+
121+
def clip(self, *args, **kwargs):
122+
self._not_implemented("clip")
123+
124+
def compress(self, *args, **kwargs):
125+
self._not_implemented("compress")
126+
127+
def conj(self, *args, **kwargs):
128+
self._not_implemented("conj")
129+
130+
def conjugate(self, *args, **kwargs):
131+
self._not_implemented("conjugate")
132+
133+
def cumprod(self, *args, **kwargs):
134+
self._not_implemented("cumprod")
135+
136+
def cumsum(self, *args, **kwargs):
137+
self._not_implemented("cumsum")
138+
139+
def diagonal(self, *args, **kwargs):
140+
self._not_implemented("diagonal")
141+
142+
def dot(self, *args, **kwargs):
143+
self._not_implemented("dot")
144+
145+
def dump(self, *args, **kwargs):
146+
self._not_implemented("dump")
147+
148+
def dumps(self, *args, **kwargs):
149+
self._not_implemented("dumps")
150+
151+
def fill(self, *args, **kwargs):
152+
self._not_implemented("fill")
153+
154+
def flatten(self, *args, **kwargs):
155+
self._not_implemented("flatten")
156+
157+
def getfield(self, *args, **kwargs):
158+
self._not_implemented("getfield")
159+
160+
def item(self, *args, **kwargs):
161+
self._not_implemented("item")
162+
163+
def max(self, *args, **kwargs):
164+
self._not_implemented("max")
165+
166+
def mean(self, *args, **kwargs):
167+
self._not_implemented("mean")
168+
169+
def min(self, *args, **kwargs):
170+
self._not_implemented("min")
171+
172+
def nonzero(self, *args, **kwargs):
173+
self._not_implemented("nonzero")
174+
175+
def partition(self, *args, **kwargs):
176+
self._not_implemented("partition")
177+
178+
def prod(self, *args, **kwargs):
179+
self._not_implemented("prod")
180+
181+
def put(self, *args, **kwargs):
182+
self._not_implemented("put")
183+
184+
def resize(self, *args, **kwargs):
185+
self._not_implemented("resize")
186+
187+
def round(self, *args, **kwargs):
188+
self._not_implemented("round")
189+
190+
def setfield(self, *args, **kwargs):
191+
self._not_implemented("setfield")
192+
193+
def setflags(self, *args, **kwargs):
194+
self._not_implemented("setflags")
195+
196+
def sort(self, *args, **kwargs):
197+
self._not_implemented("sort")
198+
199+
def std(self, *args, **kwargs):
200+
self._not_implemented("std")
201+
202+
def sum(self, *args, **kwargs):
203+
self._not_implemented("sum")
204+
205+
def swapaxes(self, *args, **kwargs):
206+
self._not_implemented("swapaxes")
207+
208+
def to_device(self, *args, **kwargs):
209+
self._not_implemented("to_device")
210+
211+
def tobytes(self, *args, **kwargs):
212+
self._not_implemented("tobytes")
213+
214+
def tofile(self, *args, **kwargs):
215+
self._not_implemented("tofile")
216+
217+
def trace(self, *args, **kwargs):
218+
self._not_implemented("trace")
219+
220+
def var(self, *args, **kwargs):
221+
self._not_implemented("var")

0 commit comments

Comments
 (0)