code: def compute(self) -> CompleteJobResult:
      if self.cache_subdirectory is None:
          raise CacheDirectoryNotInitializedError(
              "Cache directory has not been initialized."
          )
      return CompleteJobResult(
          compute_index_rows(
              job_id=self.job_info["job_id"],
              dataset=self.dataset,
              config=self.config,
              split=self.split,
              duckdb_index_file_directory=self.cache_subdirectory,
              hf_token=self.app_config.common.hf_token,
              url_template=self.duckdb_index_config.url_template,
              commit_message=self.duckdb_index_config.commit_message,
              extensions_directory=self.duckdb_index_config.extensions_directory,
              committer_hf_token=self.duckdb_index_config.committer_hf_token,
              hf_endpoint=self.app_config.common.hf_endpoint,
              target_revision=self.duckdb_index_config.target_revision,
              max_dataset_size_bytes=self.duckdb_index_config.max_dataset_size_bytes,
              parquet_metadata_directory=self.parquet_metadata_directory,
          )
      )
  
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 3 for calling the SplitDuckDbIndexJobRunner obj's underlying member method code with example usage: obj.compute() and returns: CompleteJobResult