Downloads all feature values for the given object type and stores the
        data as *CSV* files on disk.

        Parameters
        ----------
        mapobject_type_name: str
            type of the segmented objects
        directory: str
            absolute path to the directory on disk where the file should be
        parallel: int
            number of parallel processes to use for upload

        See also
        --------
        :meth:`tmclient.api.TmClient.download_feature_values`
        :meth:`tmclient.api.TmClient.download_object_metadata`

def download_feature_values_and_metadata_files(self, mapobject_type_name,
                                                   directory, parallel=1):
        '''Downloads all feature values for the given object type and stores the
        data as *CSV* files on disk.

        Parameters
        ----------
        mapobject_type_name: str
            type of the segmented objects
        directory: str
            absolute path to the directory on disk where the file should be
        parallel: int
            number of parallel processes to use for upload

        See also
        --------
        :meth:`tmclient.api.TmClient.download_feature_values`
        :meth:`tmclient.api.TmClient.download_object_metadata`
        '''

        def download_per_well(well):
            logger.info(
                'download feature data at well: plate=%s, well=%s',
                well['plate_name'], well['name']
            )
            res = self._download_feature_values(
                mapobject_type_name, well['plate_name'], well['name']
            )
            filename = self._extract_filename_from_headers(res.headers)
            filepath = os.path.join(directory, os.path.basename(filename))
            logger.info('write feature values to file: %s', filepath)
            with open(filepath, 'wb') as f:
                for c in res.iter_content(chunk_size=1000):
                    f.write(c)

            logger.info(
                'download feature metadata at well: plate=%s, well=%s',
                well['plate_name'], well['name']
            )
            res = self._download_object_metadata(
                mapobject_type_name, well['plate_name'], well['name']
            )
            filename = self._extract_filename_from_headers(res.headers)
            filepath = os.path.join(directory, os.path.basename(filename))
            logger.info('write metadata to file: %s', filepath)
            with open(filepath, 'wb') as f:
                for c in res.iter_content(chunk_size=1000):
                    f.write(c)

        work = [(download_per_well, well) for well in self.get_wells()]
        self._parallelize(work, parallel)