'Add a new coordinate transformation to the graph.
Parameters
fromsys : class
The coordinate frame class to start from.
tosys : class
The coordinate frame class to transform into.
transform : CoordinateTransform or similar callable
The transformation object. Typically a `CoordinateTransform` object,
although it may be some other callable that is called with the same
signature.
Raises
TypeError
If ``fromsys`` or ``tosys`` are not classes or ``transform`` is
not callable.'

def add_transform(self, fromsys, tosys, transform):

    if (not inspect.isclass(fromsys)):
        raise TypeError(u'fromsys    must    be    a    class')
    if (not inspect.isclass(tosys)):
        raise TypeError(u'tosys    must    be    a    class')
    if (not six.callable(transform)):
        raise TypeError(u'transform    must    be    callable')
    self._graph[fromsys][tosys] = transform
    self.invalidate_cache()
