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