torch>=2.0.0
torchvision>=0.15.0
PyYAML>=6.0
transformers>=4.38.0
tensorboard>=2.14.0
protobuf<5.0.0
rich>=13.7.0
pytest-cov>=4.1.0
onnxruntime>=1.18.0
onnx>=1.16.0
onnxscript>=0.1.1
polars>=0.20.0

wandb>=0.23.1
swanlab>=0.7.2

# macOS
numpy>=1.24,<2.0; sys_platform == "darwin"
pandas>=2.0.0; sys_platform == "darwin"
scipy>=1.10.0; sys_platform == "darwin"
scikit-learn>=1.3.0; sys_platform == "darwin"
pyarrow>=12.0.0,<18.0.0; sys_platform == "darwin"

# Windows Python < 3.12
numpy>=1.23.0,<2.0; sys_platform == "win32" and python_version < "3.12"
pandas>=2.1.0,<2.3.0; sys_platform == "win32" and python_version < "3.12"
scipy>=1.10.0,<1.12; sys_platform == "win32" and python_version < "3.12"
scikit-learn>=1.3.0,<2.0; sys_platform == "win32" and python_version < "3.12"
pyarrow>=12.0.0,<15.0.0; sys_platform == "win32" and python_version < "3.12"

# Windows Python >= 3.12
numpy>=1.26.0,<3.0; sys_platform == "win32" and python_version >= "3.12"
pandas>=2.1.0; sys_platform == "win32" and python_version >= "3.12"
scipy>=1.11.0; sys_platform == "win32" and python_version >= "3.12"
scikit-learn>=1.3.0; sys_platform == "win32" and python_version >= "3.12"
pyarrow>=16.0.0; sys_platform == "win32" and python_version >= "3.12"

# Linux gcc 4.8.5 
numpy>=1.21,<2.0; sys_platform == "linux" and python_version < "3.12"
pandas>=1.5,<2.0; sys_platform == "linux" and python_version < "3.12"
scipy>=1.8,<1.12; sys_platform == "linux" and python_version < "3.12"
scikit-learn>=1.2,<2.0; sys_platform == "linux" and python_version < "3.12"
pyarrow>=10.0.0,<13.0.0; sys_platform == "linux" and python_version < "3.12"

# Linux python 3.12+
numpy>=1.26,<3.0; sys_platform == "linux" and python_version >= "3.12"
pandas>=2.1.0; sys_platform == "linux" and python_version >= "3.12"
scipy>=1.11.0; sys_platform == "linux" and python_version >= "3.12"
scikit-learn>=1.3.0; sys_platform == "linux" and python_version >= "3.12"
pyarrow>=16.0.0; sys_platform == "linux" and python_version >= "3.12"
