1{
2 lib,
3 stdenv,
4 altair,
5 blinker,
6 buildPythonPackage,
7 cachetools,
8 click,
9 fetchPypi,
10 gitpython,
11 importlib-metadata,
12 numpy,
13 packaging,
14 pandas,
15 pillow,
16 protobuf,
17 pyarrow,
18 pydeck,
19 pympler,
20 python-dateutil,
21 pythonOlder,
22 pythonRelaxDepsHook,
23 setuptools,
24 requests,
25 rich,
26 tenacity,
27 toml,
28 tornado,
29 typing-extensions,
30 tzlocal,
31 validators,
32 watchdog,
33}:
34
35buildPythonPackage rec {
36 pname = "streamlit";
37 version = "1.34.0";
38 pyproject = true;
39
40 disabled = pythonOlder "3.8";
41
42 src = fetchPypi {
43 inherit pname version;
44 hash = "sha256-E1o7eaaGsxMrc/IERQrW6IneBPM0nWkpJeCfDiHnS1I=";
45 };
46
47 nativeBuildInputs = [
48 setuptools
49 pythonRelaxDepsHook
50 ];
51
52 pythonRelaxDeps = [ "packaging" ];
53
54 propagatedBuildInputs = [
55 altair
56 blinker
57 cachetools
58 click
59 gitpython
60 importlib-metadata
61 numpy
62 packaging
63 pandas
64 pillow
65 protobuf
66 pyarrow
67 pydeck
68 pympler
69 python-dateutil
70 requests
71 rich
72 tenacity
73 toml
74 tornado
75 typing-extensions
76 tzlocal
77 validators
78 ] ++ lib.optionals (!stdenv.isDarwin) [ watchdog ];
79
80 # pypi package does not include the tests, but cannot be built with fetchFromGitHub
81 doCheck = false;
82
83 pythonImportsCheck = [ "streamlit" ];
84
85 postInstall = ''
86 rm $out/bin/streamlit.cmd # remove windows helper
87 '';
88
89 meta = with lib; {
90 homepage = "https://streamlit.io/";
91 changelog = "https://github.com/streamlit/streamlit/releases/tag/${version}";
92 description = "The fastest way to build custom ML tools";
93 mainProgram = "streamlit";
94 maintainers = with maintainers; [
95 natsukium
96 yrashk
97 ];
98 license = licenses.asl20;
99 };
100}