'Makes a deep copy of input iterable to_copy according to self.spec'

def make_dict_copy(self, to_copy):

    rval = {}
    for (key, value) in to_copy.items():
        if (key in self.spec):
            rval[key] = self.spec[key].param.make_copy(value, target_context=self, source_context=to_copy)
    return rval
