docs: def load_data(self, *args, **kwargs):
          """
          Collects positional and keyword arguments into `data` and applies units.
  
          :return: data
          """
          # get positional argument names from parameters and apply them to args
          # update data with additional kwargs
          argpos = {
              v['extras']['argpos']: k for k, v in self.parameters.iteritems()
              if 'argpos' in v['extras']
          }
          data = dict(
              {argpos[n]: a for n, a in enumerate(args)}, **kwargs
          )
          return self.apply_units_to_cache(data)