1{
2 lib,
3 aiohttp,
4 babel,
5 blinker,
6 buildPythonPackage,
7 docutils,
8 doit,
9 feedparser,
10 fetchPypi,
11 freezegun,
12 ghp-import,
13 hsluv,
14 html5lib,
15 ipykernel,
16 jinja2,
17 lxml,
18 mako,
19 markdown,
20 micawber,
21 mock,
22 natsort,
23 notebook,
24 phpserialize,
25 piexif,
26 pillow,
27 pygal,
28 pygments,
29 pyphen,
30 pyrss2gen,
31 pytestCheckHook,
32 python-dateutil,
33 pythonOlder,
34 requests,
35 ruamel-yaml,
36 setuptools,
37 toml,
38 typogrify,
39 unidecode,
40 watchdog,
41 yapsy,
42}:
43
44buildPythonPackage rec {
45 pname = "nikola";
46 version = "8.3.1";
47 pyproject = true;
48
49 disabled = pythonOlder "3.8";
50
51 src = fetchPypi {
52 pname = "Nikola";
53 inherit version;
54 hash = "sha256-IfJB2Rl3c1MyEiuyNpT3udfpM480VvFD8zosJFDHr7k=";
55 };
56
57 postPatch = ''
58 substituteInPlace setup.cfg \
59 --replace-fail "--cov nikola --cov-report term-missing" ""
60 '';
61
62 nativeBuildInputs = [ setuptools ];
63
64 propagatedBuildInputs = [
65 aiohttp
66 babel
67 blinker
68 docutils
69 doit
70 feedparser
71 ghp-import
72 hsluv
73 html5lib
74 ipykernel
75 jinja2
76 lxml
77 mako
78 markdown
79 micawber
80 natsort
81 notebook
82 phpserialize
83 piexif
84 pillow
85 pygal
86 pygments
87 pyphen
88 pyrss2gen
89 python-dateutil
90 requests
91 ruamel-yaml
92 toml
93 typogrify
94 unidecode
95 watchdog
96 yapsy
97 ];
98
99 nativeCheckInputs = [
100 freezegun
101 mock
102 pytestCheckHook
103 ];
104
105 disabledTests = [
106 # AssertionError
107 "test_compiling_markdown"
108 # Date formatting slightly differs from expectation
109 "test_format_date_long"
110 "test_format_date_timezone"
111 "test_format_date_locale_variants"
112 "test_format_date_locale_variants"
113 ];
114
115 pythonImportsCheck = [ "nikola" ];
116
117 meta = with lib; {
118 description = "Static website and blog generator";
119 mainProgram = "nikola";
120 homepage = "https://getnikola.com/";
121 changelog = "https://github.com/getnikola/nikola/blob/v${version}/CHANGES.txt";
122 license = licenses.mit;
123 maintainers = with maintainers; [ jluttine ];
124 };
125}