# fallback_modules.py - وحدات بديلة للاعتماديات المفقودة import time import math import random class FakeNumpy: """محاكاة numpy الأساسية""" @staticmethod def random.rand(size): if isinstance(size, int): return [random.random() for _ in range(size)] elif isinstance(size, tuple): return [[random.random() for _ in range(size[1])] for _ in range(size[0])] @staticmethod def dot(a, b): if isinstance(a[0], list) and isinstance(b[0], list): # ضرب مصفوفات result = [] for i in range(len(a)): row = [] for j in range(len(b[0])): sum_val = 0 for k in range(len(b)): sum_val += a[i][k] * b[k][j] row.append(sum_val) result.append(row) return result else: return sum(x * y for x, y in zip(a, b)) @staticmethod def mean(data): return sum(data) / len(data) @staticmethod def std(data): mean_val = sum(data) / len(data) variance = sum((x - mean_val) ** 2 for x in data) / len(data) return math.sqrt(variance) # استبدال الوحدات المفقودة try: import numpy as np except ImportError: np = FakeNumpy() try: import psutil except ImportError: class FakePsutil: @staticmethod def cpu_percent(): return 0.0 @staticmethod def virtual_memory(): class Memory: percent = 0.0 return Memory() @staticmethod def disk_usage(path): class Disk: percent = 0.0 return Disk() psutil = FakePsutil()