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, markupsafe
14, marshmallow
15, marshmallow-dataclass
16, mistune
17, pip
18, pyopenssl
19, pytest-click
20, pytest-mock
21, pytest-pylint
22, pytestCheckHook
23, python
24, pythonOlder
25, python-slugify
26, pytz
27, requests
28, setuptools
29, typing-inspect
30, watchdog
31, werkzeug
32}:
33
34buildPythonPackage rec {
35 pname = "lektor";
36 version = "3.4.0b4";
37 format = "pyproject";
38
39 disabled = pythonOlder "3.7";
40
41 src = fetchFromGitHub {
42 owner = "lektor";
43 repo = pname;
44 rev = "refs/tags/v${version}";
45 hash = "sha256-O0bTmJqRymrQuHW19Y7/Kp+2XlbmDzcjl/jDACDlCSk=";
46 };
47
48 propagatedBuildInputs = [
49 babel
50 click
51 deprecated
52 exifread
53 filetype
54 flask
55 inifile
56 jinja2
57 markupsafe
58 marshmallow
59 marshmallow-dataclass
60 mistune
61 pip
62 pyopenssl
63 python-slugify
64 pytz
65 requests
66 setuptools
67 typing-inspect
68 watchdog
69 werkzeug
70 ] ++ lib.optionals (pythonOlder "3.8") [
71 importlib-metadata
72 ];
73
74 nativeCheckInputs = [
75 pytest-click
76 pytest-mock
77 pytestCheckHook
78 ];
79
80 postInstall = ''
81 cp -r lektor/translations "$out/${python.sitePackages}/lektor/"
82 '';
83
84 pythonImportsCheck = [
85 "lektor"
86 ];
87
88 disabledTests = [
89 # Test requires network access
90 "test_path_installed_plugin_is_none"
91 ];
92
93 meta = with lib; {
94 description = "A static content management system";
95 homepage = "https://www.getlektor.com/";
96 changelog = "https://github.com/lektor/lektor/blob/v${version}/CHANGES.md";
97 license = licenses.bsd0;
98 maintainers = with maintainers; [ costrouc ];
99 };
100}