mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
[PR #6308/f93a1bf5 backport][stable-6] pipx: Add support for system_site_packages (#6311)
pipx: Add support for system_site_packages (#6308)
* pipx: Add support for system_site_packages
* Add changelog fragment
(cherry picked from commit f93a1bf5ec
)
Co-authored-by: Paul Aurich <paul@darkrain42.org>
This commit is contained in:
parent
24378fd944
commit
44e4b1d202
4 changed files with 41 additions and 2 deletions
|
@ -0,0 +1,2 @@
|
||||||
|
minor_changes:
|
||||||
|
- pipx - add ``system_site_packages`` parameter to give application access to system-wide packages (https://github.com/ansible-collections/community.general/pull/6308).
|
|
@ -39,6 +39,7 @@ def pipx_runner(module, command, **kwargs):
|
||||||
include_injected=fmt.as_bool("--include-injected"),
|
include_injected=fmt.as_bool("--include-injected"),
|
||||||
index_url=fmt.as_opt_val('--index-url'),
|
index_url=fmt.as_opt_val('--index-url'),
|
||||||
python=fmt.as_opt_val('--python'),
|
python=fmt.as_opt_val('--python'),
|
||||||
|
system_site_packages=fmt.as_bool("--system-site-packages"),
|
||||||
_list=fmt.as_fixed(['list', '--include-injected', '--json']),
|
_list=fmt.as_fixed(['list', '--include-injected', '--json']),
|
||||||
editable=fmt.as_bool("--editable"),
|
editable=fmt.as_bool("--editable"),
|
||||||
pip_args=fmt.as_opt_val('--pip-args'),
|
pip_args=fmt.as_opt_val('--pip-args'),
|
||||||
|
|
|
@ -89,6 +89,13 @@ options:
|
||||||
- Python version to be used when creating the application virtual environment. Must be 3.6+.
|
- Python version to be used when creating the application virtual environment. Must be 3.6+.
|
||||||
- Only used when I(state=install), I(state=latest), I(state=reinstall), or I(state=reinstall_all).
|
- Only used when I(state=install), I(state=latest), I(state=reinstall), or I(state=reinstall_all).
|
||||||
type: str
|
type: str
|
||||||
|
system_site_packages:
|
||||||
|
description:
|
||||||
|
- Give application virtual environment access to the system site-packages directory.
|
||||||
|
- Only used when I(state=install) or I(state=latest).
|
||||||
|
type: bool
|
||||||
|
default: false
|
||||||
|
version_added: 6.6.0
|
||||||
executable:
|
executable:
|
||||||
description:
|
description:
|
||||||
- Path to the C(pipx) installed in the system.
|
- Path to the C(pipx) installed in the system.
|
||||||
|
@ -176,6 +183,7 @@ class PipX(StateModuleHelper):
|
||||||
include_injected=dict(type='bool', default=False),
|
include_injected=dict(type='bool', default=False),
|
||||||
index_url=dict(type='str'),
|
index_url=dict(type='str'),
|
||||||
python=dict(type='str'),
|
python=dict(type='str'),
|
||||||
|
system_site_packages=dict(type='bool', default=False),
|
||||||
executable=dict(type='path'),
|
executable=dict(type='path'),
|
||||||
editable=dict(type='bool', default=False),
|
editable=dict(type='bool', default=False),
|
||||||
pip_args=dict(type='str'),
|
pip_args=dict(type='str'),
|
||||||
|
@ -243,7 +251,7 @@ class PipX(StateModuleHelper):
|
||||||
def state_install(self):
|
def state_install(self):
|
||||||
if not self.vars.application or self.vars.force:
|
if not self.vars.application or self.vars.force:
|
||||||
self.changed = True
|
self.changed = True
|
||||||
with self.runner('state index_url install_deps force python editable pip_args name_source', check_mode_skip=True) as ctx:
|
with self.runner('state index_url install_deps force python system_site_packages editable pip_args name_source', check_mode_skip=True) as ctx:
|
||||||
ctx.run(name_source=[self.vars.name, self.vars.source])
|
ctx.run(name_source=[self.vars.name, self.vars.source])
|
||||||
self._capture_results(ctx)
|
self._capture_results(ctx)
|
||||||
|
|
||||||
|
@ -304,7 +312,7 @@ class PipX(StateModuleHelper):
|
||||||
def state_latest(self):
|
def state_latest(self):
|
||||||
if not self.vars.application or self.vars.force:
|
if not self.vars.application or self.vars.force:
|
||||||
self.changed = True
|
self.changed = True
|
||||||
with self.runner('state index_url install_deps force python editable pip_args name_source', check_mode_skip=True) as ctx:
|
with self.runner('state index_url install_deps force python system_site_packages editable pip_args name_source', check_mode_skip=True) as ctx:
|
||||||
ctx.run(state='install', name_source=[self.vars.name, self.vars.source])
|
ctx.run(state='install', name_source=[self.vars.name, self.vars.source])
|
||||||
self._capture_results(ctx)
|
self._capture_results(ctx)
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,34 @@
|
||||||
- uninstall_tox is changed
|
- uninstall_tox is changed
|
||||||
- "'tox' not in uninstall_tox.application"
|
- "'tox' not in uninstall_tox.application"
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
- name: install application tox with system-site-packages
|
||||||
|
community.general.pipx:
|
||||||
|
name: tox
|
||||||
|
system_site_packages: true
|
||||||
|
register: install_tox
|
||||||
|
|
||||||
|
- name: get raw pipx_info
|
||||||
|
community.general.pipx_info:
|
||||||
|
include_raw: true
|
||||||
|
register: pipx_info_raw
|
||||||
|
|
||||||
|
- name: uninstall application tox
|
||||||
|
community.general.pipx:
|
||||||
|
state: absent
|
||||||
|
name: tox
|
||||||
|
register: uninstall_tox
|
||||||
|
|
||||||
|
- name: check assertions tox
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- install_tox is changed
|
||||||
|
- "'tox' in install_tox.application"
|
||||||
|
- pipx_info_raw is not changed
|
||||||
|
- "'--system-site-packages' in pipx_info_raw.raw_output.venvs.tox.metadata.venv_args"
|
||||||
|
- uninstall_tox is changed
|
||||||
|
- "'tox' not in uninstall_tox.application"
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
- name: install application tox 3.24.0
|
- name: install application tox 3.24.0
|
||||||
community.general.pipx:
|
community.general.pipx:
|
||||||
|
|
Loading…
Reference in a new issue