Metadata-Version: 2.4
Name: meleksys
Version: 1.0.0
Summary: Melek AI Asistanı için Sistem ve Donanım İzleyici
Home-page: https://github.com/TearsFearsxf/meleksys
Author: Melek Projesi
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: psutil
Requires-Dist: GPUtil
Requires-Dist: pywin32; platform_system == "Windows"
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# MelekSys Kütüphanesi

**MelekSys**, arka planda çalışan ve CPU, GPU, RAM, Disk, Güç (Pil/AC) ve Ağ durumunu izleyen gelişmiş bir donanım takip kütüphanesidir. Özellikle yapay zeka asistanları (örneğin Melek AI) ve otomasyon projeleri için tasarlanmış olup, sistemin sağlık durumunu 3 farklı uyarı seviyesiyle (INFO, WARNING, CRITICAL) raporlar.

## Özellikler

- **Donanım Tespiti:** CPU, RAM, GPU ve Disk model/boyutlarını otomatik algılar.
- **Dinamik Eşik Değerleri:** İşlemci veya ekran kartı boşta mı yoksa yük altında mı çalışıyor analiz eder ve sıcaklık uyarı eşiklerini ona göre dinamik ayarlar.
- **Kilitli Uygulama Tespiti (Windows):** "Yanıt Vermiyor" durumuna düşen uygulamaları yakalar ve kullanıcıya kapatıp kapatmamak istediğini soracak yapılar sunar.
- **Zombi Süreç Avcısı:** CPU kullanmayan ancak çok fazla RAM tüketen "hayalet" (zombie) arka plan işlemlerini tespit eder.
- **VRAM Darboğazı ve Disk Takibi:** Ekran kartının belleği veya sabit disk dolmak üzereyse uyarır.
- **Ağ Değişim Algılama:** Ethernet'ten Wi-Fi'a veya Mobil Hotspot'a geçildiğinde (özellikle Hotspot'ta veri tasarrufu için) uyarır.

## Kurulum

Projeyi PyPI üzerinden kolayca kurabilirsiniz:

```bash
pip install meleksys
```

## Basit Kullanım

Aşağıdaki örnekte bir donanım izleyicisinin nasıl başlatılacağı, uyarıların nasıl ele alınacağı ve anlık bir raporun nasıl yazdırılacağı gösterilmiştir.

```python
import time
from meleksys import MelekSystemMonitor

# 1. Uyarı ve Kritik Durum fonksiyonlarını tanımlayın
def uyar(mesaj):
    print("🔔 SİSTEM UYARISI:", mesaj)

def kritik(uygulama):
    print(f"⛔ KRİTİK: {uygulama.name} uygulaması kilitlendi!")
    # True dönerseniz sistem uygulamayı zorla kapatır, False dönerseniz dokunmaz.
    return False

# 2. Monitörü oluşturun
monitor = MelekSystemMonitor(
    poll_interval=2.5,     # 2.5 saniyede bir ölçüm yapar
    on_warning=uyar,       # Uyarıları kendi fonksiyonunuza bağlayın
    on_critical=kritik     # Kritik kararları kendi fonksiyonunuza bağlayın
)

# 3. Arka planda izlemeyi başlatın
monitor.start()

print("İzleyici çalışıyor... Anlık durum raporu alınıyor:\n")
# Anlık detaylı rapor çıktısı verir:
print(monitor.report())

# 5 saniye bekleyip izleyiciyi güvenle kapatalım
time.sleep(5)
monitor.stop()
```

## Veri Sınıfları ve Yapılar

MelekSys kullanırken izleyici nesnesinin `snapshot` ve `hw` özellikleri aracılığıyla sistemin anlık verilerine erişebilirsiniz.

### `HardwareProfile` (Donanım Bilgisi)
`monitor.hw` ile erişebilirsiniz.
- `cpu_model` (str): İşlemci modeli
- `cpu_cores` (int): Çekirdek sayısı
- `total_ram_gb` (float): Toplam RAM
- `gpu_model` (str): Ekran kartı modeli
- `total_vram_gb` (float): Toplam VRAM
- `os_name` (str): İşletim sistemi versiyonu

### `SystemSnapshot` (Anlık Durum)
`monitor.snapshot` ile erişebilirsiniz.
- `cpu_percent` (float): CPU kullanım yüzdesi
- `cpu_temp_c` (float): CPU sıcaklığı (°C)
- `ram_percent` (float): RAM kullanım yüzdesi
- `gpu_load` (float): GPU kullanım yüzdesi
- `gpu_temp_c` (float): GPU sıcaklığı (°C)
- `vram_percent` (float): VRAM kullanım yüzdesi
- `battery_pct` (float): Pil yüzdesi (masaüstünde None)
- `network_type` (Enum): Ağ tipi (ETHERNET, WIFI, HOTSPOT vb.)

## İleri Seviye Özellikler

Sistemin kendi koruduğu işlemler (Windows servisleri vb.) haricinde, **kapanmasını kesinlikle istemediğiniz uygulamalar** varsa `extra_whitelist` ile belirtebilirsiniz.

```python
monitor = MelekSystemMonitor(
    extra_whitelist=["benim_uygulamam.exe", "oyun.exe"]
)
```

Bu sayede söz konusu uygulamalar zombi olarak algılansa bile sistem onlara dokunmayacaktır.

## Katkıda Bulunma
Her türlü hata bildirimi ve özellik isteği için GitHub Issues üzerinden bizimle iletişime geçebilirsiniz.

https://github.com/TearsFearsxf/meleksys
