about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/python-modules/chromadb
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2024-03-01 11:40:12 +0100
committerAlyssa Ross <hi@alyssa.is>2024-03-01 11:40:12 +0100
commitbf6d657e5dbcb5e39fda280ef7e86b2a7794ca86 (patch)
tree8eb035cbab19794f6415cc460fac7226f7a58afc /nixpkgs/pkgs/development/python-modules/chromadb
parent66f707d69f1e423db5a35c2fe43b32781125a9af (diff)
parent09c1497ce5d4ed4a0edfdd44450d3048074cb300 (diff)
downloadnixlib-bf6d657e5dbcb5e39fda280ef7e86b2a7794ca86.tar
nixlib-bf6d657e5dbcb5e39fda280ef7e86b2a7794ca86.tar.gz
nixlib-bf6d657e5dbcb5e39fda280ef7e86b2a7794ca86.tar.bz2
nixlib-bf6d657e5dbcb5e39fda280ef7e86b2a7794ca86.tar.lz
nixlib-bf6d657e5dbcb5e39fda280ef7e86b2a7794ca86.tar.xz
nixlib-bf6d657e5dbcb5e39fda280ef7e86b2a7794ca86.tar.zst
nixlib-bf6d657e5dbcb5e39fda280ef7e86b2a7794ca86.zip
Merge branch 'nixos-unstable-small' of https://github.com/NixOS/nixpkgs
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/chromadb')
-rw-r--r--nixpkgs/pkgs/development/python-modules/chromadb/default.nix160
1 files changed, 160 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/chromadb/default.nix b/nixpkgs/pkgs/development/python-modules/chromadb/default.nix
new file mode 100644
index 000000000000..0cc5484332df
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/chromadb/default.nix
@@ -0,0 +1,160 @@
+{ lib
+, stdenv
+, bcrypt
+, build
+, buildPythonPackage
+, cargo
+, chroma-hnswlib
+, darwin
+, fastapi
+, fetchFromGitHub
+, grpcio
+, hypothesis
+, importlib-resources
+, kubernetes
+, mmh3
+, numpy
+, onnxruntime
+, openssl
+, opentelemetry-api
+, opentelemetry-exporter-otlp-proto-grpc
+, opentelemetry-instrumentation-fastapi
+, opentelemetry-sdk
+, orjson
+, overrides
+, pkg-config
+, posthog
+, protobuf
+, pulsar-client
+, pydantic
+, pypika
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, pythonRelaxDepsHook
+, pyyaml
+, requests
+, rustc
+, rustPlatform
+, setuptools
+, setuptools-scm
+, tenacity
+, tokenizers
+, tqdm
+, typer
+, typing-extensions
+, uvicorn
+, zstd
+}:
+
+buildPythonPackage rec {
+  pname = "chromadb";
+  version = "0.4.23";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "chroma-core";
+    repo = "chroma";
+    rev = "refs/tags/${version}";
+    hash = "sha256-5gI+FE2jx4G/qahATLcYsONfPZZkk1RFFYK5nrpE0Ug=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-glItbT8gg5SAySnfx3A9TaPyFmd1R46JpAB1JnjBE5M=";
+  };
+
+  pythonRelaxDeps = [
+    "orjson"
+  ];
+
+  nativeBuildInputs = [
+    cargo
+    pkg-config
+    protobuf
+    pythonRelaxDepsHook
+    rustc
+    rustPlatform.cargoSetupHook
+    setuptools
+    setuptools-scm
+  ];
+
+  buildInputs = [
+    openssl
+    zstd
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+  ];
+
+  propagatedBuildInputs = [
+    bcrypt
+    build
+    chroma-hnswlib
+    fastapi
+    grpcio
+    importlib-resources
+    kubernetes
+    mmh3
+    numpy
+    onnxruntime
+    opentelemetry-api
+    opentelemetry-exporter-otlp-proto-grpc
+    opentelemetry-instrumentation-fastapi
+    opentelemetry-sdk
+    orjson
+    overrides
+    posthog
+    pulsar-client
+    pydantic
+    pypika
+    pyyaml
+    requests
+    tenacity
+    tokenizers
+    tqdm
+    typer
+    typing-extensions
+    uvicorn
+  ];
+
+  nativeCheckInputs = [
+    hypothesis
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "chromadb"
+  ];
+
+  env = {
+    ZSTD_SYS_USE_PKG_CONFIG = true;
+  };
+
+  pytestFlagsArray = [ "-x" ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  disabledTestPaths = [
+    # Tests require network access
+    "chromadb/test/property/test_cross_version_persist.py"
+    "chromadb/test/auth/test_simple_rbac_authz.py"
+    "chromadb/test/ef/test_default_ef.py"
+    "chromadb/test/test_api.py"
+    "chromadb/test/property/"
+    "chromadb/test/stress/"
+  ];
+
+  meta = with lib; {
+    description = "The AI-native open-source embedding database";
+    homepage = "https://github.com/chroma-core/chroma";
+    changelog = "https://github.com/chroma-core/chroma/releases/tag/${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}