1{ aiohttp
2, aiohttp-cors
3, aiorwlock
4, aiosignal
5, attrs
6, autoPatchelfHook
7, buildBazelPackage
8, buildPythonPackage
9, fetchPypi
10, click
11, cloudpickle
12, colorama
13, colorful
14, cython
15, dm-tree
16, fastapi
17, filelock
18, frozenlist
19, fsspec
20, gpustat
21, grpc
22, grpcio
23, gym
24, jsonschema
25, lib
26, lz4
27, matplotlib
28, msgpack
29, numpy
30, opencensus
31, packaging
32, pandas
33, py-spy
34, prometheus-client
35, protobuf3_20
36, psutil
37, pyarrow
38, pydantic
39, python
40, pythonAtLeast
41, pythonOlder
42, pythonRelaxDepsHook
43, pyyaml
44, redis
45, requests
46, scikit-image
47, scipy
48, setproctitle
49, smart-open
50, starlette
51, stdenv
52, tabulate
53, tensorboardx
54, uvicorn
55, virtualenv
56}:
57
58let
59 pname = "ray";
60 version = "2.4.0";
61in
62buildPythonPackage rec {
63 inherit pname version;
64 format = "wheel";
65
66 disabled = pythonOlder "3.9" || pythonAtLeast "3.12";
67
68 src =
69 let
70 pyShortVersion = "cp${builtins.replaceStrings ["."] [""] python.pythonVersion}";
71 binary-hash = (import ./binary-hashes.nix)."${pyShortVersion}" or {};
72 in
73 fetchPypi ({
74 inherit pname version format;
75 dist = pyShortVersion;
76 python = pyShortVersion;
77 abi = pyShortVersion;
78 platform = "manylinux2014_x86_64";
79 } // binary-hash);
80
81 passthru.optional-dependencies = rec {
82 data-deps = [
83 pandas
84 pyarrow
85 fsspec
86 ];
87
88 serve-deps = [
89 aiorwlock
90 fastapi
91 pandas
92 starlette
93 uvicorn
94 ];
95
96 tune-deps = [
97 tabulate
98 tensorboardx
99 ];
100
101 rllib-deps = tune-deps ++ [
102 dm-tree
103 gym
104 lz4
105 matplotlib
106 scikit-image
107 pyyaml
108 scipy
109 ];
110
111 air-deps = data-deps ++ serve-deps ++ tune-deps ++ rllib-deps;
112 };
113
114 nativeBuildInputs = [
115 autoPatchelfHook
116 pythonRelaxDepsHook
117 ];
118
119 pythonRelaxDeps = [
120 "click"
121 "grpcio"
122 "protobuf"
123 ];
124
125 propagatedBuildInputs = [
126 attrs
127 aiohttp
128 aiohttp-cors
129 aiosignal
130 click
131 cloudpickle
132 colorama
133 colorful
134 cython
135 filelock
136 frozenlist
137 gpustat
138 grpcio
139 jsonschema
140 msgpack
141 numpy
142 opencensus
143 packaging
144 py-spy
145 prometheus-client
146 protobuf3_20
147 psutil
148 pydantic
149 pyyaml
150 requests
151 setproctitle
152 smart-open
153 virtualenv
154 ];
155
156 postInstall = ''
157 chmod +x $out/${python.sitePackages}/ray/core/src/ray/{gcs/gcs_server,raylet/raylet}
158 '';
159
160 pythonImportsCheck = [
161 "ray"
162 ];
163
164 meta = with lib; {
165 description = "A unified framework for scaling AI and Python applications";
166 homepage = "https://github.com/ray-project/ray";
167 changelog = "https://github.com/ray-project/ray/releases/tag/ray-${version}";
168 license = licenses.asl20;
169 maintainers = with maintainers; [ billhuang ];
170 platforms = [ "x86_64-linux" ];
171 };
172}