MCPcopy Create free account
hub / github.com/dedsec1121fk/DedSec / DependencyManager

Class DependencyManager

Scripts/Network Tools/Sod.py:33–150  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

31 UNDERLINE = '\033[4m'
32
33class DependencyManager:
34 def __init__(self):
35 self.required_packages = {
36 'requests': 'requests',
37 'urllib3': 'urllib3',
38 'websocket-client': 'websocket-client',
39 'psutil': 'psutil'
40 }
41 self.optional_packages = {
42 'numpy': 'numpy',
43 'pandas': 'pandas'
44 }
45
46 def check_python_version(self):
47 """Check if Python version is sufficient"""
48 if sys.version_info < (3, 6):
49 print(f"{Colors.RED}[!] Python 3.6 or higher is required{Colors.RESET}")
50 return False
51 print(f"{Colors.GREEN}[+] Python {sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro} detected{Colors.RESET}")
52 return True
53
54 def is_package_installed(self, package_name):
55 """Check if a package is installed"""
56 try:
57 importlib.import_module(package_name)
58 return True
59 except ImportError:
60 return False
61
62 def install_package(self, package_name, pip_name=None):
63 """Install a package using pip"""
64 if pip_name is None:
65 pip_name = package_name
66
67 print(f"{Colors.YELLOW}[~] Installing {package_name}...{Colors.RESET}")
68 try:
69 # Try using pip with current Python interpreter
70 subprocess.check_call([
71 sys.executable, '-m', 'pip', 'install',
72 '--upgrade', pip_name
73 ], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
74 print(f"{Colors.GREEN}[+] Successfully installed {package_name}{Colors.RESET}")
75 return True
76 except subprocess.CalledProcessError:
77 try:
78 # Try without upgrade flag
79 subprocess.check_call([
80 sys.executable, '-m', 'pip', 'install', pip_name
81 ], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
82 print(f"{Colors.GREEN}[+] Successfully installed {package_name}{Colors.RESET}")
83 return True
84 except subprocess.CalledProcessError as e:
85 print(f"{Colors.RED}[!] Failed to install {package_name}: {e}{Colors.RESET}")
86 return False
87
88 def install_all_dependencies(self):
89 """Install all required dependencies"""
90 print(f"{Colors.CYAN}[*] Checking and installing dependencies...{Colors.RESET}")

Callers 2

websocket_load_testMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected