docs: def get_tops(extra_mods='', so_mods=''):
      '''
      Get top directories for the dependencies, based on Python interpreter.
  
      :param extra_mods:
      :param so_mods:
      :return:
      '''
      tops = []
      for mod in [salt, jinja2, yaml, tornado, msgpack, certifi, singledispatch, concurrent,
                  singledispatch_helpers, ssl_match_hostname, markupsafe, backports_abc]:
          if mod:
              log.debug('Adding module to the tops: "%s"', mod.__name__)
              _add_dependency(tops, mod)
  
      for mod in [m for m in extra_mods.split(',') if m]:
          if mod not in locals() and mod not in globals():
              try:
                  locals()[mod] = __import__(mod)
                  moddir, modname = os.path.split(locals()[mod].__file__)
                  base, _ = os.path.splitext(modname)
                  if base == '__init__':
                      tops.append(moddir)
                  else:
                      tops.append(os.path.join(moddir, base + '.py'))
              except ImportError as err:
                  log.exception(err)
                  log.error('Unable to import extra-module "%s"', mod)
  
      for mod in [m for m in so_mods.split(',') if m]:
          try:
              locals()[mod] = __import__(mod)
              tops.append(locals()[mod].__file__)
          except ImportError as err:
              log.exception(err)
              log.error('Unable to import so-module "%s"', mod)
  
      return tops