code: def run(self):
      # when making a wheel we depend on a cloud build platform to make the various OS and platform
      # shared library binaries, so we do not need to build them here. In conda-forge we use the
      # libebm dependency which is the shared library. When downloading from source we prefer to
      # build the library when used since the C++ code could change. The only place we want to
      # build the C++ code is when build is being called as part of an sdist installation, so
      # check if the symbolic path exists
  
      script_path = os.path.dirname(os.path.abspath(__file__))
      sym_path = os.path.join(
          script_path, "interpret", "root", "shared", "libebm"
      )
  
      if os.path.exists(sym_path):
          # this should only be triggered in an sdist
          build_libebm()
  
      # IMPORTANT:
      #
      # When building our bdist, we rely on a build pipeline to make the
      # .dll, .so, and .dylib since this is a multi-OS process. The build pipeline
      # should put them in ./interpret/python/interpret-core/interpret/root/bld/lib
      # If you want to build a single platform bdist, you must manually build
      # and copy the shared library artifacts into the directory
      #
      # If this behavior were changed to build the shared library for this platform
      # then you must change how the conda-forge build works since we rely on the fact
      # that we're not making shared libraries here since otherwise the conda-forge
      # build process would include them into the package there!
      #
  
      build_vis_if_needed()
  
      build.run(self)
  
imports: import subprocess
  import os
  import glob
  import shutil
  from setuptools.command.build import build
  from setuptools.command.install import install
  from setuptools import setup, find_packages
  from setuptools.command.sdist import sdist
label_desc: Use image node_id 1 for calling the BuildCommand obj's underlying member method code with example usage: obj.run() without return types