Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / transformers / default.nix
blob5bcbeb035f673fd49a8fd85910b42a6d2ede379f
1 { lib
2 , buildPythonPackage
3 , fetchFromGitHub
4 , pythonOlder
5 , setuptools
6 # propagated build inputs
7 , filelock
8 , huggingface-hub
9 , numpy
10 , protobuf
11 , packaging
12 , pyyaml
13 , regex
14 , requests
15 , tokenizers
16 , safetensors
17 , tqdm
18 # optional dependencies
19 , diffusers
20 , scikit-learn
21 , tensorflow
22 , onnxconverter-common
23 , opencv4
24 , tf2onnx
25 , torch
26 , accelerate
27 , faiss
28 , datasets
29 , jax
30 , jaxlib
31 , flax
32 , optax
33 , ftfy
34 , onnxruntime
35 , onnxruntime-tools
36 , cookiecutter
37 , sagemaker
38 , fairscale
39 , optuna
40 , ray
41 , pydantic
42 , uvicorn
43 , fastapi
44 , starlette
45 , librosa
46 , phonemizer
47 , torchaudio
48 , pillow
49 , timm
50 , torchvision
51 , av
52 , sentencepiece
55 buildPythonPackage rec {
56   pname = "transformers";
57   version = "4.40.1";
58   pyproject = true;
60   disabled = pythonOlder "3.8";
62   src = fetchFromGitHub {
63     owner = "huggingface";
64     repo = "transformers";
65     rev = "refs/tags/v${version}";
66     hash = "sha256-w9BVJwYS2QV58UTOpcoQwdC+dxZuhLS2h8PqN5W2Yjc=";
67   };
69   build-system = [
70     setuptools
71   ];
73   propagatedBuildInputs = [
74     filelock
75     huggingface-hub
76     numpy
77     packaging
78     pyyaml
79     regex
80     requests
81     tokenizers
82     safetensors
83     tqdm
84   ];
86   passthru.optional-dependencies =
87   let
88     audio = [
89       librosa
90       # pyctcdecode
91       phonemizer
92       # kenlm
93     ];
94     vision = [ pillow ];
95   in
96     {
97     agents = [
98       diffusers
99       accelerate
100       datasets
101       torch
102       sentencepiece
103       opencv4
104       pillow
105     ];
106     ja = [
107       # fugashi
108       # ipadic
109       # rhoknp
110       # sudachidict_core
111       # sudachipy
112       # unidic
113       # unidic_lite
114     ];
115     sklearn = [
116       scikit-learn
117     ];
118     tf = [
119       tensorflow
120       onnxconverter-common
121       tf2onnx
122       # tensorflow-text
123       # keras-nlp
124     ];
125     torch = [
126       torch
127       accelerate
128     ];
129     retrieval = [ faiss datasets ];
130     flax = [ jax jaxlib flax optax ];
131     tokenizers = [
132       tokenizers
133     ];
134     ftfy = [ ftfy ];
135     onnxruntime = [
136       onnxruntime
137       onnxruntime-tools
138     ];
139     onnx = [
140       onnxconverter-common
141       tf2onnx
142       onnxruntime
143       onnxruntime-tools
144     ];
145     modelcreation = [
146       cookiecutter
147     ];
148     sagemaker = [
149       sagemaker
150     ];
151     deepspeed = [
152       # deepspeed
153       accelerate
154     ];
155     fairscale = [ fairscale ];
156     optuna = [ optuna ];
157     ray = [ ray ] ++ ray.optional-dependencies.tune-deps;
158     # sigopt = [ sigopt ];
159     # integrations = ray ++ optuna ++ sigopt;
160     serving = [
161       pydantic
162       uvicorn
163       fastapi
164       starlette
165     ];
166     audio = audio;
167     speech = [ torchaudio ] ++ audio;
168     torch-speech = [ torchaudio ] ++ audio;
169     tf-speech = audio;
170     flax-speech = audio;
171     timm = [ timm ];
172     torch-vision = [ torchvision ] ++ vision;
173     # natten = [ natten ];
174     # codecarbon = [ codecarbon ];
175     video = [
176       # decord
177       av
178     ];
179     sentencepiece = [ sentencepiece protobuf ];
180   };
183   # Many tests require internet access.
184   doCheck = false;
186   pythonImportsCheck = [
187     "transformers"
188   ];
190   meta = with lib; {
191     homepage = "https://github.com/huggingface/transformers";
192     description = "Natural Language Processing for TensorFlow 2.0 and PyTorch";
193     mainProgram = "transformers-cli";
194     changelog = "https://github.com/huggingface/transformers/releases/tag/v${version}";
195     license = licenses.asl20;
196     platforms = platforms.unix;
197     maintainers = with maintainers; [ pashashocky happysalada ];
198   };