diff --git a/tljh/hooks.py b/tljh/hooks.py index ddb1f3f..0a94a62 100644 --- a/tljh/hooks.py +++ b/tljh/hooks.py @@ -15,6 +15,14 @@ def tljh_extra_user_conda_packages(): pass +@hookspec +def tljh_extra_user_conda_channels(): + """ + Return a list of conda channels to be used during user environment installation. + """ + pass + + @hookspec def tljh_extra_user_pip_packages(): """ diff --git a/tljh/installer.py b/tljh/installer.py index 8da932c..baef3ef 100644 --- a/tljh/installer.py +++ b/tljh/installer.py @@ -370,13 +370,16 @@ def run_plugin_actions(plugin_manager): # Install conda packages conda_packages = list(set(itertools.chain(*hook.tljh_extra_user_conda_packages()))) + conda_channels = list(itertools.chain(*hook.tljh_extra_user_conda_channels())) + if len(conda_channels) == 0: + conda_channels = ('conda-forge',) if conda_packages: logger.info( "Installing {} user conda packages collected from plugins: {}".format( len(conda_packages), " ".join(conda_packages) ) ) - conda.ensure_conda_packages(USER_ENV_PREFIX, conda_packages) + conda.ensure_conda_packages(USER_ENV_PREFIX, conda_packages, conda_channels=conda_channels) # Install pip packages user_pip_packages = list(set(itertools.chain(*hook.tljh_extra_user_pip_packages())))