Added install package command

This commit is contained in:
2021-03-13 22:53:28 +01:00
parent a169c31ed5
commit 6094b11068
15 changed files with 234 additions and 90 deletions

View File

@@ -1,11 +1,18 @@
class ConsoleArgument:
def __init__(self, token: str, name: str, aliases: list[str], value_token: str, console_arguments: list[
'ConsoleArgument'] = None):
def __init__(self,
token: str,
name: str,
aliases: list[str],
value_token: str,
is_value_token_optional: bool = None,
console_arguments: list['ConsoleArgument'] = None
):
self._token = token
self._name = name
self._aliases = aliases
self._value_token = value_token
self._is_value_token_optional = is_value_token_optional
self._console_arguments = console_arguments
@property
@@ -19,10 +26,14 @@ class ConsoleArgument:
@property
def aliases(self) -> list[str]:
return self._aliases
@property
def value_token(self) -> str:
return self._value_token
@property
def is_value_token_optional(self) -> bool:
return self._is_value_token_optional
@property
def console_arguments(self) -> list['ConsoleArgument']:

32
src/cpl/utils/pip.py Normal file
View File

@@ -0,0 +1,32 @@
import subprocess
import sys
class Pip:
@staticmethod
def get_package(package: str) -> str:
result = subprocess.check_output([sys.executable, "-m", "pip", "show", package])
new_package: list[str] = str(result, 'utf-8').lower().split('\n')
new_version = ''
for atr in new_package:
if 'version' in atr:
new_version = atr.split(': ')[1]
return f'{package}=={new_version}'
@staticmethod
def install(package: str, *args, source: str = None, stdout=None, stderr=None):
pip_args = [sys.executable, "-m", "pip", "install"]
for arg in args:
pip_args.append(arg)
if source is not None:
pip_args.append(f'--extra-index-url')
pip_args.append(source)
pip_args.append(package)
subprocess.run(pip_args, stdout=stdout, stderr=stderr)