code: def str_kwargs(self):
          
          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)
docs: 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