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