docs: def occult(target1, shape1, frame1, target2, shape2, frame2, abcorr, observer,
             et):
      """
      Determines the occultation condition (not occulted, partially,
      etc.) of one target relative to another target as seen by
      an observer at a given time.
  
      http://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/occult_c.html
  
      :param target1: Name or ID of first target.
      :type target1: str
      :param shape1: Type of shape model used for first target.
      :type shape1: str
      :param frame1: Body-fixed, body-centered frame for first body.
      :type frame1: str
      :param target2: Name or ID of second target.
      :type target2: str
      :param shape2: Type of shape model used for second target.
      :type shape2: str
      :param frame2: Body-fixed, body-centered frame for second body.
      :type frame2: str
      :param abcorr: Aberration correction flag.
      :type abcorr: str
      :param observer: Name or ID of the observer.
      :type observer: str
      :param et: Time of the observation (seconds past J2000).
      :type et: float
      :return: Occultation identification code.
      :rtype: int
      """
      target1 = stypes.stringToCharP(target1)
      shape1 = stypes.stringToCharP(shape1)
      frame1 = stypes.stringToCharP(frame1)
      target2 = stypes.stringToCharP(target2)
      shape2 = stypes.stringToCharP(shape2)
      frame2 = stypes.stringToCharP(frame2)
      abcorr = stypes.stringToCharP(abcorr)
      observer = stypes.stringToCharP(observer)
      et = ctypes.c_double(et)
      occult_code = ctypes.c_int()
      libspice.occult_c(target1, shape1, frame1, target2, shape2, frame2, abcorr,
                        observer, et, ctypes.byref(occult_code))
      return occult_code.value