code: def has_correct_data_sources(pipeline: Pipeline):
      """Checks that data sources and other nodes are not mixed"""
  
      is_data_source_in_names_conds = [
          "data_source" in str(n)
          for n in pipeline.nodes
          if (isinstance(n, PipelineNode) and n.is_primary)
      ]
  
      if any(is_data_source_in_names_conds) and not all(
          is_data_source_in_names_conds
      ):
          raise ValueError(
              f"{ERROR_PREFIX} Data sources are mixed with other primary nodes"
          )
      return True
  
imports: from typing import Optional
  from fedot.core.operations.atomized_model import AtomizedModel
  from fedot.core.operations.model import Model
  from fedot.core.pipelines.node import PipelineNode
  from fedot.core.pipelines.pipeline import Pipeline
  from fedot.core.repository.dataset_types import DataTypesEnum
  from fedot.core.repository.operation_types_repository import OperationTypesRepository, get_operations_for_task, atomized_model_type
  from fedot.core.repository.tasks import Task, TaskTypesEnum
label_desc: Use image node_id 12 for calling a global function with example usage: has_correct_data_sources(pipeline) and returns: True