1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 aiofiles,
6 asgi-csrf,
7 click,
8 click-default-group,
9 flexcache,
10 flexparser,
11 httpx,
12 hupper,
13 itsdangerous,
14 janus,
15 jinja2,
16 mergedeep,
17 platformdirs,
18 pluggy,
19 pyyaml,
20 typing-extensions,
21 uvicorn,
22 pytestCheckHook,
23 pytest-asyncio,
24 pytest-timeout,
25 aiohttp,
26 beautifulsoup4,
27 asgiref,
28 setuptools,
29 trustme,
30 pythonOlder,
31}:
32
33buildPythonPackage rec {
34 pname = "datasette";
35 version = "0.65.1";
36 pyproject = true;
37
38 disabled = pythonOlder "3.8";
39
40 src = fetchFromGitHub {
41 owner = "simonw";
42 repo = "datasette";
43 tag = version;
44 hash = "sha256-kVtldBuDy19DmyxEQLtAjs1qiNIjaT8+rnHlFfGNHec=";
45 };
46
47 postPatch = ''
48 substituteInPlace setup.py \
49 --replace '"pytest-runner"' ""
50 '';
51
52 build-system = [ setuptools ];
53
54 pythonRemoveDeps = [
55 "pip"
56 "setuptools"
57 ];
58
59 dependencies = [
60 aiofiles
61 asgi-csrf
62 asgiref
63 click
64 click-default-group
65 flexcache
66 flexparser
67 httpx
68 hupper
69 itsdangerous
70 janus
71 jinja2
72 mergedeep
73 platformdirs
74 pluggy
75 pyyaml
76 setuptools
77 typing-extensions
78 uvicorn
79 ];
80
81 nativeCheckInputs = [
82 aiohttp
83 beautifulsoup4
84 pytest-asyncio
85 pytest-timeout
86 pytestCheckHook
87 trustme
88 ];
89
90 pytestFlags = [
91 # datasette/app.py:14: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
92 "-Wignore::DeprecationWarning"
93 ];
94
95 # takes 30-180 mins to run entire test suite, not worth the CPU resources, slows down reviews
96 # with pytest-xdist, it still takes around 10 mins with 32 cores
97 # just run the csv tests, as this should give some indictation of correctness
98 enabledTestPaths = [
99 "tests/test_csv.py"
100 ];
101
102 disabledTests = [
103 "facet"
104 "_invalid_database" # checks error message when connecting to invalid database
105 ];
106
107 pythonImportsCheck = [
108 "datasette"
109 "datasette.cli"
110 "datasette.app"
111 "datasette.database"
112 "datasette.renderer"
113 "datasette.tracer"
114 "datasette.plugins"
115 ];
116
117 meta = with lib; {
118 description = "Multi-tool for exploring and publishing data";
119 mainProgram = "datasette";
120 homepage = "https://datasette.io/";
121 changelog = "https://github.com/simonw/datasette/releases/tag/${version}";
122 license = licenses.asl20;
123 maintainers = [ ];
124 };
125}