depot/third_party/nixpkgs/pkgs/development/python-modules/ray/default.nix
Default email 7e47f3658e Project import generated by Copybara.
GitOrigin-RevId: 1925c603f17fc89f4c8f6bf6f631a802ad85d784
2024-09-26 11:04:55 +00:00

168 lines
2.8 KiB
Nix

{
lib,
buildPythonPackage,
pythonOlder,
pythonAtLeast,
python,
fetchPypi,
autoPatchelfHook,
# dependencies
aiohttp,
aiohttp-cors,
aiosignal,
attrs,
click,
cloudpickle,
colorama,
colorful,
cython,
filelock,
frozenlist,
gpustat,
grpcio,
jsonschema,
msgpack,
numpy,
opencensus,
packaging,
prometheus-client,
psutil,
pydantic,
py-spy,
pyyaml,
requests,
setproctitle,
smart-open,
virtualenv,
# optional-dependencies
fsspec,
pandas,
pyarrow,
dm-tree,
gym,
lz4,
matplotlib,
scikit-image,
scipy,
aiorwlock,
fastapi,
starlette,
uvicorn,
tabulate,
tensorboardx,
}:
let
pname = "ray";
version = "2.37.0";
in
buildPythonPackage rec {
inherit pname version;
format = "wheel";
disabled = pythonOlder "3.10" || pythonAtLeast "3.13";
src =
let
pyShortVersion = "cp${builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion}";
binary-hash = (import ./binary-hashes.nix)."${pyShortVersion}" or { };
in
fetchPypi (
{
inherit pname version format;
dist = pyShortVersion;
python = pyShortVersion;
abi = pyShortVersion;
platform = "manylinux2014_x86_64";
}
// binary-hash
);
nativeBuildInputs = [
autoPatchelfHook
];
pythonRelaxDeps = [
"click"
"grpcio"
"protobuf"
"virtualenv"
];
dependencies = [
aiohttp
aiohttp-cors
aiosignal
attrs
click
cloudpickle
colorama
colorful
cython
filelock
frozenlist
gpustat
grpcio
jsonschema
msgpack
numpy
opencensus
packaging
prometheus-client
psutil
pydantic
py-spy
pyyaml
requests
setproctitle
smart-open
virtualenv
];
optional-dependencies = rec {
air-deps = data-deps ++ serve-deps ++ tune-deps ++ rllib-deps;
data-deps = [
fsspec
pandas
pyarrow
];
rllib-deps = tune-deps ++ [
dm-tree
gym
lz4
matplotlib
pyyaml
scikit-image
scipy
];
serve-deps = [
aiorwlock
fastapi
pandas
starlette
uvicorn
];
tune-deps = [
tabulate
tensorboardx
];
};
postInstall = ''
chmod +x $out/${python.sitePackages}/ray/core/src/ray/{gcs/gcs_server,raylet/raylet}
'';
pythonImportsCheck = [ "ray" ];
meta = {
description = "Unified framework for scaling AI and Python applications";
homepage = "https://github.com/ray-project/ray";
changelog = "https://github.com/ray-project/ray/releases/tag/ray-${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ billhuang ];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
platforms = [ "x86_64-linux" ];
};
}