code: def _get_supported_devices_dtypes(fn_name: str, fn_module: str):
      """Get supported devices and data types for a function in Ivy API.
  
      Parameters
      ----------
      fn_name
          Name of the function
  
      fn_module
          Full import path of the function module
  
      Returns
      -------
      Returns a dictionary containing supported device types and its supported data types
      for the function
      """
      supported_device_dtypes = {}
  
      # This is for getting a private function from numpy frontend where we have
      # a ufunc object as we can't refer to them as functions
      if fn_module == "ivy.functional.frontends.numpy":
          fn_module_ = np_frontend
          if isinstance(getattr(fn_module_, fn_name), fn_module_.ufunc):
              fn_name = f"_{fn_name}"
  
      for backend_str in available_frameworks:
          if mod_backend[backend_str]:
              # we know we need to use multiprocessing
              # to get the devices and dtypes
              proc, input_queue, output_queue = mod_backend[backend_str]
              input_queue.put(
                  ("supported dtypes", fn_module, fn_name, backend_str)
              )
              supported_device_dtypes[backend_str] = output_queue.get()
          else:
              supported_device_dtypes[
                  backend_str
              ] = _get_supported_devices_dtypes_helper(
                  backend_str, fn_module, fn_name
              )
      return supported_device_dtypes
  
imports: import json
  import os
  import pytest
  import importlib
  import inspect
  import functools
  from typing import List, Optional
  from hypothesis import given, strategies
  import ivy.functional.frontends.numpy
  from .hypothesis_helpers import number_helpers
  from .globals import TestData
  from .None import test_parameter_flags
  from .None import test_globals
  from .pipeline_helper import BackendHandler
  from ivy_tests.test_ivy.helpers.test_parameter_flags import DynamicFlag, BuiltInstanceStrategy, BuiltAsVariableStrategy, BuiltNativeArrayStrategy, BuiltGradientStrategy, BuiltContainerStrategy, BuiltWithOutStrategy, BuiltWithCopyStrategy, BuiltInplaceStrategy, BuiltTraceStrategy, BuiltFrontendArrayStrategy, BuiltTranspileStrategy, BuiltPrecisionModeStrategy, BuiltCythonWrapperStrategy
  from ivy_tests.test_ivy.helpers.structs import FrontendMethodData
  from ivy_tests.test_ivy.helpers.available_frameworks import available_frameworks
  from ivy_tests.test_ivy.helpers.hypothesis_helpers.dtype_helpers import _dtype_kind_keys, _get_type_dict
  from .globals import mod_backend
label_desc: Use image node_id 9 for calling a global function with example usage: _get_supported_devices_dtypes(fn_name, fn_module) and returns: supported_device_dtypes