Downloads the *jterator* project and stores it
        on disk in YAML format. The pipeline description will be stored
        in a ``pipeline.yaml`` file in `directory` and each handle description
        will be stored in a ``*handles.yaml`` file and placed into a ``handles``
        subfolder of `directory`.

        Parameters
        ----------
        directory: str
            path to the root folder where files should be stored

        See also
        --------
        :meth:`tmclient.api.TmClient.download_jterator_project`

def download_jterator_project_files(self, directory):
        '''Downloads the *jterator* project and stores it
        on disk in YAML format. The pipeline description will be stored
        in a ``pipeline.yaml`` file in `directory` and each handle description
        will be stored in a ``*handles.yaml`` file and placed into a ``handles``
        subfolder of `directory`.

        Parameters
        ----------
        directory: str
            path to the root folder where files should be stored

        See also
        --------
        :meth:`tmclient.api.TmClient.download_jterator_project`
        '''
        descriptions = self.download_jterator_project()
        directory = os.path.expanduser(os.path.expandvars(directory))

        logger.info(
            'store jterator project description in directory: %s', directory
        )
        if not os.path.exists(directory):
            raise OSError('Directory does not exit: {0}'.format(directory))

        pipeline_filename = os.path.join(directory, 'pipeline.yaml')
        logger.debug('write pipeline description to file: %s', pipeline_filename)
        with open(pipeline_filename, 'w') as f:
            content = yaml.safe_dump(
                descriptions['pipeline'],
                explicit_start=True, default_flow_style=False
            )
            f.write(content)

        handles_subdirectory = os.path.join(directory, 'handles')
        if not os.path.exists(handles_subdirectory):
            logger.debug('create "handles" directory')
            os.mkdir(handles_subdirectory)
        for name, description in descriptions['handles'].items():
            handles_filename = os.path.join(
                handles_subdirectory, '{name}.handles.yaml'.format(name=name)
            )
            logger.debug(
                'write handles description to file: %s', handles_filename
            )
            with open(handles_filename, 'w') as f:
                content = yaml.safe_dump(
                    description,
                    explicit_start=True, default_flow_style=False
                )
                f.write(content)