Skip to main content

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


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.1.2.dev0.tar.gz (30.7 kB view details)

Uploaded Source

Built Distribution

pip4a-0.1.2.dev0-py3-none-any.whl (23.1 kB view details)

Uploaded Python 3

File details

Details for the file pip4a-0.1.2.dev0.tar.gz.

File metadata

  • Download URL: pip4a-0.1.2.dev0.tar.gz
  • Upload date:
  • Size: 30.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for pip4a-0.1.2.dev0.tar.gz
Algorithm Hash digest
SHA256 a13343928c16e673c2efdbe0719c061b2d7b56a4ef6b003a9effdbcee79cde83
MD5 5de9d99b099b7c18bba7b0e550c30c23
BLAKE2b-256 2d71e0fbc12f0bd925e1a8a334d363f1c04ca1a38049b6f6ac32ebbd74b45110

See more details on using hashes here.

File details

Details for the file pip4a-0.1.2.dev0-py3-none-any.whl.

File metadata

  • Download URL: pip4a-0.1.2.dev0-py3-none-any.whl
  • Upload date:
  • Size: 23.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for pip4a-0.1.2.dev0-py3-none-any.whl
Algorithm Hash digest
SHA256 a9bcb3bde5130046877d46516bb7cfe856cc822ba3625f145432c00ed0385c5c
MD5 fcfd62732606a1102d0b99462728f02e
BLAKE2b-256 c63d72219362e364ab3ac3a294cca820e259e370869902d584e063c2934ebd88

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page