1{
2 lib,
3 python3Packages,
4 fetchFromGitHub,
5 fetchpatch2,
6 versionCheckHook,
7}:
8
9python3Packages.buildPythonApplication rec {
10 pname = "render50";
11 version = "9.2.8";
12 pyproject = true;
13
14 src = fetchFromGitHub {
15 owner = "cs50";
16 repo = "render50";
17 tag = "v${version}";
18 hash = "sha256-ZCSd1Y7PPVkMQWkEgcaqh3Ypy8OrWxI9iM2HMVT/VeA=";
19 };
20
21 build-system = [
22 python3Packages.setuptools
23 ];
24
25 dependencies = with python3Packages; [
26 backports-shutil-which
27 braceexpand
28 beautifulsoup4
29 natsort
30 pygments
31 pypdf
32 requests
33 six
34 termcolor
35 weasyprint
36 ];
37
38 nativeCheckInputs = [ versionCheckHook ];
39 versionCheckProgramArg = "--version";
40
41 # no pytest checks
42
43 meta = {
44 description = "Generate syntax-highlighted PDFs of source code";
45 homepage = "https://cs50.readthedocs.io/render50/";
46 downloadPage = "https://github.com/cs50/render50";
47 changelog = "https://github.com/cs50/render50/releases/tag/v${version}";
48 license = lib.licenses.gpl3Only;
49 platforms = lib.platforms.unix;
50 maintainers = with lib.maintainers; [ ethancedwards8 ];
51 mainProgram = "render50";
52 };
53}