import os
import platform
from datetime import datetime

import psutil
from constant import SUPPORT_FEATURE, SOFTWARE_VERSION


def get_sys_info():
    """
    Returns a dictionary with system information.
    """
    info = {
        'version': SOFTWARE_VERSION,
        'client_datetime': datetime.now().isoformat(),
        'platform': platform.system(),
        'runtime_version': 'Python ' + platform.python_version(),
        'cpu_count': os.cpu_count(),
        'cpu_usage': psutil.cpu_percent(),
        'memory_total': psutil.virtual_memory().total,
        'memory_available': psutil.virtual_memory().available,
        'support_feature': SUPPORT_FEATURE
    }
    return info