+ k_what = getattr(self[k], what)
+ if isinstance(v, list):
+ v_what = []
+ for x in v:
+ try:
+ v_what.append(getattr(self[k][x], what))
+ except KeyError:
+ if self[k].strict:
+ raise ValueError("value '%s' not found for key '%s'" % (x, k))
+ v_what.append(x)
+ else:
+ try:
+ v_what = getattr(self[k][v], what)
+ except KeyError:
+ if self[k].strict:
+ raise ValueError("value '%s' not found for key '%s'" % (v, k))