'Implements the SymPy diff routine, for vectors.
diff\'s documentation'

def diff(self, *args, **kwargs):

    for x in args:
        if isinstance(x, BasisDependent):
            raise TypeError('Invalid    arg    for    differentiation')
    diff_components = [(df(v, *args, **kwargs) * k) for (k, v) in self.components.items()]
    return self._add_func(*diff_components)
