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