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