def tpy_dict_merge(TP) -> tp_obj:
	##print(DRED, "tpy_dict_merge...")
	tp_obj self = TP_OBJ()
	##print(self)
	tp_obj v = TP_OBJ()
	##print(v)
	for (int i=0; i<v.dict.val->len; i++):
		##int n = tpd_dict_next(tp, v.dict.val)
		if v.dict.val->items[i].used < 1:
			continue
		int n = i
		tp_dict_set(
		  tp,
		  self,
		  v.dict.val->items[n].key,
		  v.dict.val->items[n].val);
	return tp_None

def tpy_dict_keys(TP) -> tp_obj:
	tp_obj self = TP_OBJ()
	tp_obj r = tp_list(tp)
	for (int i=0; i<self.dict.val->alloc; i++):
		if self.dict.val->items[i].used < 1:
			continue
		r.append(self.dict.val->items[i].key)
	return r

def tpy_dict_values(TP) -> tp_obj:
	tp_obj self = TP_OBJ()
	tp_obj r = tp_list(tp)
	for (int i=0; i<self.dict.val->alloc; i++):
		if self.dict.val->items[i].used < 1:
			continue
		r.append(self.dict.val->items[i].val)
	return r


