@@ -190,9 +190,6 @@ class DataShape(NamedTuple):
190
190
)
191
191
192
192
193
- @pytest .mark .xfail (
194
- reason = "Support for nested array creation is not available in nanoarrow/python"
195
- )
196
193
@pytest .mark .parametrize (
197
194
"mode, data_tp, mask" ,
198
195
(
@@ -218,13 +215,13 @@ def test_fromarray(mode: str, data_tp: DataShape, mask: list[int] | None) -> Non
218
215
219
216
ct_pixels = TEST_IMAGE_SIZE [0 ] * TEST_IMAGE_SIZE [1 ]
220
217
if dtype == fl_uint8_4_type :
221
- # Apparently there's no good way to create this array from python using nanoarrow
222
- # https://github.com/apache/arrow-nanoarrow/issues/620
223
- # the following lines will fail.
224
- tmp_arr = nanoarrow .c_array (
218
+ tmp_arr = nanoarrow .Array (
225
219
elt * (ct_pixels * elts_per_pixel ), schema = nanoarrow .uint8 ()
226
220
)
227
- arr = nanoarrow .Array (tmp_arr , schema = dtype )
221
+ c_array = nanoarrow .c_array_from_buffers (
222
+ dtype , ct_pixels , buffers = [], children = [tmp_arr ]
223
+ )
224
+ arr = nanoarrow .Array (c_array )
228
225
else :
229
226
arr = nanoarrow .Array (
230
227
nanoarrow .c_array ([elt ] * (ct_pixels * elts_per_pixel ), schema = dtype )
@@ -290,6 +287,7 @@ def test_image_nested_metadata(mode: str, metadata: list[str]) -> None:
290
287
assert "bands" in parsed_metadata
291
288
assert parsed_metadata ["bands" ] == metadata
292
289
290
+
293
291
@pytest .mark .parametrize (
294
292
"mode, metadata" ,
295
293
(
@@ -306,9 +304,7 @@ def test_image_flat_metadata(mode: str, metadata: list[str]) -> None:
306
304
assert arr .schema .metadata
307
305
assert arr .schema .metadata [b"image" ]
308
306
309
- parsed_metadata = json .loads (
310
- arr .schema .metadata [b"image" ].decode ("utf8" )
311
- )
307
+ parsed_metadata = json .loads (arr .schema .metadata [b"image" ].decode ("utf8" ))
312
308
313
309
assert "bands" in parsed_metadata
314
310
assert parsed_metadata ["bands" ] == metadata
0 commit comments