ansible-later: 2.0.22 -> 2.0.23
[NixPkgs.git] / pkgs / development / python-modules / ray / default.nix
blobc6b764181875a8f53a85464f954233f0a4034482
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 , scikitimage
47 , scipy
48 , setproctitle
49 , smart-open
50 , starlette
51 , stdenv
52 , tabulate
53 , tensorboardx
54 , uvicorn
55 , virtualenv
58 let
59   pname = "ray";
60   version = "2.0.0";
62 buildPythonPackage rec {
63   inherit pname version;
64   format = "wheel";
66   disabled = pythonOlder "3.8" || pythonAtLeast "3.11";
68   src =
69     let
70       pyShortVersion = "cp${builtins.replaceStrings ["."] [""] python.pythonVersion}";
71       binary-hash = (import ./binary-hashes.nix)."${pyShortVersion}";
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);
81   passthru.optional-dependencies = rec {
82     data-deps = [
83       pandas
84       pyarrow
85       fsspec
86     ];
88     serve-deps = [
89       aiorwlock
90       fastapi
91       pandas
92       starlette
93       uvicorn
94     ];
96     tune-deps = [
97       tabulate
98       tensorboardx
99     ];
101     rllib-deps = tune-deps ++ [
102       dm-tree
103       gym
104       lz4
105       matplotlib
106       scikitimage
107       pyyaml
108       scipy
109     ];
111     air-deps = data-deps ++ serve-deps ++ tune-deps ++ rllib-deps;
112   };
114   nativeBuildInputs = [
115     autoPatchelfHook
116     pythonRelaxDepsHook
117   ];
119   pythonRelaxDeps = [ "grpcio" "click" "protobuf" ];
121   propagatedBuildInputs = [
122     attrs
123     aiohttp
124     aiohttp-cors
125     aiosignal
126     click
127     cloudpickle
128     colorama
129     colorful
130     cython
131     filelock
132     frozenlist
133     gpustat
134     grpcio
135     jsonschema
136     msgpack
137     numpy
138     opencensus
139     packaging
140     py-spy
141     prometheus-client
142     protobuf3_20
143     psutil
144     pydantic
145     pyyaml
146     requests
147     setproctitle
148     smart-open
149     virtualenv
150   ];
152   postInstall = ''
153     chmod +x $out/${python.sitePackages}/ray/core/src/ray/{gcs/gcs_server,raylet/raylet}
154     ln -sf ${redis}/bin/redis-server $out/${python.sitePackages}/ray/core/src/ray/thirdparty/redis/src/redis-server
155   '';
157   pythonImportsCheck = [ "ray" ];
159   meta = with lib; {
160     description = "A unified framework for scaling AI and Python applications";
161     homepage = "https://github.com/ray-project/ray";
162     license = licenses.asl20;
163     maintainers = with maintainers; [ billhuang ];
164     platforms = [ "x86_64-linux" ];
165   };