class_docstr: A naive pipeline for obtaining dataset.
  
  download -> extract -> move
  
  Args:
      files (list[dict]): A list of file information.
      cache_path (str): The path to cache the downloaded files.
      data_root (str): The root path of the dataset. It is usually set auto-
          matically and users do not need to set it manually in config file
          in most cases.
      task (str): The task of the dataset. It is usually set automatically
          and users do not need to set it manually in config file
          in most cases.
class_docstr_tok: ["A","naive","pipeline","for","obtaining","dataset",".","download","-",">","extract","-",">","move","Args",":","files","(","list","[","dict","]",")",":","A","list","of","file","information",".","cache_path","(","str",")",":","The","path","to","cache","the","downloaded","files",".","data_root","(","str",")",":","The","root","path","of","the","dataset",".","It","is","usually","set","auto-","matically","and","users","do","not","need","to","set","it","manually","in","config","file","in","most","cases",".","task","(","str",")",":","The","task","of","the","dataset",".","It","is","usually","set","automatically","and","users","do","not","need","to","set","it","manually","in","config","file","in","most","cases","."]
docstr: Rename and move dataset files one by one.
  
  Args:
      mapping (List[Tuple[str, str]]): A list of tuples, each
      tuple contains the source file name and the destination file name.
docstr_tok: ["Rename","and","move","dataset","files","one","by","one",".","Args",":","mapping","(","List","[","Tuple","[","str",",","str","]","]",")",":","A","list","of","tuples",",","each","tuple","contains","the","source","file","name","and","the","destination","file","name","."]
code: def move(self, mapping: List[Tuple[str, str]]) -> None:
      """Rename and move dataset files one by one.
  
      Args:
          mapping (List[Tuple[str, str]]): A list of tuples, each
          tuple contains the source file name and the destination file name.
      """
      for src, dst in mapping:
          src = osp.join(self.data_root, src)
          dst = osp.join(self.data_root, dst)
  
          if "*" in src:
              mkdir_or_exist(dst)
              for f in glob.glob(src):
                  if not osp.exists(
                      osp.join(dst, osp.relpath(f, self.data_root))
                  ):
                      shutil.move(f, dst)
  
          elif osp.exists(src) and not osp.exists(dst):
              mkdir_or_exist(osp.dirname(dst))
              shutil.move(src, dst)
  
file_path: mmocr/mmocr/datasets/preparers/obtainers/naive_data_obtainer.py
imports: import glob
  import os
  import os.path
  import shutil
  import ssl
  import urllib.request
  from typing import Dict, List, Optional, Tuple
  from mmengine import mkdir_or_exist
  from mmocr.registry import DATA_OBTAINERS
  from mmocr.utils import check_integrity, is_archive
label_desc: Use image node_id 5 for calling the NaiveDataObtainer obj's underlying member method code with example usage: obj.move(mapping) without return types