docs: def spkezr(targ, et, ref, abcorr, obs):
      """
      Return the state (position and velocity) of a target body
      relative to an observing body, optionally corrected for light
      time (planetary aberration) and stellar aberration.
  
      http://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/spkezr_c.html
  
      :param targ: Target body name.
      :type targ: str
      :param et: Observer epoch.
      :type et: Union[float,Iterable[float]]
      :param ref: Reference frame of output state vector.
      :type ref: str
      :param abcorr: Aberration correction flag.
      :type abcorr: str
      :param obs: Observing body name.
      :type obs: str
      :return:
              State of target,
              One way light time between observer and target.
      :rtype: tuple
      """
      targ = stypes.stringToCharP(targ)
      ref = stypes.stringToCharP(ref)
      abcorr = stypes.stringToCharP(abcorr)
      obs = stypes.stringToCharP(obs)
      starg = stypes.emptyDoubleVector(6)
      lt = ctypes.c_double()
      if hasattr(et, "__iter__"):
          states = []
          times = []
          for t in et:
              libspice.spkezr_c(targ, ctypes.c_double(t), ref, abcorr, obs, starg, ctypes.byref(lt))
              checkForSpiceError(None)
              states.append(stypes.cVectorToPython(starg))
              times.append(lt.value)
          return states, times
      else:
          libspice.spkezr_c(targ, ctypes.c_double(et), ref, abcorr, obs, starg, ctypes.byref(lt))
          return stypes.cVectorToPython(starg), lt.value