(user_requirements_txt_file)
Set up user conda environment with required packages
Set up user conda environment with required packages
Set up user conda environment with required packages
def ensure_user_environment(user_requirements_txt_file):
    """
    Set up user conda environment with required packages
    """
    logger.info("Setting up user environment...")

    miniconda_old_version = "4.5.4"
    miniconda_new_version = "4.7.10"
    # Install mambaforge using an installer from
    # https://github.com/conda-forge/miniforge/releases
    mambaforge_new_version = "4.10.3-7"
    # Check system architecture, set appropriate installer checksum
    if os.uname().machine == "aarch64":
        installer_sha256 = (
            "ac95f137b287b3408e4f67f07a284357b1119ee157373b788b34e770ef2392b2"
        )
    elif os.uname().machine == "x86_64":
        installer_sha256 = (
            "fc872522ec427fcab10167a93e802efaf251024b58cc27b084b915a9a73c4474"
        )
    # Check OS, set appropriate string for conda installer path
    if os.uname().sysname != "Linux":
        raise OSError("TLJH is only supported on Linux platforms.")
    # Then run `mamba --version` to get the conda and mamba versions
    # Keep these in sync with tests/test_conda.py::prefix
    mambaforge_conda_new_version = "4.10.3"
    mambaforge_mamba_version = "0.16.0"

    if conda.check_miniconda_version(USER_ENV_PREFIX, mambaforge_conda_new_version):
        conda_version = "4.10.3"
    elif conda.check_miniconda_version(USER_ENV_PREFIX, miniconda_new_version):
        conda_version = "4.8.1"
    elif conda.check_miniconda_version(USER_ENV_PREFIX, miniconda_old_version):
        conda_version = "4.5.8"
    # If no prior miniconda installation is found, we can install a newer version
    else:
        logger.info("Downloading & setting up user environment...")
        installer_url = "https://github.com/conda-forge/miniforge/releases/download/{v}/Mambaforge-{v}-Linux-{arch}.sh".format(
            v=mambaforge_new_version, arch=os.uname().machine
        )
        with conda.download_miniconda_installer(
            installer_url, installer_sha256
        ) as installer_path:
            conda.install_miniconda(installer_path, USER_ENV_PREFIX)
        conda_version = "4.10.3"

    conda.ensure_conda_packages(
        USER_ENV_PREFIX,
        [
            # Conda's latest version is on conda much more so than on PyPI.
            "conda==" + conda_version,
            "mamba==" + mambaforge_mamba_version,
        ],
    )

    conda.ensure_pip_requirements(
        USER_ENV_PREFIX,
        os.path.join(HERE, "requirements-base.txt"),
        upgrade=True,
    )

    if user_requirements_txt_file:
        # FIXME: This currently fails hard, should fail soft and not abort installer
        conda.ensure_pip_requirements(
            USER_ENV_PREFIX,
            user_requirements_txt_file,
            upgrade=True,
        )
def ensure_user_environment ( user_requirements_txt_file ) : logger . info ( "Setting up user environment..." ) miniconda_old_version = "4.5.4" miniconda_new_version = "4.7.10" # Install mambaforge using an installer from # https://github.com/conda-forge/miniforge/releases mambaforge_new_version = "4.10.3-7" # Check system architecture, set appropriate installer checksum if os . uname ( ) . machine == "aarch64" : installer_sha256 = ( "ac95f137b287b3408e4f67f07a284357b1119ee157373b788b34e770ef2392b2" ) elif os . uname ( ) . machine == "x86_64" : installer_sha256 = ( "fc872522ec427fcab10167a93e802efaf251024b58cc27b084b915a9a73c4474" ) # Check OS, set appropriate string for conda installer path if os . uname ( ) . sysname != "Linux" : raise OSError ( "TLJH is only supported on Linux platforms." ) # Then run `mamba --version` to get the conda and mamba versions # Keep these in sync with tests/test_conda.py::prefix mambaforge_conda_new_version = "4.10.3" mambaforge_mamba_version = "0.16.0" if conda . check_miniconda_version ( USER_ENV_PREFIX , mambaforge_conda_new_version ) : conda_version = "4.10.3" elif conda . check_miniconda_version ( USER_ENV_PREFIX , miniconda_new_version ) : conda_version = "4.8.1" elif conda . check_miniconda_version ( USER_ENV_PREFIX , miniconda_old_version ) : conda_version = "4.5.8" # If no prior miniconda installation is found, we can install a newer version else : logger . info ( "Downloading & setting up user environment..." ) installer_url = "https://github.com/conda-forge/miniforge/releases/download/{v}/Mambaforge-{v}-Linux-{arch}.sh" . format ( v = mambaforge_new_version , arch = os . uname ( ) . machine ) with conda . download_miniconda_installer ( installer_url , installer_sha256 ) as installer_path : conda . install_miniconda ( installer_path , USER_ENV_PREFIX ) conda_version = "4.10.3" conda . ensure_conda_packages ( USER_ENV_PREFIX , [ # Conda's latest version is on conda much more so than on PyPI. "conda==" + conda_version , "mamba==" + mambaforge_mamba_version , ] , ) conda . ensure_pip_requirements ( USER_ENV_PREFIX , os . path . join ( HERE , "requirements-base.txt" ) , upgrade = True , ) if user_requirements_txt_file : # FIXME: This currently fails hard, should fail soft and not abort installer conda . ensure_pip_requirements ( USER_ENV_PREFIX , user_requirements_txt_file , upgrade = True , )