code: def finalize_options(self):
      if self.plat_name is None:
          self.plat_name = get_platform()
      else:
          # plat-name only supported for windows (other platforms are
          # supported via ./configure flags, if at all).  Avoid misleading
          # other platforms.
          if os.name != "nt":
              raise DistutilsOptionError(
                  "--plat-name only supported on Windows (try "
                  "using './configure --help' on your platform)"
              )
  
      plat_specifier = ".%s-%d.%d" % (
          self.plat_name,
          *sys.version_info[:2],
      )
  
      # Make it so Python 2.x and Python 2.x with --with-pydebug don't
      # share the same build directories. Doing so confuses the build
      # process for C modules
      if hasattr(sys, "gettotalrefcount"):
          plat_specifier += "-pydebug"
  
      # 'build_purelib' and 'build_platlib' just default to 'lib' and
      # 'lib.<plat>' under the base build directory.  We only use one of
      # them for a given distribution, though --
      if self.build_purelib is None:
          self.build_purelib = os.path.join(self.build_base, "lib")
      if self.build_platlib is None:
          self.build_platlib = os.path.join(
              self.build_base, "lib" + plat_specifier
          )
  
      # 'build_lib' is the actual directory that we will use for this
      # particular module distribution -- if user didn't supply it, pick
      # one of 'build_purelib' or 'build_platlib'.
      if self.build_lib is None:
          if self.distribution.ext_modules:
              self.build_lib = self.build_platlib
          else:
              self.build_lib = self.build_purelib
  
      # 'build_temp' -- temporary directory for compiler turds,
      # "build/temp.<plat>"
      if self.build_temp is None:
          self.build_temp = os.path.join(
              self.build_base, "temp" + plat_specifier
          )
      if self.build_scripts is None:
          self.build_scripts = os.path.join(
              self.build_base, "scripts-%d.%d" % sys.version_info[:2]
          )
  
      if self.executable is None and sys.executable:
          self.executable = os.path.normpath(sys.executable)
  
      if isinstance(self.parallel, str):
          try:
              self.parallel = int(self.parallel)
          except ValueError:
              raise DistutilsOptionError(
                  "parallel should be an integer"
              )
  
file_path: catboost/contrib/tools/python3/src/Lib/distutils/command/build.py
imports: import sys, os
  from distutils.core import Command
  from distutils.errors import DistutilsOptionError
  from distutils.util import get_platform
label_desc: Use image node_id 2 for calling the build obj's underlying member method code with example usage: obj.finalize_options() without return types