class_docstr: This command is private and reserved for internal use of setuptools,
  users should rely on ``setuptools.build_meta`` APIs.
code: def _maybe_bkp_dir(self, dir_path: str, requires_bkp: bool):
      if requires_bkp:
          bkp_name = f"{dir_path}.__bkp__"
          _rm(bkp_name, ignore_errors=True)
          _copy(dir_path, bkp_name, dirs_exist_ok=True, symlinks=True)
          try:
              yield
          finally:
              _rm(dir_path, ignore_errors=True)
              shutil.move(bkp_name, dir_path)
      else:
          yield
  
file_path: catboost/contrib/python/setuptools/py3/setuptools/command/dist_info.py
imports: import os
  import shutil
  import sys
  from contextlib import contextmanager
  from distutils import log
  from distutils.core import Command
  from pathlib import Path
  from ..None import _normalization
label_desc: Use image node_id 3 for calling the dist_info obj's underlying member method code with example usage: obj._maybe_bkp_dir(dir_path, requires_bkp) without return types