1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 # build-system
7 gitpython,
8 setuptools,
9 setuptools-scm,
10
11 # dependencies
12 grpcio,
13 # milvus-lite, (unpackaged)
14 pandas,
15 protobuf,
16 python-dotenv,
17 ujson,
18
19 # tests
20 grpcio-testing,
21 pytestCheckHook,
22}:
23
24buildPythonPackage rec {
25 pname = "pymilvus";
26 version = "2.5.14";
27 pyproject = true;
28
29 src = fetchFromGitHub {
30 owner = "milvus-io";
31 repo = "pymilvus";
32 tag = "v${version}";
33 hash = "sha256-h+HjDM+uhmcz7fKXE4RWtqD2+Evd9rqG3Zd5jsDyCNE=";
34 };
35
36 build-system = [
37 gitpython
38 setuptools
39 setuptools-scm
40 ];
41
42 pythonRelaxDeps = [
43 "grpcio"
44 ];
45
46 pythonRemoveDeps = [
47 "milvus-lite"
48 ];
49
50 dependencies = [
51 grpcio
52 # milvus-lite
53 pandas
54 protobuf
55 python-dotenv
56 setuptools
57 ujson
58 ];
59
60 nativeCheckInputs = [
61 grpcio-testing
62 pytestCheckHook
63 # scikit-learn
64 ];
65
66 pythonImportsCheck = [ "pymilvus" ];
67
68 disabledTests = [
69 # Tries to read .git
70 "test_get_commit"
71
72 # milvus-lite is not packaged
73 "test_milvus_lite"
74 ];
75
76 disabledTestPaths = [
77 # pymilvus.exceptions.MilvusException: <MilvusException: (code=2, message=Fail connecting to server on localhost:19530, illegal connection params or server unavailable)>
78 "examples/test_bitmap_index.py"
79 ];
80
81 meta = {
82 description = "Python SDK for Milvus";
83 homepage = "https://github.com/milvus-io/pymilvus";
84 changelog = "https://github.com/milvus-io/pymilvus/releases/tag/${src.tag}";
85 license = lib.licenses.mit;
86 maintainers = with lib.maintainers; [ happysalada ];
87 };
88}