Added install package command
This commit is contained in:
@@ -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
32
src/cpl/utils/pip.py
Normal 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)
|
Reference in New Issue
Block a user