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.15.1";
22 pyproject = true;
23
24 disabled = pythonOlder "3.7";
25
26 src = fetchFromGitHub {
27 owner = "qdrant";
28 repo = "qdrant-client";
29 tag = "v${version}";
30 hash = "sha256-tZu6NeoStPwZ1f+AlVws8iS3UwpKikxE6Es7WKlFQfw=";
31 };
32
33 build-system = [ poetry-core ];
34
35 pythonRelaxDeps = [
36 "portalocker"
37 ];
38
39 dependencies = [
40 grpcio
41 grpcio-tools
42 httpx
43 numpy
44 portalocker
45 pydantic
46 urllib3
47 ]
48 ++ httpx.optional-dependencies.http2;
49
50 pythonImportsCheck = [ "qdrant_client" ];
51
52 nativeCheckInputs = [
53 pytestCheckHook
54 pytest-asyncio
55 ];
56
57 # Tests require network access
58 doCheck = false;
59
60 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/${src.tag}";
68 license = licenses.mit;
69 maintainers = with maintainers; [ happysalada ];
70 };
71}