@@ -8,23 +8,24 @@ using namespace dynd;
88namespace pydynd {
99namespace nd {
1010
11- template <type_id_t ResID >
11+ template <typename ReturnType >
1212 class assign_from_pyobject_callable
13- : public dynd::nd::default_instantiable_callable<assign_from_pyobject_kernel<ResID >> {
13+ : public dynd::nd::default_instantiable_callable<assign_from_pyobject_kernel<ReturnType >> {
1414 public:
1515 assign_from_pyobject_callable ()
16- : dynd::nd::default_instantiable_callable<assign_from_pyobject_kernel<ResID>>(
17- dynd::ndt::make_type<dynd::ndt::callable_type>(ResID, {dynd::ndt::make_type<pyobject_type>()}))
16+ : dynd::nd::default_instantiable_callable<assign_from_pyobject_kernel<ReturnType>>(
17+ dynd::ndt::make_type<dynd::ndt::callable_type>(ndt::make_type<ReturnType>(),
18+ {dynd::ndt::make_type<pyobject_type>()}))
1819 {
1920 }
2021 };
2122
2223 template <>
23- class assign_from_pyobject_callable <bytes_id > : public dynd::nd::base_callable {
24+ class assign_from_pyobject_callable <bytes > : public dynd::nd::base_callable {
2425 public:
2526 assign_from_pyobject_callable ()
26- : dynd::nd::base_callable(
27- dynd:: ndt::make_type<dynd::ndt::callable_type>(bytes_id , {dynd::ndt::make_type<pyobject_type>()}))
27+ : dynd::nd::base_callable(dynd::ndt::make_type<dynd::ndt::callable_type>(
28+ ndt::make_type<bytes>() , {dynd::ndt::make_type<pyobject_type>()}))
2829 {
2930 }
3031
@@ -50,11 +51,11 @@ namespace nd {
5051 };
5152
5253 template <>
53- class assign_from_pyobject_callable <fixed_bytes_id > : public dynd::nd::base_callable {
54+ class assign_from_pyobject_callable <ndt::fixed_bytes_type > : public dynd::nd::base_callable {
5455 public:
5556 assign_from_pyobject_callable ()
56- : dynd::nd::base_callable(
57- dynd:: ndt::make_type<dynd:: ndt::callable_type>(fixed_bytes_id , {dynd::ndt::make_type<pyobject_type>()}))
57+ : dynd::nd::base_callable(dynd::ndt::make_type<dynd::ndt::callable_type>(
58+ ndt::make_type<ndt::fixed_bytes_kind_type>() , {dynd::ndt::make_type<pyobject_type>()}))
5859 {
5960 }
6061
@@ -66,19 +67,19 @@ namespace nd {
6667 {
6768 cg.emplace_back ([dst_tp](dynd::nd::kernel_builder &kb, dynd::kernel_request_t kernreq, char *DYND_UNUSED (data),
6869 const char *dst_arrmeta, size_t nsrc, const char *const *src_arrmeta) {
69- kb.emplace_back <assign_from_pyobject_kernel<fixed_bytes_id >>(kernreq, dst_tp, dst_arrmeta);
70+ kb.emplace_back <assign_from_pyobject_kernel<ndt::fixed_bytes_type >>(kernreq, dst_tp, dst_arrmeta);
7071 });
7172
7273 return dst_tp;
7374 }
7475 };
7576
7677 template <>
77- class assign_from_pyobject_callable <string_id > : public dynd::nd::base_callable {
78+ class assign_from_pyobject_callable <string > : public dynd::nd::base_callable {
7879 public:
7980 assign_from_pyobject_callable ()
80- : dynd::nd::base_callable(
81- dynd:: ndt::make_type<dynd::ndt::callable_type>(string_id , {dynd::ndt::make_type<pyobject_type>()}))
81+ : dynd::nd::base_callable(dynd::ndt::make_type<dynd::ndt::callable_type>(
82+ ndt::make_type<string>() , {dynd::ndt::make_type<pyobject_type>()}))
8283 {
8384 }
8485
@@ -90,19 +91,19 @@ namespace nd {
9091 {
9192 cg.emplace_back ([dst_tp](dynd::nd::kernel_builder &kb, dynd::kernel_request_t kernreq, char *DYND_UNUSED (data),
9293 const char *dst_arrmeta, size_t nsrc, const char *const *src_arrmeta) {
93- kb.emplace_back <assign_from_pyobject_kernel<string_id >>(kernreq, dst_tp, dst_arrmeta);
94+ kb.emplace_back <assign_from_pyobject_kernel<dynd::string >>(kernreq, dst_tp, dst_arrmeta);
9495 });
9596
9697 return dst_tp;
9798 }
9899 };
99100
100101 template <>
101- class assign_from_pyobject_callable <fixed_string_id > : public dynd::nd::base_callable {
102+ class assign_from_pyobject_callable <ndt::fixed_string_type > : public dynd::nd::base_callable {
102103 public:
103104 assign_from_pyobject_callable ()
104- : dynd::nd::base_callable(
105- dynd:: ndt::make_type<dynd:: ndt::callable_type>(fixed_string_id , {dynd::ndt::make_type<pyobject_type>()}))
105+ : dynd::nd::base_callable(dynd::ndt::make_type<dynd::ndt::callable_type>(
106+ ndt::make_type<ndt::fixed_string_kind_type>() , {dynd::ndt::make_type<pyobject_type>()}))
106107 {
107108 }
108109
@@ -115,19 +116,20 @@ namespace nd {
115116 cg.emplace_back ([dst_tp](dynd::nd::kernel_builder &kb, dynd::kernel_request_t kernreq, char *DYND_UNUSED (data),
116117 const char *dst_arrmeta, size_t DYND_UNUSED (nsrc),
117118 const char *const *DYND_UNUSED (src_arrmeta)) {
118- kb.emplace_back <assign_from_pyobject_kernel<fixed_string_id >>(kernreq, dst_tp, dst_arrmeta);
119+ kb.emplace_back <assign_from_pyobject_kernel<dynd::ndt::fixed_string_type >>(kernreq, dst_tp, dst_arrmeta);
119120 });
120121
121122 return dst_tp;
122123 }
123124 };
124125
125126 template <>
126- class assign_from_pyobject_callable <option_id > : public dynd::nd::base_callable {
127+ class assign_from_pyobject_callable <ndt::option_type > : public dynd::nd::base_callable {
127128 public:
128129 assign_from_pyobject_callable ()
129- : dynd::nd::base_callable(
130- dynd::ndt::make_type<dynd::ndt::callable_type>(option_id, {dynd::ndt::make_type<pyobject_type>()}))
130+ : dynd::nd::base_callable(dynd::ndt::make_type<dynd::ndt::callable_type>(
131+ ndt::make_type<ndt::option_type>(ndt::make_type<ndt::any_kind_type>()),
132+ {dynd::ndt::make_type<pyobject_type>()}))
131133 {
132134 }
133135
@@ -138,12 +140,12 @@ namespace nd {
138140 cg.emplace_back ([dst_tp](dynd::nd::kernel_builder &kb, dynd::kernel_request_t kernreq, char *DYND_UNUSED (data),
139141 const char *dst_arrmeta, size_t nsrc, const char *const *src_arrmeta) {
140142 intptr_t root_ckb_offset = kb.size ();
141- kb.emplace_back <assign_from_pyobject_kernel<option_id >>(kernreq, dst_tp, dst_arrmeta);
143+ kb.emplace_back <assign_from_pyobject_kernel<dynd::ndt::option_type >>(kernreq, dst_tp, dst_arrmeta);
142144 intptr_t ckb_offset = kb.size ();
143145 kb (dynd::kernel_request_single, nullptr , dst_arrmeta, nsrc, nullptr );
144146
145147 ckb_offset = kb.size ();
146- kb.get_at <assign_from_pyobject_kernel<option_id >>(root_ckb_offset)->copy_value_offset =
148+ kb.get_at <assign_from_pyobject_kernel<ndt::option_type >>(root_ckb_offset)->copy_value_offset =
147149 ckb_offset - root_ckb_offset;
148150 kb (dynd::kernel_request_single, nullptr , dst_arrmeta, nsrc, src_arrmeta);
149151
@@ -181,11 +183,11 @@ namespace nd {
181183 };
182184
183185 template <>
184- class assign_from_pyobject_callable <tuple_id > : public dynd::nd::base_callable {
186+ class assign_from_pyobject_callable <ndt::tuple_type > : public dynd::nd::base_callable {
185187 public:
186188 assign_from_pyobject_callable ()
187- : dynd::nd::base_callable(
188- dynd:: ndt::make_type<dynd:: ndt::callable_type>(tuple_id , {dynd::ndt::make_type<pyobject_type>()}))
189+ : dynd::nd::base_callable(dynd::ndt::make_type<dynd::ndt::callable_type>(
190+ ndt::make_type<ndt::tuple_type>() , {dynd::ndt::make_type<pyobject_type>()}))
189191 {
190192 }
191193
@@ -203,16 +205,17 @@ namespace nd {
203205 const char *dst_arrmeta, size_t nsrc, const char *const *src_arrmeta) {
204206 intptr_t ckb_offset = kb.size ();
205207 intptr_t root_ckb_offset = ckb_offset;
206- kb.emplace_back <assign_from_pyobject_kernel<tuple_id>>(kernreq);
207- assign_from_pyobject_kernel<tuple_id> *self = kb.get_at <assign_from_pyobject_kernel<tuple_id>>(root_ckb_offset);
208+ kb.emplace_back <assign_from_pyobject_kernel<ndt::tuple_type>>(kernreq);
209+ assign_from_pyobject_kernel<ndt::tuple_type> *self =
210+ kb.get_at <assign_from_pyobject_kernel<ndt::tuple_type>>(root_ckb_offset);
208211 ckb_offset = kb.size ();
209212 self->m_dst_tp = dst_tp;
210213 self->m_dst_arrmeta = dst_arrmeta;
211214 self->m_dim_broadcast = false ;
212215 self->m_copy_el_offsets .resize (field_count);
213216 for (intptr_t i = 0 ; i < field_count; ++i) {
214217 kb.reserve (ckb_offset);
215- self = kb.get_at <assign_from_pyobject_kernel<tuple_id >>(root_ckb_offset);
218+ self = kb.get_at <assign_from_pyobject_kernel<ndt::tuple_type >>(root_ckb_offset);
216219 self->m_copy_el_offsets [i] = ckb_offset - root_ckb_offset;
217220 const char *field_arrmeta = dst_arrmeta + arrmeta_offsets[i];
218221 kb (dynd::kernel_request_single, nullptr , field_arrmeta, nsrc, src_arrmeta);
@@ -263,11 +266,11 @@ namespace nd {
263266 };
264267
265268 template <>
266- class assign_from_pyobject_callable <struct_id > : public dynd::nd::base_callable {
269+ class assign_from_pyobject_callable <ndt::struct_type > : public dynd::nd::base_callable {
267270 public:
268271 assign_from_pyobject_callable ()
269- : dynd::nd::base_callable(
270- dynd:: ndt::make_type<dynd:: ndt::callable_type>(struct_id , {dynd::ndt::make_type<pyobject_type>()}))
272+ : dynd::nd::base_callable(dynd::ndt::make_type<dynd::ndt::callable_type>(
273+ ndt::make_type<ndt::struct_type>() , {dynd::ndt::make_type<pyobject_type>()}))
271274 {
272275 }
273276
@@ -286,10 +289,10 @@ namespace nd {
286289 intptr_t ckb_offset = kb.size ();
287290 intptr_t root_ckb_offset = ckb_offset;
288291
289- kb.emplace_back <assign_from_pyobject_kernel<struct_id >>(kernreq);
292+ kb.emplace_back <assign_from_pyobject_kernel<ndt::struct_type >>(kernreq);
290293
291- assign_from_pyobject_kernel<struct_id > *self =
292- kb.get_at <assign_from_pyobject_kernel<struct_id >>(root_ckb_offset);
294+ assign_from_pyobject_kernel<ndt::struct_type > *self =
295+ kb.get_at <assign_from_pyobject_kernel<ndt::struct_type >>(root_ckb_offset);
293296 ckb_offset = kb.size ();
294297
295298 self->m_dst_tp = dst_tp;
@@ -299,7 +302,7 @@ namespace nd {
299302
300303 for (intptr_t i = 0 ; i < field_count; ++i) {
301304 kb.reserve (ckb_offset);
302- self = kb.get_at <assign_from_pyobject_kernel<struct_id >>(root_ckb_offset);
305+ self = kb.get_at <assign_from_pyobject_kernel<ndt::struct_type >>(root_ckb_offset);
303306 self->m_copy_el_offsets [i] = ckb_offset - root_ckb_offset;
304307 const char *field_arrmeta = dst_arrmeta + arrmeta_offsets[i];
305308 kb (dynd::kernel_request_single, nullptr , field_arrmeta, nsrc, src_arrmeta);
@@ -350,11 +353,11 @@ namespace nd {
350353 };
351354
352355 template <>
353- class assign_from_pyobject_callable <fixed_dim_id > : public dynd::nd::base_callable {
356+ class assign_from_pyobject_callable <ndt::fixed_dim_type > : public dynd::nd::base_callable {
354357 public:
355358 assign_from_pyobject_callable ()
356- : dynd::nd::base_callable(
357- dynd:: ndt::make_type<dynd::ndt::callable_type>(fixed_dim_id , {dynd::ndt::make_type<pyobject_type>()}))
359+ : dynd::nd::base_callable(dynd::ndt::make_type<dynd::ndt::callable_type>(
360+ ndt::type ( " Fixed * Any " ) , {dynd::ndt::make_type<pyobject_type>()}))
358361 {
359362 }
360363
@@ -372,10 +375,10 @@ namespace nd {
372375
373376 intptr_t ckb_offset = kb.size ();
374377 intptr_t root_ckb_offset = ckb_offset;
375- kb.emplace_back <assign_from_pyobject_kernel<fixed_dim_id >>(kernreq);
378+ kb.emplace_back <assign_from_pyobject_kernel<ndt::fixed_dim_type >>(kernreq);
376379
377- assign_from_pyobject_kernel<fixed_dim_id > *self =
378- kb.get_at <assign_from_pyobject_kernel<fixed_dim_id >>(root_ckb_offset);
380+ assign_from_pyobject_kernel<ndt::fixed_dim_type > *self =
381+ kb.get_at <assign_from_pyobject_kernel<ndt::fixed_dim_type >>(root_ckb_offset);
379382 ckb_offset = kb.size ();
380383 self->m_dim_size = dim_size;
381384 self->m_stride = stride;
@@ -385,7 +388,7 @@ namespace nd {
385388 kb (dynd::kernel_request_strided, nullptr , el_arrmeta, nsrc, src_arrmeta);
386389
387390 ckb_offset = kb.size ();
388- self = kb.get_at <assign_from_pyobject_kernel<fixed_dim_id >>(root_ckb_offset);
391+ self = kb.get_at <assign_from_pyobject_kernel<ndt::fixed_dim_type >>(root_ckb_offset);
389392 self->m_copy_dst_offset = ckb_offset - root_ckb_offset;
390393 // dst to dst ckernel, for broadcasting case
391394 // dynd::nd::array error_mode = assign_error_fractional;
@@ -405,11 +408,12 @@ namespace nd {
405408 };
406409
407410 template <>
408- class assign_from_pyobject_callable <var_dim_id > : public dynd::nd::base_callable {
411+ class assign_from_pyobject_callable <ndt::var_dim_type > : public dynd::nd::base_callable {
409412 public:
410413 assign_from_pyobject_callable ()
411- : dynd::nd::base_callable(
412- dynd::ndt::make_type<dynd::ndt::callable_type>(var_dim_id, {dynd::ndt::make_type<pyobject_type>()}))
414+ : dynd::nd::base_callable(dynd::ndt::make_type<dynd::ndt::callable_type>(
415+ ndt::make_type<ndt::var_dim_type>(ndt::make_type<ndt::any_kind_type>()),
416+ {dynd::ndt::make_type<pyobject_type>()}))
413417 {
414418 }
415419
@@ -427,9 +431,9 @@ namespace nd {
427431 intptr_t ckb_offset = kb.size ();
428432
429433 intptr_t root_ckb_offset = ckb_offset;
430- kb.emplace_back <assign_from_pyobject_kernel<var_dim_id >>(kernreq);
431- assign_from_pyobject_kernel<var_dim_id > *self =
432- kb.get_at <assign_from_pyobject_kernel<var_dim_id >>(root_ckb_offset);
434+ kb.emplace_back <assign_from_pyobject_kernel<ndt::var_dim_type >>(kernreq);
435+ assign_from_pyobject_kernel<ndt::var_dim_type > *self =
436+ kb.get_at <assign_from_pyobject_kernel<ndt::var_dim_type >>(root_ckb_offset);
433437 ckb_offset = kb.size ();
434438 self->m_offset = reinterpret_cast <const dynd::ndt::var_dim_type::metadata_type *>(dst_arrmeta)->offset ;
435439 self->m_stride = reinterpret_cast <const dynd::ndt::var_dim_type::metadata_type *>(dst_arrmeta)->stride ;
@@ -438,7 +442,7 @@ namespace nd {
438442 const char *el_arrmeta = dst_arrmeta + sizeof (dynd::ndt::var_dim_type::metadata_type);
439443 kb (dynd::kernel_request_strided, nullptr , el_arrmeta, nsrc, src_arrmeta);
440444 ckb_offset = kb.size ();
441- self = kb.get_at <assign_from_pyobject_kernel<var_dim_id >>(root_ckb_offset);
445+ self = kb.get_at <assign_from_pyobject_kernel<ndt::var_dim_type >>(root_ckb_offset);
442446 self->m_copy_dst_offset = ckb_offset - root_ckb_offset;
443447 // dst to dst ckernel, for broadcasting case
444448 // dynd::nd::array error_mode = assign_error_fractional;
0 commit comments