import platform
import os
import sys
class RuntimeInfo:
def __init__(self):
self.os_name = platform.system()
self.os_version = platform.version()
self.cpu_count = os.cpu_count()
self.memory_info = platform.memory_info()
self.python_version = sys.version
self.disk_space_gb = self.get_disk_space_gb() # Get disk space in GB
def get_disk_space_gb(self):
"""
Retrieves disk space in GB.
"""
import shutil
total, used, free = shutil.disk_usage("/") # Use "/" for root partition
return total // (2**30) # Convert bytes to GB
def check_limits(self):
"""
Checks runtime environment against hard-coded limits.
"""
limits = {
"os_name": ["Windows", "Linux", "Darwin"], # Supported OS
"os_version_min": "10",
"cpu_count_min": 2,
"disk_space_min": 20, # Minimum disk space in GB
}
for key, value in limits.items():
if key == "os_name":
if self.os_name not in value:
print(f"Warning: OS '{self.os_name}' not supported.")
elif key == "os_version_min":
try:
version_number = int(self.os_version.split('.')[0])
if version_number < int(value):
print(f"Warning: OS version {self.os_version} below minimum {value}.")
except ValueError:
print(f"Warning: Could not determine OS version from '{self.os_version}'.")
elif key == "cpu_count_min":
if self.cpu_count < int(value):
print(f"Warning: CPU count {self.cpu_count} below minimum {value}.")
elif key == "disk_space_min":
if self.disk_space_gb < int(value):
print(f"Warning: Disk space {self.disk_space_gb:.1f} GB below minimum {value} GB.")
def print_runtime_info(self):
"""
Prints runtime environment information.
"""
print("Runtime Environment Information:")
print(f" OS: {self.os_name}")
print(f" OS Version: {self.os_version}")
print(f" CPU Count: {self.cpu_count}")
print(f" Memory: {self.memory_info}")
print(f" Python Version: {self.python_version}")
print(f" Disk Space: {self.disk_space_gb:.1f} GB")
if __name__ == "__main__":
runtime_info = RuntimeInfo()
runtime_info.print_runtime_info()
runtime_info.check_limits()
Add your comment