Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / pelican / default.nix
blob23e0ae1aff943e0c5218117e50bb4e937cbff79d
1 { lib
2 , buildPythonPackage
3 , fetchFromGitHub
4 , pythonOlder
5 , pythonRelaxDepsHook
7 # build-system
8 , pdm-backend
10 # native dependencies
11 , glibcLocales
12 , git
13 , pandoc
14 , typogrify
16 # dependencies
17 , backports-zoneinfo
18 , blinker
19 , docutils
20 , feedgenerator
21 , jinja2
22 , markdown
23 , ordered-set
24 , pygments
25 , python-dateutil
26 , rich
27 , tzdata
28 , unidecode
29 , watchfiles
31 # tests
32 , mock
33 , pytestCheckHook
34 , pytest-xdist
37 buildPythonPackage rec {
38   pname = "pelican";
39   version = "4.9.1";
40   pyproject = true;
42   disabled = pythonOlder "3.8";
44   src = fetchFromGitHub {
45     owner = "getpelican";
46     repo = "pelican";
47     rev = "refs/tags/${version}";
48     hash = "sha256-nz2OnxJ4mGgnafz4Xp8K/BTyVgXNpNYqteNL1owP8Hk=";
49     # Remove unicode file names which leads to different checksums on HFS+
50     # vs. other filesystems because of unicode normalisation.
51     postFetch = ''
52       rm -r $out/pelican/tests/output/custom_locale/posts
53     '';
54   };
56   postPatch = ''
57     substituteInPlace pelican/tests/test_pelican.py \
58       --replace "'git'" "'${git}/bin/git'"
59   '';
61   nativeBuildInputs = [
62     pdm-backend
63     pythonRelaxDepsHook
64   ];
66   pythonRelaxDeps = [
67     "unidecode"
68   ];
70   buildInputs = [
71     glibcLocales
72     pandoc
73     git
74     markdown
75     typogrify
76   ];
78   propagatedBuildInputs = [
79     blinker
80     docutils
81     feedgenerator
82     jinja2
83     ordered-set
84     pygments
85     python-dateutil
86     rich
87     tzdata
88     unidecode
89     watchfiles
90   ] ++ lib.optionals (pythonOlder "3.9") [
91     backports-zoneinfo
92   ];
94   nativeCheckInputs = [
95     mock
96     pytest-xdist
97     pytestCheckHook
98     pandoc
99   ];
101   pytestFlagsArray = [
102     # DeprecationWarning: 'jinja2.Markup' is deprecated and...
103     "-W ignore::DeprecationWarning"
104   ];
106   disabledTests = [
107     # AssertionError
108     "test_basic_generation_works"
109     "test_custom_generation_works"
110     "test_custom_locale_generation_works"
111   ];
113   env.LC_ALL = "en_US.UTF-8";
115   # We only want to patch shebangs in /bin, and not those
116   # of the project scripts that are created by Pelican.
117   # See https://github.com/NixOS/nixpkgs/issues/30116
118   dontPatchShebangs = true;
120   postFixup = ''
121     patchShebangs $out/bin
122   '';
124   pythonImportsCheck = [ "pelican" ];
126   meta = with lib; {
127     description = "Static site generator that requires no database or server-side logic";
128     homepage = "https://getpelican.com/";
129     license = licenses.agpl3Only;
130     maintainers = with maintainers; [ offline prikhi ];
131   };