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"]
docstr: Get pipeline operations by specified model key 
docstr_tok: ["Get","pipeline","operations","by","specified","model","key"]
code: def get_operations(self, is_primary: bool) -> List[str]:
      """Get pipeline operations by specified model key"""
      operation_key = "primary" if is_primary else "secondary"
      operations = self.operations_by_keys.get(operation_key, [])
      return operations
  
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 3 for calling the PipelineOperationRepository obj's underlying member method code with example usage: obj.get_operations(is_primary) and returns: operations