docs: def str_kwargs(self):
          """                                                                                                                                           
          Generator that yields a dict of values corresponding to the                                                                                   
          calendar date and time for the internal JD values.
  
          Here we provide the additional 'fracday' element needed by 'mpc' format
          """
          iys, ims, ids, ihmsfs = sofa_time.jd_dtf(self.scale.upper()
                                                   .encode('utf8'),
                                                   6,
                                                   self.jd1, self.jd2)
  
          # Get the str_fmt element of the first allowed output subformat                                                                               
          _, _, str_fmt = self._select_subfmts(self.out_subfmt)[0]
  
          yday = None
          has_yday = '{yday:' in str_fmt or False
  
          for iy, im, iday, ihmsf in itertools.izip(iys, ims, ids, ihmsfs):
              ihr, imin, isec, ifracsec = ihmsf
              if has_yday:
                  yday = datetime(iy, im, iday).timetuple().tm_yday
  
              # MPC uses day fraction as time part of datetime
              fracday = (((((ifracsec / 1000000.0 + isec) / 60.0 + imin) / 60.0) + ihr) / 24.0) * (10 ** 6)
              fracday = '{0:06g}'.format(fracday)[0:self.precision]
              #format_str = '{{0:g}}'.format(self.precision)
              #fracday = int(format_str.format(fracday))
              yield dict(year=int(iy), mon=int(im), day=int(iday), hour=int(ihr), min=int(imin), sec=int(isec),
                         fracsec=int(ifracsec), yday=yday, fracday=fracday)