code: def SplitDataclassField(default: str) -> Field:
      """Custom dataclass field that when used inside a dataclass will allow the user to specify a nested split
      config.
  
      Returns: Initialized dataclass field that converts an untyped dict with params to a split config.
      """
  
      class SplitSelection(schema_utils.TypeSelection):
          def __init__(self):
              super().__init__(
                  registry=split_config_registry.data,
                  default_value=default,
              )
  
          def get_schema_from_registry(
              self, key: str
          ) -> Type[schema_utils.BaseMarshmallowConfig]:
              return split_config_registry.data[key]
  
          def _jsonschema_type_mapping(self):
              return {
                  "type": "object",
                  "properties": {
                      "type": {
                          "type": "string",
                          "description": "Type of splitting to use during preprocessing.",
                          "enum": list(
                              split_config_registry.data.keys()
                          ),
                          "default": default,
                      },
                  },
                  "title": "split_options",
                  "allOf": get_split_conds(),
              }
  
      return SplitSelection().get_default_field()
  
imports: from dataclasses import Field
  from typing import Type
  from ludwig.api_annotations import DeveloperAPI
  from ludwig.constants import SPLIT, TYPE
  from ludwig.schema import utils
  from ludwig.schema.metadata import PREPROCESSING_METADATA
  from ludwig.schema.utils import ludwig_dataclass
  from ludwig.utils.registry import Registry
label_desc: Use image node_id 3 for calling a global function with example usage: SplitDataclassField(default) and returns: SplitSelection, split_config_registry, dict