34
34
"ge" : pyarrow .compute .greater_equal ,
35
35
}
36
36
37
+
37
38
@pd .api .extensions .register_extension_dtype
38
39
class JSONDtype (pd .api .extensions .ExtensionDtype ):
39
40
"""Extension dtype for BigQuery JSON data."""
@@ -255,28 +256,24 @@ def _reduce(
255
256
raise TypeError ("JSONArray does not support min/max reducntion." )
256
257
super ()._reduce (name , skipna = skipna , keepdims = keepdims , ** kwargs )
257
258
258
- def __array__ (
259
- self , dtype = None , copy = None
260
- ) -> np .ndarray :
259
+ def __array__ (self , dtype = None , copy = None ) -> np .ndarray :
261
260
"""Correctly construct numpy arrays when passed to `np.asarray()`."""
262
261
return self .to_numpy (dtype = dtype )
263
262
264
- def to_numpy (self , dtype = None , copy = False , na_value = pd .NA ) -> np .ndarray :
263
+ def to_numpy (self , dtype = None , copy = False , na_value = pd .NA ) -> np .ndarray :
265
264
dtype , na_value = self ._to_numpy_dtype_inference (dtype , na_value , self ._hasna )
266
265
pa_type = self ._pa_array .type
267
266
if not self ._hasna or pd .isna (na_value ) or pa .types .is_null (pa_type ):
268
267
data = self
269
268
else :
270
269
data = self .fillna (na_value )
271
270
result = np .array (list (data ), dtype = dtype )
272
-
271
+
273
272
if data ._hasna :
274
273
result [data .isna ()] = na_value
275
274
return result
276
275
277
- def _to_numpy_dtype_inference (
278
- self , dtype , na_value , hasna
279
- ):
276
+ def _to_numpy_dtype_inference (self , dtype , na_value , hasna ):
280
277
if dtype is not None :
281
278
dtype = np .dtype (dtype )
282
279
@@ -290,4 +287,4 @@ def _to_numpy_dtype_inference(
290
287
na_value = np .timedelta64 ("nat" )
291
288
else :
292
289
na_value = self .dtype .na_value
293
- return dtype , na_value
290
+ return dtype , na_value
0 commit comments