docs: def from_jd(jd: float, fmt: str = 'jd') -> datetime:
      """
      Converts a Julian Date to a datetime object.
      Algorithm is from Fliegel and van Flandern (1968)
  
      Parameters
      ----------
      jd: float
          Julian Date as type specified in the string fmt
  
      fmt: str
  
      Returns
      -------
      dt: datetime
  
      """
      jd, jdf = __from_format(jd, fmt)
  
      l = jd+68569
      n = 4*l//146097
      l = l-(146097*n+3)//4
      i = 4000*(l+1)//1461001
      l = l-1461*i//4+31
      j = 80*l//2447
      k = l-2447*j//80
      l = j//11
      j = j+2-12*l
      i = 100*(n-49)+i+l
  
      year = int(i)
      month = int(j)
      day = int(k)
  
      # in microseconds
      frac_component = int(jdf * (1e6*24*3600))
  
      hours = int(frac_component // (1e6*3600))
      frac_component -= hours * 1e6*3600
  
      minutes = int(frac_component // (1e6*60))
      frac_component -= minutes * 1e6*60
  
      seconds = int(frac_component // 1e6)
      frac_component -= seconds*1e6
  
      frac_component = int(frac_component)
  
      dt = datetime(year=year, month=month, day=day,
                    hour=hours, minute=minutes, second=seconds, microsecond=frac_component)
      return dt