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.14.2";
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-JohJbKIZfPG3qqjF8T1EmeS1sZALCglEIcsWiNSn/QE=";
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 ] ++ httpx.optional-dependencies.http2;
48
49 pythonImportsCheck = [ "qdrant_client" ];
50
51 nativeCheckInputs = [
52 pytestCheckHook
53 pytest-asyncio
54 ];
55
56 # Tests require network access
57 doCheck = false;
58
59 optional-dependencies = {
60 fastembed = [ fastembed ];
61 };
62
63 meta = with lib; {
64 description = "Python client for Qdrant vector search engine";
65 homepage = "https://github.com/qdrant/qdrant-client";
66 changelog = "https://github.com/qdrant/qdrant-client/releases/tag/${src.tag}";
67 license = licenses.mit;
68 maintainers = with maintainers; [ happysalada ];
69 };
70}