setup.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import sys
  2. from setuptools import find_packages, setup
  3. # Base requirements for all platforms
  4. install_requires = [
  5. "aiohttp==3.9.5",
  6. "aiohttp_cors==0.7.0",
  7. "blobfile==2.1.1",
  8. "grpcio==1.64.1",
  9. "grpcio-tools==1.64.1",
  10. "hf-transfer==0.1.8",
  11. "huggingface-hub==0.24.5",
  12. "Jinja2==3.1.4",
  13. "numpy==2.0.0",
  14. "pillow==10.4.0",
  15. "prometheus-client==0.20.0",
  16. "protobuf==5.27.1",
  17. "psutil==6.0.0",
  18. "pynvml==11.5.3",
  19. "requests==2.32.3",
  20. "rich==13.7.1",
  21. "safetensors==0.4.3",
  22. "tiktoken==0.7.0",
  23. "tokenizers==0.19.1",
  24. "tqdm==4.66.4",
  25. "transformers==4.43.3",
  26. "uuid==1.30",
  27. "tinygrad @ git+https://github.com/tinygrad/tinygrad.git@639af3f823cf242a1945dc24183e52a9df0af2b7",
  28. ]
  29. # Add macOS-specific packages if on Darwin (macOS)
  30. if sys.platform.startswith("darwin"):
  31. install_requires.extend(
  32. [
  33. "mlx==0.16.0",
  34. "mlx-lm==0.16.1",
  35. ]
  36. )
  37. extras_require = {
  38. "linting": [
  39. "pylint==3.2.6",
  40. "ruff==0.5.5",
  41. "mypy==1.11.0",
  42. ],
  43. }
  44. setup(
  45. name="exo",
  46. version="0.0.1",
  47. packages=find_packages(),
  48. install_requires=install_requires,
  49. extras_require=extras_require,
  50. )