A pip-like ansible collection installer.
Project description
pip4a
A pip-like install for ansible collections.
Features
- Promotes an "ephemeral" development approach
- Ensures the current development environment is isolated
- Install all collection python requirements
- Install all collection test requirements
- Checks for missing system packages
- Symlinks the current collection into the current python interpreter's site-packages
- Install all collection collection dependencies into the current python interpreter's site-packages
By placing collections into the python site-packages directory they are discoverable by ansible as well as python and pytest.
Usage
Setting up a development environment
$ git clone <collection_repo>
$ cd collection_repo
$ python -m venv venv
$ source venv/bin/activate
$ pip install pip4a
$ pip4a install -e .[test]
INFO Found collection name: ansible.scm from /home/bthornto/github/ansible.scm/galaxy.yml.
INFO Requirements file /home/bthornto/github/ansible.scm/requirements.txt is empty, skipping
INFO Installing python requirements from /home/bthornto/github/ansible.scm/test-requirements.txt
INFO Initializing build directory: /home/bthornto/github/ansible.scm/build
INFO Running ansible-galaxy to build collection.
INFO Running ansible-galaxy to install collection and it's dependencies.
INFO Removing installed /home/bthornto/github/ansible.scm/venv/lib64/python3.11/site-packages/ansible_collections/ansible/scm
INFO Symlinking /home/bthornto/github/ansible.scm/venv/lib64/python3.11/site-packages/ansible_collections/ansible/scm to /home/bthornto/github/ansible.scm
Tearing down the development environment
$ pip4a uninstall ansible.scm
INFO Found collection name: ansible.scm from /home/bthornto/github/ansible.scm/galaxy.yml.
INFO Requirements file /home/bthornto/github/ansible.scm/requirements.txt is empty, skipping
INFO Uninstalling python requirements from /home/bthornto/github/ansible.scm/test-requirements.txt
INFO Removed ansible.utils: /home/bthornto/github/ansible.scm/venv/lib64/python3.11/site-packages/ansible_collections/ansible/utils
INFO Removed ansible.utils*.info: /home/bthornto/github/ansible.scm/venv/lib64/python3.11/site-packages/ansible_collections/ansible.utils-2.10.3.info
INFO Removed ansible.scm: /home/bthornto/github/ansible.scm/venv/lib64/python3.11/site-packages/ansible_collections/ansible/scm
INFO Removed collection namespace root: /home/bthornto/github/ansible.scm/venv/lib64/python3.11/site-packages/ansible_collections/ansible
INFO Removed collection root: /home/bthornto/github/ansible.scm/venv/lib64/python3.11/site-packages/ansible_collections
Help
$ pip4a --help
usage: pip4a [-h] [--verbose] {install,uninstall} ...
A pip-like ansible collection installer.
options:
-h, --help show this help message and exit
--verbose Increase output verbosity.
subcommands:
valid subcommands
{install,uninstall} additional help
$ pip4a install --help
usage: pip4a install [-h] [-e] collection_specifier
positional arguments:
collection_specifier Collection to install.
options:
-h, --help show this help message and exit
-e, --editable Install editable.
Usage:
pip4a install .
pip4a install -e .
pip4a install -e .[test]
python -m pip4a install ansible.utils
$ pip4a uninstall --help
usage: pip4a uninstall [-h] collection_specifier
positional arguments:
collection_specifier Collection to uninstall.
options:
-h, --help show this help message and exit
Usage:
pip4a install .
pip4a install -e .
pip4a install -e .[test]
python -m pip4a install ansible.utils```
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pip4a-0.2.2.tar.gz
(31.9 kB
view details)
Built Distribution
pip4a-0.2.2-py3-none-any.whl
(24.9 kB
view details)
File details
Details for the file pip4a-0.2.2.tar.gz
.
File metadata
- Download URL: pip4a-0.2.2.tar.gz
- Upload date:
- Size: 31.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 57d81392a0b7e48bf7ec343258bba42a966f2e9ae641d7ad2128ad482a70a260 |
|
MD5 | 863dc05efde1f8697f0599b4c0a4ea23 |
|
BLAKE2b-256 | 1db1ca4189fe44db0331d3c98fca12f342c3a74f71e7ce95fb1e90c23e2a414a |
File details
Details for the file pip4a-0.2.2-py3-none-any.whl
.
File metadata
- Download URL: pip4a-0.2.2-py3-none-any.whl
- Upload date:
- Size: 24.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 364138ba964c80c8349e768ad9acf532da8f52a754ea4f31ce0f0b50ecbfbab3 |
|
MD5 | 641e3509d9d57c9a2c25c4ea850c9c1d |
|
BLAKE2b-256 | 34f5cd0fae08f2cdc2c4b1f919ff2d501b9a4085a4fc1bb9b3452a9e17e3be3c |