def METHOD_NAME(self, dst_file: str, exporter: Callable, host: str='', **options):
    project_data = ProjectData(
        annotation_irs=self.annotation_irs,
        db_project=self.db_project,
        host=host
    )
    temp_dir_base = self.db_project.get_tmp_dirname()
    os.makedirs(temp_dir_base, exist_ok=True)
    with TemporaryDirectory(dir=temp_dir_base) as temp_dir:
        exporter(dst_file, temp_dir, project_data, **options)