1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, grpcio
5, grpcio-tools
6, httpx
7, numpy
8, pytestCheckHook
9, poetry-core
10, pydantic
11, pythonOlder
12, urllib3
13, portalocker
14, fastembed
15# check inputs
16, pytest-asyncio
17}:
18
19buildPythonPackage rec {
20 pname = "qdrant-client";
21 version = "1.6.2";
22 format = "pyproject";
23
24 disabled = pythonOlder "3.7";
25
26 src = fetchFromGitHub {
27 owner = "qdrant";
28 repo = pname;
29 rev = "refs/tags/v${version}";
30 hash = "sha256-UGD8hl0KN6PzLvmE4ZK+GsQbM3Bp8t9Mz4K62N6Zv/s=";
31 };
32
33 nativeBuildInputs = [
34 poetry-core
35 ];
36
37 propagatedBuildInputs = [
38 numpy
39 httpx
40 grpcio
41 # typing-extensions
42 grpcio-tools
43 pydantic
44 urllib3
45 portalocker
46 ] ++ httpx.optional-dependencies.http2;
47
48 pythonImportsCheck = [
49 "qdrant_client"
50 ];
51
52 nativeCheckInputs = [
53 pytestCheckHook
54 pytest-asyncio
55 ];
56
57 # tests require network access
58 doCheck = false;
59
60 passthru.optional-dependencies = {
61 fastembed = [ fastembed ];
62 };
63
64 meta = with lib; {
65 description = "Python client for Qdrant vector search engine";
66 homepage = "https://github.com/qdrant/qdrant-client";
67 changelog = "https://github.com/qdrant/qdrant-client/releases/tag/v${version}";
68 license = licenses.mit;
69 maintainers = with maintainers; [ happysalada ];
70 };
71}