@@ -151,190 +151,6 @@ void load_soma_array(py::module& m) {
151151 return domainish_to_list (arrow_table.first .get (), arrow_table.second .get ());
152152 })
153153
154- .def (
155- " non_empty_domain_slot" ,
156- [](SOMAArray& array, std::string name, py::dtype dtype) {
157- switch (np_to_tdb_dtype (dtype)) {
158- case TILEDB_UINT64:
159- return py::cast (array.non_empty_domain_slot <uint64_t >(name));
160- case TILEDB_DATETIME_YEAR:
161- case TILEDB_DATETIME_MONTH:
162- case TILEDB_DATETIME_WEEK:
163- case TILEDB_DATETIME_DAY:
164- case TILEDB_DATETIME_HR:
165- case TILEDB_DATETIME_MIN:
166- case TILEDB_DATETIME_SEC:
167- case TILEDB_DATETIME_MS:
168- case TILEDB_DATETIME_US:
169- case TILEDB_DATETIME_NS:
170- case TILEDB_DATETIME_PS:
171- case TILEDB_DATETIME_FS:
172- case TILEDB_DATETIME_AS:
173- case TILEDB_INT64:
174- return py::cast (array.non_empty_domain_slot <int64_t >(name));
175- case TILEDB_UINT32:
176- return py::cast (array.non_empty_domain_slot <uint32_t >(name));
177- case TILEDB_INT32:
178- return py::cast (array.non_empty_domain_slot <int32_t >(name));
179- case TILEDB_UINT16:
180- return py::cast (array.non_empty_domain_slot <uint16_t >(name));
181- case TILEDB_INT16:
182- return py::cast (array.non_empty_domain_slot <int16_t >(name));
183- case TILEDB_UINT8:
184- return py::cast (array.non_empty_domain_slot <uint8_t >(name));
185- case TILEDB_INT8:
186- return py::cast (array.non_empty_domain_slot <int8_t >(name));
187- case TILEDB_FLOAT64:
188- return py::cast (array.non_empty_domain_slot <double >(name));
189- case TILEDB_FLOAT32:
190- return py::cast (array.non_empty_domain_slot <float >(name));
191- case TILEDB_STRING_UTF8:
192- case TILEDB_STRING_ASCII:
193- return py::cast (array.non_empty_domain_slot <std::string>(name));
194- default :
195- throw TileDBSOMAError (" Unsupported dtype for nonempty domain." );
196- }
197- })
198-
199- .def (
200- " non_empty_domain_slot_opt" ,
201- [](SOMAArray& array, std::string name, py::dtype dtype) {
202- switch (np_to_tdb_dtype (dtype)) {
203- case TILEDB_UINT64:
204- return py::cast (array.non_empty_domain_slot_opt <uint64_t >(name));
205- case TILEDB_DATETIME_YEAR:
206- case TILEDB_DATETIME_MONTH:
207- case TILEDB_DATETIME_WEEK:
208- case TILEDB_DATETIME_DAY:
209- case TILEDB_DATETIME_HR:
210- case TILEDB_DATETIME_MIN:
211- case TILEDB_DATETIME_SEC:
212- case TILEDB_DATETIME_MS:
213- case TILEDB_DATETIME_US:
214- case TILEDB_DATETIME_NS:
215- case TILEDB_DATETIME_PS:
216- case TILEDB_DATETIME_FS:
217- case TILEDB_DATETIME_AS:
218- case TILEDB_INT64:
219- return py::cast (array.non_empty_domain_slot_opt <int64_t >(name));
220- case TILEDB_UINT32:
221- return py::cast (array.non_empty_domain_slot_opt <uint32_t >(name));
222- case TILEDB_INT32:
223- return py::cast (array.non_empty_domain_slot_opt <int32_t >(name));
224- case TILEDB_UINT16:
225- return py::cast (array.non_empty_domain_slot_opt <uint16_t >(name));
226- case TILEDB_INT16:
227- return py::cast (array.non_empty_domain_slot_opt <int16_t >(name));
228- case TILEDB_UINT8:
229- return py::cast (array.non_empty_domain_slot_opt <uint8_t >(name));
230- case TILEDB_INT8:
231- return py::cast (array.non_empty_domain_slot_opt <int8_t >(name));
232- case TILEDB_FLOAT64:
233- return py::cast (array.non_empty_domain_slot_opt <double >(name));
234- case TILEDB_FLOAT32:
235- return py::cast (array.non_empty_domain_slot_opt <float >(name));
236- case TILEDB_STRING_UTF8:
237- case TILEDB_STRING_ASCII:
238- return py::cast (array.non_empty_domain_slot_opt <std::string>(name));
239- default :
240- throw TileDBSOMAError (" Unsupported dtype for nonempty domain." );
241- }
242- })
243-
244- .def (
245- " soma_domain_slot" ,
246- [](SOMAArray& array, std::string name, py::dtype dtype) {
247- switch (np_to_tdb_dtype (dtype)) {
248- case TILEDB_UINT64:
249- return py::cast (array.soma_domain_slot <uint64_t >(name));
250- case TILEDB_DATETIME_YEAR:
251- case TILEDB_DATETIME_MONTH:
252- case TILEDB_DATETIME_WEEK:
253- case TILEDB_DATETIME_DAY:
254- case TILEDB_DATETIME_HR:
255- case TILEDB_DATETIME_MIN:
256- case TILEDB_DATETIME_SEC:
257- case TILEDB_DATETIME_MS:
258- case TILEDB_DATETIME_US:
259- case TILEDB_DATETIME_NS:
260- case TILEDB_DATETIME_PS:
261- case TILEDB_DATETIME_FS:
262- case TILEDB_DATETIME_AS:
263- case TILEDB_INT64:
264- return py::cast (array.soma_domain_slot <int64_t >(name));
265- case TILEDB_UINT32:
266- return py::cast (array.soma_domain_slot <uint32_t >(name));
267- case TILEDB_INT32:
268- return py::cast (array.soma_domain_slot <int32_t >(name));
269- case TILEDB_UINT16:
270- return py::cast (array.soma_domain_slot <uint16_t >(name));
271- case TILEDB_INT16:
272- return py::cast (array.soma_domain_slot <int16_t >(name));
273- case TILEDB_UINT8:
274- return py::cast (array.soma_domain_slot <uint8_t >(name));
275- case TILEDB_INT8:
276- return py::cast (array.soma_domain_slot <int8_t >(name));
277- case TILEDB_FLOAT64:
278- return py::cast (array.soma_domain_slot <double >(name));
279- case TILEDB_FLOAT32:
280- return py::cast (array.soma_domain_slot <float >(name));
281- case TILEDB_STRING_UTF8:
282- case TILEDB_STRING_ASCII: {
283- std::pair<std::string, std::string> str_domain;
284- return py::cast (std::make_pair (" " , " " ));
285- }
286- default :
287- throw TileDBSOMAError (" Unsupported dtype for Dimension's domain" );
288- }
289- })
290-
291- .def (
292- " soma_maxdomain_slot" ,
293- [](SOMAArray& array, std::string name, py::dtype dtype) {
294- switch (np_to_tdb_dtype (dtype)) {
295- case TILEDB_UINT64:
296- return py::cast (array.soma_maxdomain_slot <uint64_t >(name));
297- case TILEDB_DATETIME_YEAR:
298- case TILEDB_DATETIME_MONTH:
299- case TILEDB_DATETIME_WEEK:
300- case TILEDB_DATETIME_DAY:
301- case TILEDB_DATETIME_HR:
302- case TILEDB_DATETIME_MIN:
303- case TILEDB_DATETIME_SEC:
304- case TILEDB_DATETIME_MS:
305- case TILEDB_DATETIME_US:
306- case TILEDB_DATETIME_NS:
307- case TILEDB_DATETIME_PS:
308- case TILEDB_DATETIME_FS:
309- case TILEDB_DATETIME_AS:
310- case TILEDB_INT64:
311- return py::cast (array.soma_maxdomain_slot <int64_t >(name));
312- case TILEDB_UINT32:
313- return py::cast (array.soma_maxdomain_slot <uint32_t >(name));
314- case TILEDB_INT32:
315- return py::cast (array.soma_maxdomain_slot <int32_t >(name));
316- case TILEDB_UINT16:
317- return py::cast (array.soma_maxdomain_slot <uint16_t >(name));
318- case TILEDB_INT16:
319- return py::cast (array.soma_maxdomain_slot <int16_t >(name));
320- case TILEDB_UINT8:
321- return py::cast (array.soma_maxdomain_slot <uint8_t >(name));
322- case TILEDB_INT8:
323- return py::cast (array.soma_maxdomain_slot <int8_t >(name));
324- case TILEDB_FLOAT64:
325- return py::cast (array.soma_maxdomain_slot <double >(name));
326- case TILEDB_FLOAT32:
327- return py::cast (array.soma_maxdomain_slot <float >(name));
328- case TILEDB_STRING_UTF8:
329- case TILEDB_STRING_ASCII: {
330- std::pair<std::string, std::string> str_domain;
331- return py::cast (std::make_pair (" " , " " ));
332- }
333- default :
334- throw TileDBSOMAError (" Unsupported dtype for Dimension's domain" );
335- }
336- })
337-
338154 .def_property_readonly (" dimension_names" , &SOMAArray::dimension_names)
339155
340156 .def (
0 commit comments