From 6600d2af20fc8df1765fbc68283de2a4da17e190 Mon Sep 17 00:00:00 2001 From: William Boman Date: Wed, 16 Nov 2022 19:59:10 +0100 Subject: feat(pip): add setting to upgrade pip before installing packages (#671) Closes #616. --- lua/mason-core/managers/pip3/init.lua | 12 ++++++++++++ lua/mason/settings.lua | 5 ++++- 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'lua') diff --git a/lua/mason-core/managers/pip3/init.lua b/lua/mason-core/managers/pip3/init.lua index 67f70a89..aeca0ce0 100644 --- a/lua/mason-core/managers/pip3/init.lua +++ b/lua/mason-core/managers/pip3/init.lua @@ -64,6 +64,18 @@ function M.install(packages) Optional.of_nilable(executable) :if_present(function() + if settings.current.pip.upgrade_pip then + ctx.spawn.python { + "-m", + "pip", + "--disable-pip-version-check", + "install", + "-U", + settings.current.pip.install_args, + "pip", + with_paths = { M.venv_path(ctx.cwd:get()) }, + } + end ctx.spawn.python { "-m", "pip", diff --git a/lua/mason/settings.lua b/lua/mason/settings.lua index 4322988f..9bdc0f9c 100644 --- a/lua/mason/settings.lua +++ b/lua/mason/settings.lua @@ -15,6 +15,9 @@ local DEFAULT_SETTINGS = { PATH = "prepend", pip = { + -- Whether to upgrade pip to the latest version in the virtual environment before installing packages. + upgrade_pip = false, + -- These args will be added to `pip install` calls. Note that setting extra args might impact intended behavior -- and is not recommended. -- @@ -92,7 +95,7 @@ M.current = M._DEFAULT_SETTINGS ---@param opts MasonSettings function M.set(opts) - M.current = vim.tbl_deep_extend("force", M.current, opts) + M.current = vim.tbl_deep_extend("force", vim.deepcopy(M.current), opts) end return M -- cgit v1.2.3-70-g09d2