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