'Create a new TransformDict with the given *transform* function.
*init_dict* and *kwargs* are optional initializers, as in the
dict constructor.'

def __init__(self, transform, init_dict=None, **kwargs):

    if (not callable(transform)):
        msg = 'expected    a    callable,    got    %r'
        raise TypeError((msg % transform.__class__))
    self._transform = transform
    self._original = {}
    self._data = {}
    if init_dict:
        self.update(init_dict)
    if kwargs:
        self.update(kwargs)
