code: def get_validator():
      # Manually add support for tuples (pending upstream changes: https://github.com/Julian/jsonschema/issues/148):
      def custom_is_array(checker, instance):
          return isinstance(instance, list) or isinstance(
              instance, tuple
          )
  
      # This creates a new class, so cache to prevent a memory leak:
      # https://github.com/python-jsonschema/jsonschema/issues/868
      type_checker = Draft7Validator.TYPE_CHECKER.redefine(
          "array", custom_is_array
      )
      return extend(Draft7Validator, type_checker=type_checker)
  
file_path: ludwig/ludwig/config_validation/validation.py
imports: from functools import lru_cache
  from threading import Lock
  import jsonschema.exceptions
  from jsonschema import Draft7Validator, validate
  from jsonschema.validators import extend
  from ludwig.api_annotations import DeveloperAPI
  from ludwig.constants import BASE_MODEL, MODEL_ECD, MODEL_LLM, MODEL_TYPE
  from ludwig.error import ConfigValidationError
  from ludwig.schema.combiners.utils import get_combiner_jsonschema
  from ludwig.schema.features.utils import get_input_feature_jsonschema, get_output_feature_jsonschema
  from ludwig.schema.hyperopt import get_hyperopt_jsonschema
  from ludwig.schema.trainer import get_model_type_jsonschema, get_trainer_jsonschema
  from ludwig.schema.utils import unload_jsonschema_from_marshmallow_class
label_desc: Use image node_id 2 for calling a global function with example usage: get_validator() and returns: extend, unknown