nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 aiofiles,
4 aiohttp,
5 buildPythonPackage,
6 certifi,
7 docutils,
8 fastapi,
9 fetchFromGitHub,
10 httpx,
11 ifaddr,
12 itsdangerous,
13 jinja2,
14 libsass,
15 markdown2,
16 matplotlib,
17 orjson,
18 pandas,
19 pkgs,
20 plotly,
21 poetry-core,
22 poetry-dynamic-versioning,
23 polars,
24 pyecharts,
25 pygments,
26 pytest-asyncio,
27 pytest-selenium,
28 pytestCheckHook,
29 python-multipart,
30 python-socketio,
31 pywebview,
32 redis,
33 requests,
34 setuptools,
35 typing-extensions,
36 urllib3,
37 uvicorn,
38 vbuild,
39 watchfiles,
40 webdriver-manager,
41 writableTmpDirAsHomeHook,
42}:
43
44buildPythonPackage (finalAttrs: {
45 pname = "nicegui";
46 version = "3.6.1";
47 pyproject = true;
48
49 src = fetchFromGitHub {
50 owner = "zauberzeug";
51 repo = "nicegui";
52 tag = "v${finalAttrs.version}";
53 hash = "sha256-umM2ffkiXWJVU2i17fbtnd+ghEt0uVzop9fNhaRTCWM=";
54 };
55
56 pythonRelaxDeps = [ "requests" ];
57
58 build-system = [
59 poetry-core
60 poetry-dynamic-versioning
61 setuptools
62 ];
63
64 dependencies = [
65 aiofiles
66 aiohttp
67 certifi
68 docutils
69 fastapi
70 httpx
71 ifaddr
72 itsdangerous
73 jinja2
74 markdown2
75 orjson
76 pygments
77 python-multipart
78 python-socketio
79 requests
80 typing-extensions
81 urllib3
82 uvicorn
83 vbuild
84 watchfiles
85 ];
86
87 optional-dependencies = {
88 # Circular dependency
89 # highcharts = [ nicegui-highcharts ];
90 matplotlib = [ matplotlib ];
91 native = [ pywebview ];
92 plotly = [ plotly ];
93 sass = [ libsass ];
94 redis = [ redis ];
95 };
96
97 nativeCheckInputs = [
98 pandas
99 pkgs.chromedriver
100 polars
101 pyecharts
102 pytest-asyncio
103 pytest-selenium
104 pytestCheckHook
105 webdriver-manager
106 writableTmpDirAsHomeHook
107 ]
108 ++ lib.flatten (builtins.attrValues finalAttrs.passthru.optional-dependencies);
109
110 pythonImportsCheck = [ "nicegui" ];
111
112 # chromedriver release doesn't seems to be supported, try with next release
113 doCheck = false;
114
115 meta = {
116 description = "Module to create web-based user interfaces";
117 homepage = "https://github.com/zauberzeug/nicegui/";
118 changelog = "https://github.com/zauberzeug/nicegui/releases/tag/${finalAttrs.src.tag}";
119 license = lib.licenses.mit;
120 maintainers = with lib.maintainers; [ fab ];
121 };
122})