1{ lib
2, babel
3, buildPythonPackage
4, click
5, deprecated
6, exifread
7, fetchFromGitHub
8, filetype
9, flask
10, importlib-metadata
11, inifile
12, jinja2
13, marshmallow
14, marshmallow-dataclass
15, mistune
16, pip
17, pyopenssl
18, pytest-click
19, pytest-mock
20, pytest-pylint
21, pytestCheckHook
22, pythonOlder
23, python-slugify
24, requests
25, setuptools
26, typing-inspect
27, watchdog
28, werkzeug
29}:
30
31buildPythonPackage rec {
32 pname = "lektor";
33 version = "3.4.0b2";
34 format = "pyproject";
35
36 disabled = pythonOlder "3.7";
37
38 src = fetchFromGitHub {
39 owner = "lektor";
40 repo = pname;
41 rev = "refs/tags/v${version}";
42 hash = "sha256-5w3tT0celHgjmLlsM3sdBdYlXx57z3kMePVGSQkOP7M=";
43 };
44
45 propagatedBuildInputs = [
46 babel
47 click
48 deprecated
49 exifread
50 filetype
51 flask
52 inifile
53 jinja2
54 marshmallow
55 marshmallow-dataclass
56 mistune
57 pip
58 pyopenssl
59 python-slugify
60 requests
61 setuptools
62 typing-inspect
63 watchdog
64 werkzeug
65 ] ++ lib.optionals (pythonOlder "3.8") [
66 importlib-metadata
67 ];
68
69 checkInputs = [
70 pytest-click
71 pytest-mock
72 pytestCheckHook
73 ];
74
75 postPatch = ''
76 substituteInPlace setup.cfg \
77 --replace "typing.inspect < 0.8.0" "typing.inspect"
78 '';
79
80 pythonImportsCheck = [
81 "lektor"
82 ];
83
84 disabledTests = [
85 # Test requires network access
86 "test_path_installed_plugin_is_none"
87 ];
88
89 meta = with lib; {
90 description = "A static content management system";
91 homepage = "https://www.getlektor.com/";
92 license = licenses.bsd0;
93 maintainers = with maintainers; [ costrouc ];
94 };
95}