1{
2 lib,
3 fetchPypi,
4 buildPythonPackage,
5 pythonOlder,
6 numpy,
7 wheel,
8 werkzeug,
9 protobuf,
10 grpcio,
11 markdown,
12 absl-py,
13 google-auth-oauthlib,
14 setuptools,
15 tensorboard-data-server,
16 tensorboard-plugin-wit,
17 tensorboard-plugin-profile,
18}:
19
20# tensorflow/tensorboard is built from a downloaded wheel, because
21# https://github.com/tensorflow/tensorboard/issues/719 blocks
22# buildBazelPackage.
23
24buildPythonPackage rec {
25 pname = "tensorboard";
26 version = "2.18.0";
27 format = "wheel";
28 disabled = pythonOlder "3.9";
29
30 src = fetchPypi {
31 inherit pname version format;
32 dist = "py3";
33 python = "py3";
34 hash = "sha256-EHykghdF9z4q76AsUP9wqbaU8595CxHm9oL30yZ0Xqs=";
35 };
36
37 pythonRelaxDeps = [
38 "google-auth-oauthlib"
39 "protobuf"
40 ];
41
42 propagatedBuildInputs = [
43 absl-py
44 grpcio
45 google-auth-oauthlib
46 markdown
47 numpy
48 protobuf
49 setuptools
50 tensorboard-data-server
51 tensorboard-plugin-profile
52 tensorboard-plugin-wit
53 werkzeug
54 # not declared in install_requires, but used at runtime
55 # https://github.com/NixOS/nixpkgs/issues/73840
56 wheel
57 ];
58
59 # in the absence of a real test suite, run cli and imports
60 checkPhase = ''
61 $out/bin/tensorboard --help > /dev/null
62 '';
63
64 pythonImportsCheck = [
65 "tensorboard"
66 "tensorboard.backend"
67 "tensorboard.compat"
68 "tensorboard.data"
69 "tensorboard.plugins"
70 "tensorboard.summary"
71 "tensorboard.util"
72 ];
73
74 meta = with lib; {
75 changelog = "https://github.com/tensorflow/tensorboard/blob/${version}/RELEASE.md";
76 description = "TensorFlow's Visualization Toolkit";
77 homepage = "https://www.tensorflow.org/";
78 license = licenses.asl20;
79 mainProgram = "tensorboard";
80 maintainers = with maintainers; [ abbradar ];
81 };
82}