code: def parse_coordinate(string_rep, unit):
          
          # explicit radian ('r') value
          if string_rep[-1] == 'r':
              return coordinates.Angle(string_rep[:-1], unit=u.rad)
          # explicit image ('i') and physical ('p') pixels
          elif string_rep[-1] in ['i', 'p']:
              return u.Quantity(string_rep[:-1]) - 1
          # Any ds9 coordinate representation (sexagesimal or degrees)
          elif 'd' in string_rep or 'h' in string_rep:
              return coordinates.Angle(string_rep)
          elif unit is 'hour_or_deg':
              if ':' in string_rep:
                  spl = tuple([float(x) for x in string_rep.split(":")])
                  return coordinates.Angle(spl, u.hourangle)
              else:
                  ang = float(string_rep)
                  return coordinates.Angle(ang, u.deg)
          elif unit.is_equivalent(u.deg):
              # return coordinates.Angle(string_rep, unit=unit)
              if ':' in string_rep:
                  ang = tuple([float(x) for x in string_rep.split(":")])
              else:
                  ang = float(string_rep)
              return coordinates.Angle(ang, u.deg)
          elif unit.is_equivalent(u.dimensionless_unscaled):
              return u.Quantity(float(string_rep), unit) - 1
          else:
              return u.Quantity(float(string_rep), unit)
docs: Parse a single coordinate