1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 deprecation,
6 poetry-core,
7 pythonRelaxDepsHook,
8 async-timeout,
9 cloudevents,
10 fastapi,
11 grpcio,
12 httpx,
13 kubernetes,
14 numpy,
15 orjson,
16 pandas,
17 prometheus-client,
18 protobuf,
19 psutil,
20 python-dateutil,
21 ray,
22 six,
23 tabulate,
24 timing-asgi,
25 uvicorn,
26 avro,
27 azure-storage-blob,
28 azure-storage-file-share,
29 boto3,
30 botocore,
31 google-cloud-storage,
32 pytestCheckHook,
33 tomlkit,
34}:
35
36buildPythonPackage rec {
37 pname = "kserve";
38 version = "0.12.1";
39 pyproject = true;
40
41 src = fetchFromGitHub {
42 owner = "kserve";
43 repo = "kserve";
44 rev = "refs/tags/v${version}";
45 hash = "sha256-gKJkG8zJY1sGGpI27YZ/QnEPU8J7KHva3nI+JCglQaQ=";
46 };
47
48 sourceRoot = "${src.name}/python/kserve";
49
50 build-system = [
51 deprecation
52 poetry-core
53 ];
54
55 nativeBuildInputs = [ pythonRelaxDepsHook ];
56
57 dependencies = [
58 async-timeout
59 cloudevents
60 fastapi
61 grpcio
62 httpx
63 kubernetes
64 numpy
65 orjson
66 pandas
67 prometheus-client
68 protobuf
69 psutil
70 python-dateutil
71 ray
72 six
73 tabulate
74 timing-asgi
75 uvicorn
76 ] ++ ray.passthru.optional-dependencies.serve-deps;
77
78 pythonRelaxDeps = [
79 "fastapi"
80 "httpx"
81 "prometheus-client"
82 "protobuf"
83 "ray"
84 "uvicorn"
85 ];
86
87 pythonImportsCheck = [ "kserve" ];
88
89 nativeCheckInputs = [
90 avro
91 azure-storage-blob
92 azure-storage-file-share
93 boto3
94 botocore
95 google-cloud-storage
96 pytestCheckHook
97 tomlkit
98 ];
99
100 disabledTestPaths = [
101 # Looks for a config file at the root of the repository
102 "test/test_inference_service_client.py"
103 ];
104
105 disabledTests = [
106 # Require network access
107 "test_health_handler"
108 "test_infer"
109 "test_infer_v2"
110 ];
111
112 meta = with lib; {
113 description = "Standardized Serverless ML Inference Platform on Kubernetes";
114 homepage = "https://github.com/kserve/kserve/tree/master/python/kserve";
115 license = licenses.asl20;
116 maintainers = with maintainers; [ GaetanLepage ];
117 };
118}