'Create a new representation with the same positions as this
representation, but with these new differentials.
Differential keys that already exist in this object\'s differential dict
are overwritten.
Parameters
differentials : Sequence of `~astropy.coordinates.BaseDifferential`
The differentials for the new representation to have.
Returns
newrepr
A copy of this representation, but with the ``differentials`` as
its differentials.'

def with_differentials(self, differentials):

    if (not differentials):
        return self
    args = [getattr(self, component) for component in self.components]
    new_rep = self.__class__(differentials=self.differentials.copy(), copy=False, *args)
    new_rep._differentials.update(new_rep._validate_differentials(differentials))
    return new_rep
