setup.py 1.3 KB

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