1{
2 lib,
3 aiofiles,
4 aiosqlite,
5 alembic,
6 asyncpg,
7 backoff,
8 brotli-asgi,
9 buildPythonPackage,
10 cleanlab,
11 datasets,
12 deprecated,
13 elasticsearch8,
14 evaluate,
15 factory-boy,
16 faiss,
17 fastapi,
18 fetchFromGitHub,
19 flyingsquid,
20 greenlet,
21 httpx,
22 huggingface-hub,
23 luqum,
24 monotonic,
25 numpy,
26 openai,
27 opensearch-py,
28 packaging,
29 pandas,
30 passlib,
31 peft,
32 pgmpy,
33 plotly,
34 prodict,
35 psutil,
36 psycopg2,
37 pydantic,
38 pytest-asyncio,
39 pytest-mock,
40 pytestCheckHook,
41 python-jose,
42 python-multipart,
43 pythonOlder,
44 pyyaml,
45 rich,
46 schedule,
47 scikit-learn,
48 sentence-transformers,
49 seqeval,
50 setuptools,
51 smart-open,
52 snorkel,
53 spacy,
54 spacy-transformers,
55 sqlalchemy,
56 tqdm,
57 transformers,
58 typer,
59 uvicorn,
60 wrapt,
61# , flair
62# , setfit
63# , spacy-huggingface-hub
64# , span_marker
65# , trl
66}:
67
68buildPythonPackage rec {
69 pname = "argilla";
70 version = "1.29.0";
71 pyproject = true;
72
73 disabled = pythonOlder "3.8";
74
75 src = fetchFromGitHub {
76 owner = "argilla-io";
77 repo = "argilla";
78 rev = "refs/tags/v${version}";
79 hash = "sha256-+eQNvLDV063JY6CyngpGyo4NdSd6HvAHFgGWtPfZNVQ=";
80 };
81
82 pythonRelaxDeps = [
83 "httpx"
84 "numpy"
85 "rich"
86 "typer"
87 "wrapt"
88 ];
89
90 build-system = [ setuptools ];
91
92
93 dependencies = [
94 httpx
95 deprecated
96 packaging
97 pandas
98 pydantic
99 wrapt
100 numpy
101 tqdm
102 backoff
103 monotonic
104 rich
105 typer
106 ];
107
108 passthru.optional-dependencies = {
109 server =
110 [
111 aiofiles
112 aiosqlite
113 alembic
114 brotli-asgi
115 elasticsearch8
116 fastapi
117 greenlet
118 luqum
119 opensearch-py
120 passlib
121 psutil
122 python-jose
123 python-multipart
124 pyyaml
125 scikit-learn
126 smart-open
127 sqlalchemy
128 uvicorn
129 ]
130 ++ elasticsearch8.optional-dependencies.async
131 ++ uvicorn.optional-dependencies.standard
132 ++ python-jose.optional-dependencies.cryptography
133 ++ passlib.optional-dependencies.bcrypt;
134 postgresql = [
135 asyncpg
136 psycopg2
137 ];
138 listeners = [
139 schedule
140 prodict
141 ];
142 integrations = [
143 cleanlab
144 datasets
145 evaluate
146 faiss
147 flyingsquid
148 huggingface-hub
149 openai
150 peft
151 pgmpy
152 plotly
153 pyyaml
154 sentence-transformers
155 seqeval
156 snorkel
157 spacy
158 spacy-transformers
159 transformers
160 # flair
161 # setfit
162 # span_marker
163 # trl
164 # spacy-huggingface-hub
165 ] ++ transformers.optional-dependencies.torch;
166 };
167
168 # Still quite a bit of optional dependencies missing
169 doCheck = false;
170
171 preCheck = ''
172 export HOME=$(mktemp -d)
173 '';
174
175 nativeCheckInputs = [
176 pytestCheckHook
177 pytest-mock
178 pytest-asyncio
179 factory-boy
180 ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
181
182 disabledTestPaths = [ "tests/server/datasets/test_dao.py" ];
183
184 meta = with lib; {
185 description = "Open-source data curation platform for LLMs";
186 homepage = "https://github.com/argilla-io/argilla";
187 changelog = "https://github.com/argilla-io/argilla/releases/tag/v${version}";
188 license = licenses.asl20;
189 maintainers = with maintainers; [ happysalada ];
190 mainProgram = "argilla";
191 };
192}