code: def radec(self, epoch=None):
          r
          position_au = self.position.au
          if epoch is not None:
              if isinstance(epoch, Time):
                  pass
              elif isinstance(epoch, float):
                  epoch = Time(None, tt=epoch)
              elif epoch == 'date':
                  epoch = self.t
              else:
                  raise ValueError('the epoch= must be a Time object,'
                                   ' a floating point Terrestrial Time (TT),'
                                   ' or the string "date" for epoch-of-date')
              position_au = einsum('ij...,j...->i...', epoch.M, position_au)
          r_au, dec, ra = to_polar(position_au)
          return (Angle(radians=ra, preference='hours'),
                  Angle(radians=dec, signed=True),
                  Distance(r_au))
docs: r"""Compute equatorial (RA, declination, distance)
  
          When called without a parameter, this returns standard ICRF
          right ascension and declination:
  
          >>> ra, dec, distance = ICRF([1, 2, 3]).radec()
          >>> print(ra, dec, distance, sep='\n')
          04h 13m 44.39s
          +53deg 18' 02.8"
          3.74166 au
  
          If you instead want the coordinates referenced to the dynamical
          system defined by the Earth's mean equator and equinox, provide
          an epoch time.  To get J2000.0 coordinates, for example:
  
          >>> ra, dec, distance = ICRF([1, 2, 3]).radec(ts.J2000)
          >>> print(ra, dec, sep='\n')
          04h 13m 43.32s
          +53deg 17' 55.1"