code: def get_indexable_columns(features: Features) -> list[str]:
      indexable_columns: list[str] = []
      for column, feature in features.items():
          indexable = False
  
          def check_indexable(feature: FeatureType) -> None:
              nonlocal indexable
              if (
                  isinstance(feature, Value)
                  and feature.dtype == "string"
              ):
                  indexable = True
  
          _visit(feature, check_indexable)
          if indexable:
              indexable_columns.append(column)
      return indexable_columns
  
imports: import copy
  import logging
  import os
  from pathlib import Path
  from typing import Optional
  import duckdb
  import pyarrow.parquet
  from datasets.features.features import Features, FeatureType, Value, _visit
  from huggingface_hub import hf_hub_download
  from huggingface_hub._commit_api import CommitOperation, CommitOperationAdd, CommitOperationDelete
  from huggingface_hub.hf_api import HfApi
  from huggingface_hub.utils._errors import HfHubHTTPError, RepositoryNotFoundError
  from libcommon.constants import DUCKDB_INDEX_JOB_RUNNER_SUBDIRECTORY
  from libcommon.exceptions import CacheDirectoryNotInitializedError, CreateCommitError, DatasetNotFoundError, DuckDBIndexFileNotFoundError, LockedDatasetTimeoutError, ParquetResponseEmptyError, PreviousStepFormatError
  from libcommon.parquet_utils import parquet_export_is_partial
  from libcommon.queue import lock
  from libcommon.simple_cache import get_previous_step_or_raise
  from libcommon.storage import StrPath
  from libcommon.utils import JobInfo
  from requests.exceptions import ReadTimeout
  from worker.config import AppConfig, DuckDbIndexConfig
  from worker.dtos import CompleteJobResult, SplitDuckdbIndex
  from worker.job_runners.split.split_job_runner import SplitJobRunnerWithCache
  from worker.utils import HF_HUB_HTTP_ERROR_RETRY_SLEEPS, LOCK_GIT_BRANCH_RETRY_SLEEPS, create_branch, hf_hub_url, retry
label_desc: Use image node_id 1 for calling a global function with example usage: get_indexable_columns(features) and returns: indexable_columns