code: def get_version(self, *args, **kwds):
      version = FCompiler.get_version(self, *args, **kwds)
  
      if version is None and sys.platform.startswith("aix"):
          # use lslpp to find out xlf version
          lslpp = find_executable("lslpp")
          xlf = find_executable("xlf")
          if os.path.exists(xlf) and os.path.exists(lslpp):
              try:
                  o = subprocess.check_output([lslpp, "-Lc", "xlfcmp"])
              except (OSError, subprocess.CalledProcessError):
                  pass
              else:
                  m = re.search(r"xlfcmp:(?P<version>\d+([.]\d+)+)", o)
                  if m:
                      version = m.group("version")
  
      xlf_dir = "/etc/opt/ibmcmp/xlf"
      if version is None and os.path.isdir(xlf_dir):
          # linux:
          # If the output of xlf does not contain version info
          # (that's the case with xlf 8.1, for instance) then
          # let's try another method:
          l = sorted(os.listdir(xlf_dir))
          l.reverse()
          l = [
              d
              for d in l
              if os.path.isfile(os.path.join(xlf_dir, d, "xlf.cfg"))
          ]
          if l:
              from distutils.version import LooseVersion
  
              self.version = version = LooseVersion(l[0])
      return version
  
file_path: catboost/contrib/python/numpy/py2/numpy/distutils/fcompiler/ibm.py
imports: from __future__ import division, absolute_import, print_function
  import os
  import re
  import sys
  import subprocess
  from numpy.distutils.fcompiler import FCompiler
  from numpy.distutils.exec_command import find_executable
  from numpy.distutils.misc_util import make_temp_file
  from distutils import log
label_desc: Use image node_id 1 for calling the IBMFCompiler obj's underlying member method code with example usage: obj.get_version() and returns: version