code: def _get_input_data(self, var, start_date, end_date):
          
          logging.info(self._print_verbose("Getting input data:", var))
  
          if isinstance(var, (float, int)):
              return var
          else:
              cond_pfull = ((not hasattr(self, internal_names.PFULL_STR))
                            and var.def_vert and
                            self.dtype_in_vert == internal_names.ETA_STR)
              data = self.data_loader.recursively_compute_variable(
                  var, start_date, end_date, self.time_offset, self.model,
                  **self.data_loader_attrs)
              name = data.name
              data = self._add_grid_attributes(data.to_dataset(name=data.name))
              data = data[name]
              if cond_pfull:
                  try:
                      self.pfull_coord = data[internal_names.PFULL_STR]
                  except KeyError:
                      pass
              # Force all data to be at full pressure levels, not half levels.
              bool_to_pfull = (self.dtype_in_vert == internal_names.ETA_STR and
                               var.def_vert == internal_names.PHALF_STR)
              if bool_to_pfull:
                  data = utils.vertcoord.to_pfull_from_phalf(data,
                                                             self.pfull_coord)
          if var.def_time:
              # Restrict to the desired dates within each year.
              if self.dtype_in_time != 'av':
                  return self._to_desired_dates(data)
          else:
              return data
docs: Get the data for a single variable over the desired date range.