code: def __init__(
      self,
      job_info: JobInfo,
      app_config: AppConfig,
      duckdb_index_cache_directory: StrPath,
      parquet_metadata_directory: StrPath,
  ) -> None:
      super().__init__(
          job_info=job_info,
          app_config=app_config,
          cache_directory=Path(duckdb_index_cache_directory)
          / DUCKDB_INDEX_JOB_RUNNER_SUBDIRECTORY,
      )
      self.duckdb_index_config = app_config.duckdb_index
      self.parquet_metadata_directory = 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 1 to create a new SplitDuckDbIndexJobRunner object from inherited base classes: SplitJobRunnerWithCache with example: obj = SplitDuckDbIndexJobRunner(job_info, app_config, duckdb_index_cache_directory, parquet_metadata_directory)