def _download_and_link_entity(long_resource_name, entity_name, language, compatibility, pip_args): full_resource_name = long_resource_name + "_" + language version = get_resources_version(full_resource_name, entity_name, compatibility) entity_alias = get_builtin_entity_shortname(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)
def _download_and_link(resource_alias, resource_fullname, compatibility, pip_args, verbose): version = get_resources_version(resource_fullname, resource_alias, compatibility) url_tail = '{r}-{v}/{r}-{v}.tar.gz#egg={r}=={v}'.format( r=resource_fullname, v=version) download_url = __about__.__download_url__ + '/' + url_tail exit_code = install_remote_package(download_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(resource_fullname) link_path, resources_dir = link_resources(resource_fullname, resource_alias, force=True, resources_path=package_path) if verbose: pretty_print("%s --> %s" % (str(resources_dir), str(link_path)), "You can now load the resources via " "snips_nlu.load_resources('%s')" % resource_alias, title="Linking successful", level=PrettyPrintLevel.SUCCESS) except: # pylint:disable=bare-except pretty_print( "Creating a shortcut link for '{r}' didn't work.\nYou can " "still load the resources using the full package name: " "snips_nlu.load_resources('{n}')".format(r=resource_alias, n=resource_fullname), title="The language resources were successfully downloaded, " "however linking failed.", level=PrettyPrintLevel.WARNING)
def _download_and_link(resource_alias, resource_fullname, compatibility, pip_args, verbose): import sys from snips_nlu import __about__ from snips_nlu.cli.link import link_resources from snips_nlu.cli.utils import ( PrettyPrintLevel, get_resources_version, install_remote_package, pretty_print) from snips_nlu.common.utils import get_package_path version = get_resources_version(resource_fullname, resource_alias, compatibility) url_tail = '{r}-{v}/{r}-{v}.tar.gz#egg={r}=={v}'.format( r=resource_fullname, v=version) download_url = __about__.__download_url__ + '/' + url_tail exit_code = install_remote_package(download_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(resource_fullname) link_path, resources_dir = link_resources( resource_fullname, resource_alias, force=True, resources_path=package_path) if verbose: pretty_print("%s --> %s" % (str(resources_dir), str(link_path)), title="Linking successful", level=PrettyPrintLevel.SUCCESS) except OSError as e: # pylint:disable=bare-except pretty_print( "Creating a shortcut link for '%s' didn't work: %s" % (resource_alias, repr(e)), title="The language resources were successfully downloaded, " "however linking failed.", level=PrettyPrintLevel.ERROR)