1{ buildPythonPackage
2, lib
3, fetchFromGitHub
4, pythonOlder
5, cookiecutter
6, filelock
7, importlib-metadata
8, regex
9, requests
10, numpy
11, packaging
12, protobuf
13, sacremoses
14, tokenizers
15, tqdm
16}:
17
18buildPythonPackage rec {
19 pname = "transformers";
20 version = "4.4.2";
21
22 src = fetchFromGitHub {
23 owner = "huggingface";
24 repo = pname;
25 rev = "v${version}";
26 hash = "sha256-kl1Z2FBo+yqVXUqLaUtet6IycmdcAtfydNTI4MNNrkc=";
27 };
28
29 nativeBuildInputs = [ packaging ];
30
31 propagatedBuildInputs = [
32 cookiecutter
33 filelock
34 numpy
35 protobuf
36 regex
37 requests
38 sacremoses
39 tokenizers
40 tqdm
41 ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
42
43 # Many tests require internet access.
44 doCheck = false;
45
46 postPatch = ''
47 sed -ri 's/tokenizers[=>]=[^"]+/tokenizers/g' setup.py src/transformers/dependency_versions_table.py
48 '';
49
50 pythonImportsCheck = [ "transformers" ];
51
52 meta = with lib; {
53 homepage = "https://github.com/huggingface/transformers";
54 description = "State-of-the-art Natural Language Processing for TensorFlow 2.0 and PyTorch";
55 changelog = "https://github.com/huggingface/transformers/releases/tag/v${version}";
56 license = licenses.asl20;
57 platforms = platforms.unix;
58 maintainers = with maintainers; [ danieldk pashashocky ];
59 };
60}