code: def handle_property_type(
      property_type: str,
      item: Dict[str, Any],
      expected_impact: ExpectedImpact = ExpectedImpact.HIGH,
  ) -> List[Union[ParameterBaseTypes, List[ParameterBaseTypes]]]:
      """Return possible parameter values for a parameter type.
  
      Args:
          property_type: type of the parameter (e.g. array, number, etc.)
          item: dictionary containing details on the parameter such as default, min and max values.
          expected_impact: threshold expected impact that we'd like to include.
      """
      parameter_metadata = item.get("parameter_metadata", None)
      if not parameter_metadata:
          return []
  
      # don't explore internal only parameters.
      if parameter_metadata.get("internal_only", True):
          return []
  
      # don't explore parameters that have expected impact less than HIGH.
      if (
          parameter_metadata.get("expected_impact", ExpectedImpact.LOW)
          < expected_impact
      ):
          return []
  
      if property_type == "number":
          return explore_number(item)
      elif property_type == "integer":
          return explore_integer(item)
      elif property_type == "string":
          return explore_string(item)
      elif property_type == "boolean":
          return explore_boolean()
      elif property_type == "null":
          return explore_null()
      elif property_type == "array":
          return explore_array(item)
      else:
          return []
  
file_path: ludwig/ludwig/config_sampling/parameter_sampling.py
imports: import random
  from typing import Any, Dict, List, Union
  from ludwig.schema.metadata.parameter_metadata import ExpectedImpact
label_desc: Use image node_id 1 for calling a global function with example usage: handle_property_type(property_type, item, expected_impact) and returns: list, list, list, explore_number, explore_integer, explore_string, explore_boolean, explore_null, explore_array, list