code: def _download_and_link_entity(
      long_resource_name, entity_name, language, compatibility, pip_args
  ):
      import sys
      from builtins import str
      from snips_nlu_parsers import get_builtin_entity_shortname
      from snips_nlu.cli.link import link_resources
      from snips_nlu.cli.utils import (
          PrettyPrintLevel,
          get_json,
          get_resources_version,
          install_remote_package,
          pretty_print,
      )
      from snips_nlu.common.utils import get_package_path
  
      full_resource_name = long_resource_name + "_" + language
      version = get_resources_version(
          full_resource_name, entity_name, compatibility
      )
      entity_alias = get_builtin_entity_shortname(
          str(entity_name)
      ).lower()
      entity_base_url = _get_entity_base_url(
          language, entity_alias, version
      )
      latest = get_json(
          entity_base_url + "/latest", "Latest entity resources version"
      )
      latest_url = "{b}/{n}#egg={r}=={v}".format(
          b=entity_base_url,
          n=latest["filename"],
          r=full_resource_name,
          v=latest["version"],
      )
      exit_code = install_remote_package(latest_url, pip_args)
      if exit_code != 0:
          sys.exit(exit_code)
      try:
          # Get package path here because link uses
          # pip.get_installed_distributions() to check if the resource is a
          # package, which fails if the resource was just installed via
          # subprocess
          package_path = get_package_path(full_resource_name)
          link_alias = entity_alias + "_" + language
          link_path, resources_dir = link_resources(
              full_resource_name,
              link_alias,
              force=True,
              resources_path=package_path,
          )
          pretty_print(
              "%s --> %s" % (str(resources_dir), str(link_path)),
              "You can now use the '%s' builtin entity" % entity_name,
              title="Linking successful",
              level=PrettyPrintLevel.SUCCESS,
          )
      except:  # pylint:disable=bare-except
          pretty_print(
              "Creating a shortcut link for '%s' didn't work."
              % entity_name,
              title="The builtin entity resources were successfully downloaded, "
              "however linking failed.",
              level=PrettyPrintLevel.ERROR,
          )
  
file_path: snips-nlu/snips_nlu/cli/download_entity.py
imports: from __future__ import print_function, unicode_literals
label_desc: Use image node_id 7 for calling a global function with example usage: _download_and_link_entity(long_resource_name, entity_name, language, compatibility, pip_args) without return types