class_docstr: Base class for dataset config generator.
  
  Args:
      data_root (str): The root path of the dataset.
      task (str): The task of the dataset.
      dataset_name (str): The name of the dataset.
      overwrite_cfg (bool): Whether to overwrite the dataset config file if
          it already exists. If False, config generator will not generate new
          config for datasets whose configs are already in base.
      train_anns (List[Dict], optional): A list of train annotation files
          to appear in the base configs. Defaults to None.
          Each element is typically a dict with the following fields:
          - ann_file (str): The path to the annotation file relative to
            data_root.
          - dataset_postfix (str, optional): Affects the postfix of the
            resulting variable in the generated config. If specified, the
            dataset variable will be named in the form of
            ``{dataset_name}_{dataset_postfix}_{task}_{split}``. Defaults to
            None.
      val_anns (List[Dict], optional): A list of val annotation files
          to appear in the base configs, similar to ``train_anns``. Defaults
          to None.
      test_anns (List[Dict], optional): A list of test annotation files
          to appear in the base configs, similar to ``train_anns``. Defaults
          to None.
      config_path (str): Path to the configs. Defaults to 'configs/'.
code: def __init__(
      self,
      data_root: str,
      task: str,
      dataset_name: str,
      overwrite_cfg: bool = False,
      train_anns: Optional[List[Dict]] = None,
      val_anns: Optional[List[Dict]] = None,
      test_anns: Optional[List[Dict]] = None,
      config_path: str = "configs/",
  ) -> None:
      self.config_path = config_path
      self.data_root = data_root
      self.task = task
      self.dataset_name = dataset_name
      self.overwrite_cfg = overwrite_cfg
      self._prepare_anns(train_anns, val_anns, test_anns)
  
file_path: mmocr/mmocr/datasets/preparers/config_generators/base.py
imports: import os.path
  from abc import abstractmethod
  from typing import Dict, List, Optional
  from mmengine import mkdir_or_exist
label_desc: Use image node_id 1 to create a new BaseDatasetConfigGenerator object  with example: obj = BaseDatasetConfigGenerator(data_root, task, dataset_name, overwrite_cfg, train_anns, val_anns, test_anns, config_path)