# =============================================================================
# Warlock Studio — Python Dependencies
# =============================================================================
# Platform:  Python 3.10+
# Framework: CustomTkinter GUI, OpenCV + ONNX Runtime for AI media processing
# =============================================================================

# ---------------------------------------------------------------------------
# SECTION 1 — Core Runtime Dependencies
# ---------------------------------------------------------------------------

# GUI framework — modern, themed tkinter widgets
customtkinter>=5.2.2

# OpenCV — image/video I/O, color conversion, resizing, frame manipulation
opencv-python>=4.8.1.78

# NumPy — multidimensional array backend for OpenCV, ONNX, and image ops
numpy>=1.24.0

# ONNX Runtime — AI model inference (upscaling, restoration, frame interpolation)
onnxruntime>=1.16.0

# Pillow — PILLow Image loading for GUI thumbnails and splash screen
Pillow>=10.2.0

# MoviePy — video clip assembly from processed image sequences
moviepy>=1.0.3

# ---------------------------------------------------------------------------
# SECTION 2 — Utility Dependencies
# ---------------------------------------------------------------------------

# natsort — natural (human-friendly) sorting of file names
natsort>=8.4.0

# packaging — PEP 440 version comparison for update checks
packaging>=23.2

# psutil — system resource monitoring (RAM, CPU) for adaptive processing
psutil>=5.9.8

# requests — HTTP client for update checks and online features
requests>=2.31.0

# tkinterdnd2 — drag-and-drop support for the GUI
tkinterdnd2>=0.3.0

# ---------------------------------------------------------------------------
# SECTION 3 — Optional / Platform-Specific Backends
# ---------------------------------------------------------------------------

# OpenCV headless (no GUI) — use instead of opencv-python on Linux servers
# or headless environments where no display is available.
#   pip install opencv-python-headless
# opencv-python-headless>=4.8.1.78

# ONNX Runtime with DirectML — Windows-only, enables GPU inference via
# DirectML for AMD, Intel, and NVIDIA GPUs without CUDA.
#   pip install onnxruntime-directml
# onnxruntime-directml>=1.16.0

# ONNX Runtime with CUDA — NVIDIA GPU acceleration via CUDA 11.x/12.x.
# Requires matching CUDA runtime and cuDNN installed on the system.
#   pip install onnxruntime-gpu
# onnxruntime-gpu>=1.16.0

# wmi — Windows Management Instrumentation (GPU info on Windows).
# Optional; only used if available.
# wmi>=1.5.1

# GPUtil — NVIDIA GPU information (Linux/Windows).
# Optional; only used if available.
# GPUtil>=1.4.0

# ---------------------------------------------------------------------------
# SECTION 4 — Build / Packaging
# ---------------------------------------------------------------------------

# PyInstaller — bundle the application into a standalone executable.
# Install separately from runtime deps (build step only).
#   pip install pyinstaller
# pyinstaller>=6.3.0
