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