code: def test_fgraph_to_python_names():
      import inspect
  
      x = scalar("1x")
      y = scalar("_")
      z = float64()
      q = scalar("def")
      r = NoneConst
  
      out_fg = FunctionGraph(
          [x, y, z, q, r], [x, y, z, q, r], clone=False
      )
      out_jx = fgraph_to_python(out_fg, to_python)
  
      sig = inspect.signature(out_jx)
      assert (
          "tensor_variable",
          "_",
          "scalar_variable",
          "tensor_variable_1",
          r.name,
      ) == tuple(sig.parameters.keys())
      assert (1, 2, 3, 4, 5) == out_jx(1, 2, 3, 4, 5)
  
      obj = object()
      assert get_name_for_object(obj) == type(obj).__name__
  
imports: import inspect
  from functools import singledispatch
  import numpy
  from pytensor import config
  from pytensor.graph.basic import Apply
  from pytensor.graph.fg import FunctionGraph
  from pytensor.graph.op import Op
  from pytensor.link.utils import fgraph_to_python, get_name_for_object, unique_name_generator
  from pytensor.scalar.basic import Add, float64
  from pytensor.tensor import constant
  from pytensor.tensor.elemwise import Elemwise
  from pytensor.tensor.type import scalar, vector
  from pytensor.tensor.type_other import NoneConst
label_desc: Use image node_id 4 for calling a global function with example usage: test_fgraph_to_python_names() without return types