class_docstr: This command is private and reserved for internal use of setuptools,
  users should rely on ``setuptools.build_meta`` APIs.
code: def run(self):
      self.output_dir.mkdir(parents=True, exist_ok=True)
      self.egg_info.run()
      egg_info_dir = self.egg_info.egg_info
      assert os.path.isdir(
          egg_info_dir
      ), ".egg-info dir should have been created"
  
      log.info(
          "creating '{}'".format(os.path.abspath(self.dist_info_dir))
      )
      bdist_wheel = self.get_finalized_command("bdist_wheel")
  
      # TODO: if bdist_wheel if merged into setuptools, just add "keep_egg_info" there
      with self._maybe_bkp_dir(egg_info_dir, self.keep_egg_info):
          bdist_wheel.egg2dist(egg_info_dir, self.dist_info_dir)
  
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 4 for calling the dist_info obj's underlying member method code with example usage: obj.run() without return types