'Wrap the internal values in the Longitude object. Using the
:meth:`~astropy.coordinates.Angle.wrap_at` method causes
recursion.'

def _wrap_internal(self):

    a360 = u.degree.to(self.unit, 360.0)
    wrap_angle = self.wrap_angle.to_value(self.unit)
    wrap_angle_floor = (wrap_angle - a360)
    self_angle = self.value
    if (np.any((self_angle < wrap_angle_floor)) or np.any((self_angle >= wrap_angle))):
        wrapped = (np.mod((self_angle - wrap_angle), a360) + wrap_angle_floor)
        value = u.Quantity(wrapped, self.unit)
        super(Longitude, self).__setitem__((), value)
