You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
926 B
44 lines
926 B
4 years ago
|
# Imports
|
||
|
|
||
|
from .base import Command
|
||
|
|
||
|
# Exports
|
||
|
|
||
|
__all__ = (
|
||
|
"Pip",
|
||
|
"VirtualEnv",
|
||
|
)
|
||
|
|
||
|
# Classes
|
||
|
|
||
|
|
||
|
class Pip(Command):
|
||
|
|
||
|
def __init__(self, name, op="install", overlay=None, upgrade=False, venv=None, **kwargs):
|
||
|
if overlay is not None:
|
||
|
statement = overlay.get("python", op, package_name=name, upgrade=upgrade)
|
||
|
else:
|
||
|
statement = "pip %s -y %s" % (op, name)
|
||
|
|
||
|
if venv is not None:
|
||
|
kwargs['prefix'] = "source %s/bin/activate" % venv
|
||
|
|
||
|
kwargs.setdefault("comment", "%s %s" % (op, name))
|
||
|
|
||
|
super().__init__(statement, **kwargs)
|
||
|
|
||
|
|
||
|
class VirtualEnv(Command):
|
||
|
|
||
|
def __init__(self, name="python", overlay=None, **kwargs):
|
||
|
kwargs.setdefault("comment", "create %s virtual environment" % name)
|
||
|
|
||
|
statement = "virtualenv %s" % name
|
||
|
super().__init__(statement, **kwargs)
|
||
|
|
||
|
|
||
|
MAPPING = {
|
||
|
'pip': Pip,
|
||
|
'virtualenv': VirtualEnv,
|
||
|
}
|