class_docstr: Abstracts task-specific pipeline assumptions. 
class_docstr_tok: ["Abstracts","task-specific","pipeline","assumptions","."]
code: def for_task(
      task: Task, repository: OperationTypesRepository
  ) -> "TaskAssumptions":
      assumptions_by_task = {
          TaskTypesEnum.classification: ClassificationAssumptions,
          TaskTypesEnum.regression: RegressionAssumptions,
          TaskTypesEnum.ts_forecasting: TSForecastingAssumptions,
      }
      assumptions_cls: TaskAssumptions = assumptions_by_task.get(
          task.task_type
      )
      if not assumptions_cls:
          raise NotImplementedError(
              f"Don't have assumptions for task type: {task.task_type}"
          )
      return assumptions_cls(repository)
  
imports: from abc import abstractmethod
  from typing import List
  from fedot.api.api_utils.assumptions.operations_filter import OperationsFilter
  from fedot.core.pipelines.pipeline_builder import PipelineBuilder
  from fedot.core.repository.operation_types_repository import OperationTypesRepository
  from fedot.core.repository.tasks import Task, TaskTypesEnum
  from fedot.utilities.custom_errors import AbstractMethodNotImplementError
label_desc: Use image node_id 2 for calling the TaskAssumptions obj's underlying member method code with example usage: obj.for_task(task, repository) and returns: assumptions_cls