4
__author__ = "Jorge Niedbalski <jorge.niedbalski@canonical.com>"
6
from charmhelpers.fetch import apt_install
7
from charmhelpers.core.hookenv import log
10
from pip import main as pip_execute
12
apt_install('python-pip')
13
from pip import main as pip_execute
16
def parse_options(given, available):
17
"""Given a set of options, check if available"""
18
for key, value in given.items():
20
yield "--{0}={1}".format(key, value)
23
def pip_install_requirements(requirements, **options):
24
"""Install a requirements file """
27
available_options = ('proxy', 'src', 'log', )
28
for option in parse_options(options, available_options):
29
command.append(option)
31
command.append("-r {0}".format(requirements))
32
log("Installing from file: {} with options: {}".format(requirements,
37
def pip_install(package, fatal=False, **options):
38
"""Install a python package"""
41
available_options = ('proxy', 'src', 'log', "index-url", )
42
for option in parse_options(options, available_options):
43
command.append(option)
45
if isinstance(package, list):
46
command.extend(package)
48
command.append(package)
50
log("Installing {} package with options: {}".format(package,
55
def pip_uninstall(package, **options):
56
"""Uninstall a python package"""
57
command = ["uninstall", "-q", "-y"]
59
available_options = ('proxy', 'log', )
60
for option in parse_options(options, available_options):
61
command.append(option)
63
if isinstance(package, list):
64
command.extend(package)
66
command.append(package)
68
log("Uninstalling {} package with options: {}".format(package,
74
"""Returns the list of current python installed packages
76
return pip_execute(["list"])