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