Пример #1
0
 def test_build_pip_install_options(self):
     self.assertEquals(pip_utils.build_pip_install_options(), [])
     self.assertEquals(pip_utils.build_pip_install_options(index_url="foo"),
                       ["--index-url", "foo"])
     self.assertEquals(
         pip_utils.build_pip_install_options(extra_index_url="foo"), [])
     self.assertEquals(
         pip_utils.build_pip_install_options(index_url="foo",
                                             extra_index_url="bar"),
         ["--index-url", "foo", "--extra-index-url", "bar"])
     self.assertEquals(pip_utils.build_pip_install_options(upgrade=True),
                       ["--upgrade"])
     self.assertEquals(pip_utils.build_pip_install_options(verbose=True),
                       ["--verbose"])
     self.assertEquals(
         pip_utils.build_pip_install_options(force_reinstall=True),
         ["--force-reinstall"])
     self.assertEquals(
         pip_utils.build_pip_install_options(target_dir="target dir"),
         ["-t", "target dir"])
     self.assertEquals(
         pip_utils.build_pip_install_options(target_dir="target dir"),
         ["-t", "target dir"])
     self.assertEquals(
         pip_utils.build_pip_install_options(
             insecure_installs=["foo", "bar"]), [
                 "--allow-unverified", "foo", "--allow-external", "foo",
                 "--allow-unverified", "bar", "--allow-external", "bar"
             ])
def _do_install_dependency(logger, project, dependency, upgrade, force_reinstall, target_dir, log_file):
    batch = isinstance(dependency, collections.Iterable)

    pip_command_line = list()
    pip_command_line.extend(PIP_EXEC_STANZA)
    pip_command_line.append("install")
    pip_command_line.extend(build_pip_install_options(project.get_property("install_dependencies_index_url"),
                                                      project.get_property("install_dependencies_extra_index_url"),
                                                      upgrade,
                                                      project.get_property(
                                                          "install_dependencies_insecure_installation"),
                                                      force_reinstall,
                                                      target_dir,
                                                      project.get_property("verbose"),
                                                      project.get_property("install_dependencies_trusted_host")
                                                      ))
    pip_command_line.extend(as_pip_install_target(dependency))
    logger.debug("Invoking pip: %s", pip_command_line)
    exit_code = execute_command(pip_command_line, log_file, env=os.environ, shell=False)

    if exit_code != 0:
        if batch:
            dependency_name = " batch dependencies."
        else:
            dependency_name = " dependency '%s'." % dependency.name

        if project.get_property("verbose"):
            print_file_content(log_file)
            raise BuildFailedException("Unable to install%s" % dependency_name)
        else:
            raise BuildFailedException("Unable to install%s See %s for details.",
                                       dependency_name,
                                       log_file)
Пример #3
0
def render_docker_buildfile(project, build_image):
    # type: (Project, str) -> str

    dist_file = get_dist_file(project)
    install_options = pip_utils.build_pip_install_options(
        extra_index_url=project.get_property(
            "install_dependencies_extra_index_url"))
    default_package_cmd = "pip install " + " ".join(
        install_options) + " {} ".format(dist_file)
    template_values = {
        "build_image":
        build_image,
        "dist_file":
        dist_file,
        "maintainer_name":
        project.get_property("docker_package_image_maintainer", "anonymous"),
        "prepare_env_cmd":
        project.get_property(
            "docker_package_prepare_env_cmd",
            "echo 'empty prepare_env_cmd installing into python'"),
        "package_cmd":
        project.get_property("docker_package_package_cmd", default_package_cmd)
    }

    return DOCKER_IMAGE_TEMPLATE.substitute(template_values)
Пример #4
0
def _do_install_dependency(logger, project, dependency, upgrade,
                           force_reinstall, target_dir, log_file):
    batch = isinstance(dependency, collections.Iterable)

    pip_command_line = list()
    pip_command_line.extend(PIP_EXEC_STANZA)
    pip_command_line.append("install")
    pip_command_line.extend(
        build_pip_install_options(
            project.get_property("install_dependencies_index_url"),
            project.get_property("install_dependencies_extra_index_url"),
            upgrade,
            project.get_property("install_dependencies_insecure_installation"),
            force_reinstall, target_dir, project.get_property("verbose"),
            project.get_property("install_dependencies_trusted_host")))
    pip_command_line.extend(as_pip_install_target(dependency))
    logger.debug("Invoking pip: %s", pip_command_line)
    exit_code = execute_command(pip_command_line,
                                log_file,
                                env=os.environ,
                                shell=False)

    if exit_code != 0:
        if batch:
            dependency_name = " batch dependencies."
        else:
            dependency_name = " dependency '%s'." % dependency.name

        if project.get_property("verbose"):
            print_file_content(log_file)
            raise BuildFailedException("Unable to install%s" % dependency_name)
        else:
            raise BuildFailedException(
                "Unable to install%s See %s for details.", dependency_name,
                log_file)
Пример #5
0
 def test_build_pip_install_options(self):
     self.assertEquals(pip_utils.build_pip_install_options(), [])
     self.assertEquals(pip_utils.build_pip_install_options(index_url="foo"), ["--index-url", "foo"])
     self.assertEquals(pip_utils.build_pip_install_options(extra_index_url="foo"), [])
     self.assertEquals(pip_utils.build_pip_install_options(index_url="foo", extra_index_url="bar"),
                       ["--index-url", "foo", "--extra-index-url", "bar"])
     self.assertEquals(pip_utils.build_pip_install_options(upgrade=True), ["--upgrade"])
     self.assertEquals(pip_utils.build_pip_install_options(verbose=True), ["--verbose"])
     self.assertEquals(pip_utils.build_pip_install_options(force_reinstall=True), ["--force-reinstall"])
     self.assertEquals(pip_utils.build_pip_install_options(target_dir="target dir"), ["-t", "target dir"])
     self.assertEquals(pip_utils.build_pip_install_options(target_dir="target dir"), ["-t", "target dir"])
     self.assertEquals(pip_utils.build_pip_install_options(insecure_installs=["foo", "bar"]), [
         "--allow-unverified", "foo",
         "--allow-external", "foo",
         "--allow-unverified", "bar",
         "--allow-external", "bar"
     ])
def install_dependency(logger, project, dependency):
    url = getattr(dependency, "url", None)
    logger.info("Installing dependency '%s'%s", dependency.name,
                " from %s" % url if url else "")
    log_file = project.expand_path("$dir_install_logs", dependency.name)
    log_file = re.sub(r'<|>|=', '_', log_file)

    target_dir = None
    try:
        target_dir = project.get_property(
            "install_dependencies_local_mapping")[dependency.name]
    except KeyError:
        pass

    pip_command_line = list()
    pip_command_line.append(PIP_EXECUTABLE)
    pip_command_line.append("install")
    pip_command_line.extend(
        build_pip_install_options(
            project.get_property("install_dependencies_index_url"),
            project.get_property("install_dependencies_extra_index_url"),
            project.get_property("install_dependencies_upgrade"),
            project.get_property("install_dependencies_insecure_installation"),
            True if url else False, target_dir,
            project.get_property("verbose")))
    pip_command_line.extend(as_pip_install_target(dependency))
    logger.debug("Invoking pip: %s", pip_command_line)
    exit_code = execute_command(pip_command_line,
                                log_file,
                                env=os.environ,
                                shell=False)

    if exit_code != 0:
        if project.get_property("verbose"):
            print_file_content(log_file)
            raise BuildFailedException("Unable to install dependency '%s'.",
                                       dependency.name)
        else:
            raise BuildFailedException(
                "Unable to install dependency '%s'. See %s for details.",
                getattr(dependency, "name", dependency), log_file)
def install_dependency(logger, project, dependency):
    url = getattr(dependency, "url", None)
    logger.info("Installing dependency '%s'%s", dependency.name,
                " from {0!s}".format(url) if url else "")
    log_file = project.expand_path("$dir_install_logs", dependency.name)
    log_file = re.sub(r'<|>|=', '_', log_file)

    target_dir = None
    try:
        target_dir = project.get_property("install_dependencies_local_mapping")[dependency.name]
    except KeyError:
        pass

    pip_command_line = list()
    pip_command_line.extend(PIP_EXEC_STANZA)
    pip_command_line.append("install")
    pip_command_line.extend(build_pip_install_options(project.get_property("install_dependencies_index_url"),
                                                      project.get_property("install_dependencies_extra_index_url"),
                                                      project.get_property("install_dependencies_upgrade"),
                                                      project.get_property(
                                                          "install_dependencies_insecure_installation"),
                                                      True if url else False,
                                                      target_dir,
                                                      project.get_property("verbose"),
                                                      project.get_property("install_dependencies_trusted_host")
                                                      ))
    pip_command_line.extend(as_pip_install_target(dependency))
    logger.debug("Invoking pip: %s", pip_command_line)
    exit_code = execute_command(pip_command_line, log_file, env=os.environ, shell=False)

    if exit_code != 0:
        if project.get_property("verbose"):
            print_file_content(log_file)
            raise BuildFailedException("Unable to install dependency '%s'.", dependency.name)
        else:
            raise BuildFailedException("Unable to install dependency '%s'. See %s for details.",
                                       getattr(dependency, "name", dependency),
                                       log_file)
Пример #8
0
 def test_build_pip_install_options(self):
     self.assertEqual(pip_utils.build_pip_install_options(), [])
     self.assertEqual(pip_utils.build_pip_install_options(index_url="foo"), ["--index-url", "foo"])
     self.assertEqual(pip_utils.build_pip_install_options(extra_index_url="foo"), ["--extra-index-url", "foo"])
     self.assertEqual(pip_utils.build_pip_install_options(index_url="foo", extra_index_url="bar"),
                      ["--index-url", "foo", "--extra-index-url", "bar"])
     self.assertEqual(pip_utils.build_pip_install_options(extra_index_url=("foo", "bar")),
                      ["--extra-index-url", "foo", "--extra-index-url", "bar"])
     self.assertEqual(pip_utils.build_pip_install_options(trusted_host="foo"),
                      ["--trusted-host", "foo"])
     self.assertEqual(pip_utils.build_pip_install_options(trusted_host=("foo", "bar")),
                      ["--trusted-host", "foo", "--trusted-host", "bar"])
     self.assertEqual(pip_utils.build_pip_install_options(upgrade=True),
                      ["--upgrade"] if pip_version < "9.0" else
                      ["--upgrade", "--upgrade-strategy", "only-if-needed"])
     self.assertEqual(pip_utils.build_pip_install_options(upgrade=True, eager_upgrade=True),
                      ["--upgrade"] if pip_version < "9.0" else
                      ["--upgrade", "--upgrade-strategy", "eager"])
     self.assertEqual(pip_utils.build_pip_install_options(verbose=True), ["--verbose"])
     self.assertEqual(pip_utils.build_pip_install_options(force_reinstall=True), ["--force-reinstall"])
     self.assertEqual(pip_utils.build_pip_install_options(target_dir="target dir"), ["-t", "target dir"])
     self.assertEqual(pip_utils.build_pip_install_options(target_dir="target dir"), ["-t", "target dir"])
     self.assertEqual(pip_utils.build_pip_install_options(constraint_file="constraint file"),
                      ["-c", "constraint file"])
     self.assertEqual(pip_utils.build_pip_install_options(insecure_installs=["foo", "bar"]), [
         "--allow-unverified", "foo",
         "--allow-external", "foo",
         "--allow-unverified", "bar",
         "--allow-external", "bar"
     ])
Пример #9
0
 def test_build_pip_install_options(self):
     self.assertEqual(pip_utils.build_pip_install_options(), [])
     self.assertEqual(pip_utils.build_pip_install_options(index_url="foo"),
                      ["--index-url", "foo"])
     self.assertEqual(
         pip_utils.build_pip_install_options(extra_index_url="foo"),
         ["--extra-index-url", "foo"])
     self.assertEqual(
         pip_utils.build_pip_install_options(index_url="foo",
                                             extra_index_url="bar"),
         ["--index-url", "foo", "--extra-index-url", "bar"])
     self.assertEqual(
         pip_utils.build_pip_install_options(extra_index_url=("foo",
                                                              "bar")),
         ["--extra-index-url", "foo", "--extra-index-url", "bar"])
     self.assertEqual(
         pip_utils.build_pip_install_options(trusted_host="foo"),
         ["--trusted-host", "foo"])
     self.assertEqual(
         pip_utils.build_pip_install_options(trusted_host=("foo", "bar")),
         ["--trusted-host", "foo", "--trusted-host", "bar"])
     self.assertEqual(pip_utils.build_pip_install_options(upgrade=True),
                      ["--upgrade"] if pip_version < "9.0" else
                      ["--upgrade", "--upgrade-strategy", "only-if-needed"])
     self.assertEqual(
         pip_utils.build_pip_install_options(upgrade=True,
                                             eager_upgrade=True),
         ["--upgrade"] if pip_version < "9.0" else
         ["--upgrade", "--upgrade-strategy", "eager"])
     self.assertEqual(pip_utils.build_pip_install_options(verbose=True),
                      ["--verbose"])
     self.assertEqual(
         pip_utils.build_pip_install_options(force_reinstall=True),
         ["--force-reinstall"])
     self.assertEqual(
         pip_utils.build_pip_install_options(target_dir="target dir"),
         ["-t", "target dir"])
     self.assertEqual(
         pip_utils.build_pip_install_options(target_dir="target dir"),
         ["-t", "target dir"])
     self.assertEqual(
         pip_utils.build_pip_install_options(
             constraint_file="constraint file"), ["-c", "constraint file"])
     self.assertEqual(
         pip_utils.build_pip_install_options(
             insecure_installs=["foo", "bar"]), [
                 "--allow-unverified", "foo", "--allow-external", "foo",
                 "--allow-unverified", "bar", "--allow-external", "bar"
             ])