# Python packages requirements
Pillow~=10.1.0        # Image generation
pyserial~=3.5         # Serial link to communicate with the display
PyYAML~=6.0.1         # For themes files
psutil~=5.9.6         # CPU / disk / network metrics
pystray~=0.19.5       # Tray icon (all OS)
babel~=2.13.1         # Date/time formatting
ruamel.yaml~=0.18.5  # For configuration editor
sv-ttk~=2.5.5         # Tk Sun Valley theme for configuration editor

# Efficient image serialization
numpy~=1.24.4; python_version < "3.9"   # For Python 3.8 max.
numpy~=1.26.0; python_version >= "3.9"  # For Python 3.9+

# For Nvidia GPU on all platforms
GPUtil~=1.4.0; python_version < "3.12"
# GPUtil is broken for Python 3.12+ and not maintained anymore: fetch it from a fork where it is fixed
GPUtil @ git+https://github.com/mathoudebine/gputil.git@1.4.0-py3.12 ; python_version >= "3.12"

# Following packages are for AMD GPU on Linux
pyamdgpuinfo~=2.1.6; sys_platform=="linux" and python_version <= "3.12"
# For Python > 3.12, you need to build install pyamdgpuinfo manually: see https://github.com/mathoudebine/turing-smart-screen-python/wiki/Troubleshooting#linux--macos-no-supported-gpu-found-with-an-amd-gpu-and-python--311

# Following packages are for AMD GPU on Windows
pyadl~=0.1; sys_platform=="win32"

# Following packages are for LibreHardwareMonitor integration on Windows
pythonnet~=3.0.3; sys_platform=="win32"
pywin32>=306; sys_platform=="win32"
