at 24.05-pre 4.5 kB view raw
1{ lib 2, buildPythonPackage 3, fetchFromGitHub 4, hatchling 5, hatch-vcs 6, aiohttp 7, attrs 8, cattrs 9, circus 10, click 11, click-option-group 12, cloudpickle 13, deepmerge 14, fs 15, httpx 16, inflection 17, jinja2 18, numpy 19, opentelemetry-api 20, opentelemetry-instrumentation 21, opentelemetry-instrumentation-aiohttp-client 22, opentelemetry-instrumentation-asgi 23, opentelemetry-sdk 24, opentelemetry-semantic-conventions 25, opentelemetry-util-http 26, packaging 27, pathspec 28, pip-requirements-parser 29, pip-tools 30, prometheus-client 31, psutil 32, nvidia-ml-py 33, python-dateutil 34, python-json-logger 35, python-multipart 36, pyyaml 37, requests 38, rich 39, schema 40, simple-di 41, starlette 42, uvicorn 43, watchfiles 44, fs-s3fs 45, grpcio 46, grpcio-health-checking 47, opentelemetry-instrumentation-grpc 48, protobuf 49, grpcio-channelz 50, grpcio-reflection 51, filetype 52, pillow 53, pydantic 54, pandas 55, pyarrow 56, opentelemetry-exporter-otlp-proto-http 57# https://pypi.org/project/opentelemetry-exporter-jaeger-proto-grpc/ 58# , opentelemetry-exporter-jaeger # support for this exporter ends in july 2023 59, opentelemetry-exporter-otlp 60# , opentelemetry-exporter-zipkin 61, tritonclient 62# native check inputs 63, pytestCheckHook 64, scikit-learn 65, lxml 66, orjson 67, pytest-asyncio 68, fastapi 69}: 70 71let 72 version = "1.1.9"; 73 aws = [ fs-s3fs ]; 74 grpc = [ 75 grpcio 76 grpcio-health-checking 77 opentelemetry-instrumentation-grpc 78 protobuf 79 ]; 80 io-file = [ filetype ]; 81 io-image = io-file ++ [ pillow ]; 82 io-json = [ pydantic ]; 83 io-pandas = [ pandas pyarrow ]; 84 grpc-reflection = grpc ++ [ grpcio-reflection ]; 85 grpc-channelz = grpc ++ [ grpcio-channelz ]; 86 monitor-otlp = [ opentelemetry-exporter-otlp-proto-http ]; 87 # tracing-jaeger = [ opentelemetry-exporter-jaeger ]; 88 tracing-otlp = [ opentelemetry-exporter-otlp ]; 89 # tracing-zipkin = [ opentelemetry-exporter-zipkin ]; 90 io = io-json ++ io-image ++ io-pandas ++ io-file; 91 tracing = tracing-otlp; # ++ tracing-zipkin ++ tracing-jaeger 92 optional-dependencies = { 93 all = aws ++ io ++ grpc ++ grpc-reflection ++ grpc-channelz ++ tracing ++ monitor-otlp; 94 inherit aws grpc io-file io-image io-json io-pandas io grpc-reflection 95 grpc-channelz monitor-otlp tracing-otlp tracing; 96 triton = [ tritonclient ] ++ tritonclient.optional-dependencies.http ++ tritonclient.optional-dependencies.grpc; 97 }; 98in 99buildPythonPackage { 100 pname = "bentoml"; 101 inherit version; 102 format = "pyproject"; 103 104 src = fetchFromGitHub { 105 owner = "bentoml"; 106 repo = "BentoML"; 107 rev = "refs/tags/v${version}"; 108 hash = "sha256-+5enRlk05IGdsNY6KIzYgh7vGRua0duI57o/AIevcdM="; 109 }; 110 111 # https://github.com/bentoml/BentoML/pull/4227 should fix this test 112 postPatch = '' 113 substituteInPlace tests/unit/_internal/utils/test_analytics.py \ 114 --replace "requests" "httpx" 115 ''; 116 117 pythonRelaxDeps = [ 118 "opentelemetry-semantic-conventions" 119 ]; 120 121 nativeBuildInputs = [ 122 hatchling 123 hatch-vcs 124 ]; 125 126 propagatedBuildInputs = [ 127 aiohttp 128 attrs 129 cattrs 130 circus 131 click 132 click-option-group 133 cloudpickle 134 deepmerge 135 fs 136 httpx 137 inflection 138 jinja2 139 numpy 140 opentelemetry-api 141 opentelemetry-instrumentation 142 opentelemetry-instrumentation-aiohttp-client 143 opentelemetry-instrumentation-asgi 144 opentelemetry-sdk 145 opentelemetry-semantic-conventions 146 opentelemetry-util-http 147 packaging 148 pathspec 149 pip-requirements-parser 150 pip-tools 151 prometheus-client 152 psutil 153 nvidia-ml-py 154 python-dateutil 155 python-json-logger 156 python-multipart 157 pyyaml 158 requests 159 rich 160 schema 161 simple-di 162 starlette 163 uvicorn 164 watchfiles 165 ]; 166 167 passthru.optional-dependencies = optional-dependencies; 168 169 pythonImportsCheck = [ "bentoml" ]; 170 171 preCheck = '' 172 # required for CI testing 173 # https://github.com/bentoml/BentoML/pull/4056/commits/66302b502a3f4df4e8e6643d2afefefca974073e 174 export GITHUB_ACTIONS=1 175 ''; 176 177 disabledTestPaths = [ 178 "tests/e2e" 179 "tests/integration" 180 ]; 181 182 disabledTests = [ 183 # flaky test 184 "test_store" 185 ]; 186 187 nativeCheckInputs = [ 188 pytestCheckHook 189 pandas 190 pydantic 191 scikit-learn 192 lxml 193 orjson 194 pytest-asyncio 195 pillow 196 fastapi 197 starlette 198 ] ++ optional-dependencies.grpc; 199 200 201 meta = with lib; { 202 description = "Build Production-Grade AI Applications"; 203 homepage = "https://github.com/bentoml/BentoML"; 204 changelog = "https://github.com/bentoml/BentoML/releases/tag/v${version}"; 205 license = licenses.asl20; 206 maintainers = with maintainers; [ happysalada natsukium ]; 207 }; 208}