class_docstr: Repository in order to extract suitable operations by keys
  for pipelines during graph composition. Defines 2 keys:
  `primary` and `secondary` for distinguishing operations suitable
  for, respectively, primary and secondary nodes.
  
  Designed to work in cooperation with
  :py:class:`fedot.core.optimisers.opt_node_factory.OptNodeFactory`
  
  Args:
     operations_by_keys: available operations already splitted by keys
class_docstr_tok: ["Repository","in","order","to","extract","suitable","operations","by","keys","for","pipelines","during","graph","composition",".","Defines","2","keys",":","`","primary","`","and","`","secondary","`","for","distinguishing","operations","suitable","for",",","respectively",",","primary","and","secondary","nodes",".","Designed","to","work","in","cooperation","with",":","py",":","class",":","`","fedot.core.optimisers.opt_node_factory.OptNodeFactory","`","Args",":","operations_by_keys",":","available","operations","already","splitted","by","keys"]
code: def __init__(
      self, operations_by_keys: Optional[Dict[str, List[str]]] = None
  ):
      super().__init__()
      self.operations_by_keys = operations_by_keys or dict()
  
file_path: FEDOT/fedot/core/repository/pipeline_operation_repository.py
imports: import itertools
  from typing import List, Optional, Dict
  from fedot.api.api_utils.presets import OperationsPreset
  from fedot.core.repository.graph_operation_repository import GraphOperationRepository
  from fedot.core.repository.operation_types_repository import get_operations_for_task
  from fedot.core.repository.tasks import Task, TaskTypesEnum
label_desc: Use image node_id 1 to create a new PipelineOperationRepository object from inherited base classes: GraphOperationRepository with example: obj = PipelineOperationRepository(operations_by_keys)