Skip to main content

Command line utility to run a command, installing needed python packages if it is not installed

Project description

pypirun

Build Status Codestyle Code Coverage Wheel Version Downloads License

The pypirun command is a utility that allows running a python command line script from a python package, even if it is not installed.

Table of contents

Background

This utility was written to allow CI/CD Pipeline templates to be able to function properly when run in docker containers that did not have the python utility needed already installed.

This allows the templates to continue to work in different docker containers without requiring redundant steps to install the needed python packages.

Install

This package can be installed using the Python pip package manager.

In order to install this package the python environment must have:

  • Python 3.6 or newer
  • pip version 8.1.1 or higher
  • setuptools 40.0.0 or higher
$ pip install pypirun

Usage

usage: pypirun [-h] [--interpreter INTERPRETER] [--debug] [--always_install] package command ...

positional arguments:
  package                    Comma seperated list of packages to install, this list cannot contain spaces
  command                    Command to run

optional arguments:
  -h, --help                 show this help message and exit
  --interpreter INTERPRETER  Python interpreter to use
  --debug                    Enable debug output
  --always_install           Install the command even if it exists in the path

Everything on the command line after the package name is executed in an environment with the package installed and on 
the PATH.  As a result, the package and command must come after the optional arguments.

By default pypirun will run the already installed command from the $PATH in the environment if it is found.  The
--always_install flag will force it to install and run the command.

Examples

Run the serviceping utility from the python serviceping package

The following will run the command serviceping -c 1 yahoo.com from the serviceping package:

dhubbard@mac:~$ pypirun serviceping serviceping -c 1 yahoo.com
SERVICEPING yahoo.com:80 (72.30.35.10:80).
from yahoo.com:80 (72.30.35.10:80): time=65.50 ms                                                                                                                                                                                                                 --- yahoo.com ping statistics ---
1 packages transmitted, 1 received, 0.0% package loss, time 73.038ms
rtt min/avg/max/dev = 65.50/65.50/65.50/0.00 ms

Screwdriver V4 pypirun command

The pypirun package publishes a screwdriver v4 shared command called python/pypirun.

This command will set up python if it is not installed and install and run a the pypirun command line utility.

The following will run the command serviceping -c 1 yahoo.com from the serviceping package using the screwdriver sd-cmd:

sd-cmd python/pypirun@latest serviceping serviceping -c 1 yahoo.com

Contribute

Please refer to the contributing.md file for information about how to get involved. We welcome issues, questions, and pull requests. Pull Requests are welcome.

Maintainers

Dwight Hubbard: dhubbard@verizonmedia.com

License

This project is licensed under the terms of the BSD open source license. Please refer to LICENSE for the full terms.

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

pypirun-1.0.126091.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pypirun-1.0.126091-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file pypirun-1.0.126091.tar.gz.

File metadata

  • Download URL: pypirun-1.0.126091.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for pypirun-1.0.126091.tar.gz
Algorithm Hash digest
SHA256 710f4c27d9d742bfb0c7dc00d99aab51f2b22910b1991ceb51dea155e1572768
MD5 6e2951e298bff9d12b7bcd6b6ea0b1b0
BLAKE2b-256 73ca8c11253c7db6a185d5d016455d0cf690dbc3cddfe4ef21b7d07f2fc8b6dd

See more details on using hashes here.

File details

Details for the file pypirun-1.0.126091-py3-none-any.whl.

File metadata

  • Download URL: pypirun-1.0.126091-py3-none-any.whl
  • Upload date:
  • Size: 8.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for pypirun-1.0.126091-py3-none-any.whl
Algorithm Hash digest
SHA256 dd93905a400046ed4392ff7e19017b6974ddb282301a1504e4ff01f344d34bea
MD5 e0b913b9dd6af6d1de5b5c3367c06263
BLAKE2b-256 0412eb7d898102f20435f33ecd3ffbee2098fedbcf0814de8325edb6f4b54611

See more details on using hashes here.

Supported by

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