setup.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import sys
  2. import platform
  3. from setuptools import find_packages, setup
  4. # Base requirements for all platforms
  5. install_requires = [
  6. "aiohttp==3.10.11",
  7. "aiohttp_cors==0.7.0",
  8. "aiofiles==24.1.0",
  9. "grpcio==1.68.0",
  10. "grpcio-tools==1.68.0",
  11. "Jinja2==3.1.4",
  12. "netifaces==0.11.0",
  13. "numpy==2.0.0",
  14. "nuitka==2.5.1",
  15. "nvidia-ml-py==12.560.30",
  16. "opencv-python==4.10.0.84",
  17. "pillow==10.4.0",
  18. "prometheus-client==0.20.0",
  19. "protobuf==5.28.1",
  20. "psutil==6.0.0",
  21. "pydantic==2.9.2",
  22. "requests==2.32.3",
  23. "rich==13.7.1",
  24. "tenacity==9.0.0",
  25. "tqdm==4.66.4",
  26. "transformers==4.46.3",
  27. "uuid==1.30",
  28. "uvloop==0.21.0",
  29. "tinygrad @ git+https://github.com/tinygrad/tinygrad.git@3b26e51fcebfc6576f4e0f99693e6f1406d61d79",
  30. ]
  31. extras_require = {
  32. "formatting": [
  33. "yapf==0.40.2",
  34. ],
  35. "apple_silicon": [
  36. "mlx==0.21.1",
  37. "mlx-lm==0.20.4",
  38. ],
  39. }
  40. # Check if running on macOS with Apple Silicon
  41. if sys.platform.startswith("darwin") and platform.machine() == "arm64":
  42. install_requires.extend(extras_require["apple_silicon"])
  43. setup(
  44. name="exo",
  45. version="0.0.1",
  46. packages=find_packages(),
  47. install_requires=install_requires,
  48. extras_require=extras_require,
  49. package_data={"exo": ["tinychat/**/*"]},
  50. entry_points={"console_scripts": ["exo = exo.main:run"]},
  51. )