File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -274,13 +274,28 @@ STATIC mp_obj_t jobject_unary_op(mp_uint_t op, mp_obj_t self_in) {
274274 }
275275}
276276
277+ // TODO: subscr_load_adaptor & subscr_getiter convenience functions
278+ // should be moved to common location for reuse.
279+ STATIC mp_obj_t subscr_load_adaptor (mp_obj_t self_in , mp_obj_t index_in ) {
280+ return mp_obj_subscr (self_in , index_in , MP_OBJ_SENTINEL );
281+ }
282+ MP_DEFINE_CONST_FUN_OBJ_2 (subscr_load_adaptor_obj , subscr_load_adaptor );
283+
284+ // .getiter special method which returns iterator which works in terms
285+ // of object subscription.
286+ STATIC mp_obj_t subscr_getiter (mp_obj_t self_in ) {
287+ mp_obj_t dest [2 ] = {(mp_obj_t )& subscr_load_adaptor_obj , self_in };
288+ return mp_obj_new_getitem_iter (dest );
289+ }
290+
277291STATIC const mp_obj_type_t jobject_type = {
278292 { & mp_type_type },
279293 .name = MP_QSTR_jobject ,
280294 .print = jobject_print ,
281295 .unary_op = jobject_unary_op ,
282296 .attr = jobject_attr ,
283297 .subscr = jobject_subscr ,
298+ .getiter = subscr_getiter ,
284299// .locals_dict = (mp_obj_t)&jobject_locals_dict,
285300};
286301
You can’t perform that action at this time.
0 commit comments