docs: def upload_feature_value_file(self, mapobject_type_name, plate_name,
              well_name, well_pos_y, well_pos_x, tpoint, filename, index_col):
          '''Uploads feature values for the given
          :class:`MapobjectType <tmlib.models.mapobject.MapobjectType>` at the
          specified :class:`Site <tmlib.models.site.Site>`.
  
          Parameters
          ----------
          mapobject_type_name: str
              type of the segmented objects
          plate_name: str
              name of the plate
          well_name: str
              name of the well
          well_pos_y: int
              y-position of the site relative to the well grid
          well_pos_x: int
              x-position of the site relative to the well grid
          tpoint: int
              zero-based time point index
          filename: str
              path to the file on disk
          index_col: str
              column name containing the object labels
  
          See also
          --------
          :func:`tmserver.api.feature.add_feature_values`
          :class:`tmlib.models.feature.FeatureValues`
          '''
          logger.info('upload feature value file "%s"', filename)
          if not filename.lower().endswith('csv'):
              raise IOError('Filename must have "csv" extension.')
          filename = os.path.expanduser(os.path.expandvars(filename))
          data = pd.read_csv(filename, index_col=index_col)
          self._upload_feature_values(
              mapobject_type_name, plate_name, well_name, well_pos_y, well_pos_x,
              tpoint, data
          )