code: def test_target_override(
      eager: bool, default_model_storage: ModelStorage
  ):
      graph_schema = GraphSchema(
          {
              "add": SchemaNode(
                  needs={"i1": "first_input", "i2": "second_input"},
                  uses=AddInputs,
                  fn="add",
                  constructor_name="create",
                  config={},
                  eager=eager,
              ),
              "subtract_2": SchemaNode(
                  needs={"i": "add"},
                  uses=SubtractByX,
                  fn="subtract_x",
                  constructor_name="create",
                  config={"x": 3},
                  eager=eager,
                  is_target=True,
              ),
          }
      )
  
      execution_context = ExecutionContext(
          graph_schema=graph_schema, model_id="1"
      )
  
      runner = DaskGraphRunner(
          graph_schema=graph_schema,
          model_storage=default_model_storage,
          execution_context=execution_context,
      )
      results = runner.run(
          inputs={"first_input": 3, "second_input": 4}, targets=["add"]
      )
      assert results == {"add": 7}
  
imports: from __future__ import annotations
  from typing import Optional
  import pytest
  from rasa.engine.graph import ExecutionContext, GraphSchema, SchemaNode
  from rasa.engine.exceptions import GraphRunError
  from rasa.engine.runner.dask import DaskGraphRunner
  from rasa.engine.storage.storage import ModelStorage
  from tests.engine.graph_components_test_classes import AddInputs, AssertComponent, ExecutionContextAware, ProvideX, SubtractByX, PersistableTestComponent
label_desc: Use image node_id 2 for calling a global function with example usage: test_target_override(eager, default_model_storage) without return types