Commit a2c1f741 authored by happysalada's avatar happysalada Committed by Yt
Browse files

python310Packages.bentoml: init at 1.1.0

parent c19e300b
Loading
Loading
Loading
Loading
+198 −0
Original line number Diff line number Diff line
{ lib
, buildPythonPackage
, fetchFromGitHub
, hatchling
, hatch-vcs
, aiohttp
, attrs
, cattrs
, circus
, click
, click-option-group
, cloudpickle
, deepmerge
, fs
, jinja2
, numpy
, opentelemetry-api
, opentelemetry-instrumentation
, opentelemetry-instrumentation-aiohttp-client
, opentelemetry-instrumentation-asgi
, opentelemetry-sdk
, opentelemetry-semantic-conventions
, opentelemetry-util-http
, packaging
, pathspec
, pip-requirements-parser
, pip-tools
, prometheus-client
, psutil
, pynvml
, python-dateutil
, python-json-logger
, python-multipart
, pyyaml
, requests
, rich
, schema
, simple-di
, starlette
, uvicorn
, watchfiles
, fs-s3fs
, grpcio
, grpcio-health-checking
, opentelemetry-instrumentation-grpc
, protobuf
, grpcio-channelz
, grpcio-reflection
, filetype
, pillow
, pydantic
, pandas
, pyarrow
, opentelemetry-exporter-otlp-proto-http
# https://pypi.org/project/opentelemetry-exporter-jaeger-proto-grpc/
# , opentelemetry-exporter-jaeger # support for this exporter ends in july 2023
, opentelemetry-exporter-otlp
# , opentelemetry-exporter-zipkin
, tritonclient
# native check inputs
, pytestCheckHook
, scikit-learn
, lxml
, orjson
, pytest-asyncio
, fastapi
}:

let
  version = "1.1.0";
  aws = [ fs-s3fs ];
  grpc = [
    grpcio
    grpcio-health-checking
    opentelemetry-instrumentation-grpc
    protobuf
  ];
  io-file = [ filetype ];
  io-image = io-file ++ [ pillow ];
  io-json = [ pydantic ];
  io-pandas = [ pandas pyarrow ];
  grpc-reflection = grpc ++ [ grpcio-reflection ];
  grpc-channelz = grpc ++ [ grpcio-channelz ];
  monitor-otlp = [ opentelemetry-exporter-otlp-proto-http ];
  # tracing-jaeger = [ opentelemetry-exporter-jaeger ];
  tracing-otlp = [ opentelemetry-exporter-otlp ];
  # tracing-zipkin = [ opentelemetry-exporter-zipkin ];
  io = io-json ++ io-image ++ io-pandas ++ io-file;
  tracing = tracing-otlp; # ++ tracing-zipkin ++ tracing-jaeger
  optional-dependencies = {
    all = aws ++ io ++ grpc ++ grpc-reflection ++ grpc-channelz ++ tracing ++ monitor-otlp;
    inherit aws grpc io-file io-image io-json io-pandas io grpc-reflection
      grpc-channelz monitor-otlp tracing-otlp tracing;
    triton = [ tritonclient ] ++ tritonclient.optional-dependencies.http ++ tritonclient.optional-dependencies.grpc;
  };
in
buildPythonPackage {
  pname = "bentoml";
  inherit version;
  format = "pyproject";

  src = fetchFromGitHub {
    owner = "bentoml";
    repo = "BentoML";
    rev = "v${version}";
    hash = "sha256-ZhgBw/zBazfVNPvcfAlHEGvc9hzVm7aKLXmwwvMmF0A=";
  };

  pythonRelaxDeps = [
    "opentelemetry-semantic-conventions"
  ];

  nativeBuildInputs = [
    hatchling
    hatch-vcs
  ];

  propagatedBuildInputs = [
    aiohttp
    attrs
    cattrs
    circus
    click
    click-option-group
    cloudpickle
    deepmerge
    fs
    jinja2
    numpy
    opentelemetry-api
    opentelemetry-instrumentation
    opentelemetry-instrumentation-aiohttp-client
    opentelemetry-instrumentation-asgi
    opentelemetry-sdk
    opentelemetry-semantic-conventions
    opentelemetry-util-http
    packaging
    pathspec
    pip-requirements-parser
    pip-tools
    prometheus-client
    psutil
    pynvml
    python-dateutil
    python-json-logger
    python-multipart
    pyyaml
    requests
    rich
    schema
    simple-di
    starlette
    uvicorn
    watchfiles
  ];

  passthru.optional-dependencies = optional-dependencies;

  pythonImportsCheck = [ "bentoml" ];

  preCheck = ''
    # required for CI testing
    # https://github.com/bentoml/BentoML/pull/4056/commits/66302b502a3f4df4e8e6643d2afefefca974073e
    export GITHUB_ACTIONS=1
  '';

  disabledTestPaths = [
    "tests/e2e"
    "tests/integration"
  ];

  disabledTests = [
    # flaky test
    "test_store"
  ];

  nativeCheckInputs = [
    pytestCheckHook
    pandas
    pydantic
    scikit-learn
    lxml
    orjson
    pytest-asyncio
    pillow
    fastapi
    starlette
  ] ++ optional-dependencies.grpc;


  meta = with lib; {
    description = "Build Production-Grade AI Applications";
    homepage = "https://github.com/bentoml/BentoML";
    changelog = "https://github.com/bentoml/BentoML/releases/tag/v${version}";
    license = licenses.asl20;
    maintainers = with maintainers; [ happysalada natsukium ];
  };
}
+2 −0
Original line number Diff line number Diff line
@@ -1320,6 +1320,8 @@ self: super: with self; {

  beniget = callPackage ../development/python-modules/beniget { };

  bentoml = callPackage ../development/python-modules/bentoml { };

  bespon = callPackage ../development/python-modules/bespon { };

  betacode = callPackage ../development/python-modules/betacode { };