1{
2 lib,
3 beautifulsoup4,
4 buildPythonPackage,
5 click,
6 dataclasses-json,
7 fetchFromGitHub,
8 htmlmin,
9 jinja2,
10 markdown2,
11 poetry-core,
12 pygments,
13 pytestCheckHook,
14 pythonOlder,
15 pythonRelaxDepsHook,
16 pytz,
17 pyyaml,
18 requests,
19}:
20
21buildPythonPackage rec {
22 pname = "json-schema-for-humans";
23 version = "1.0.2";
24 pyproject = true;
25
26 disabled = pythonOlder "3.7";
27
28 src = fetchFromGitHub {
29 owner = "coveooss";
30 repo = "json-schema-for-humans";
31 rev = "refs/tags/v${version}";
32 hash = "sha256-SSMUHC4IsMIIhmRrG0ZWNO2MNKKvoBSybmEEibAY5q0=";
33 };
34
35 pythonRelaxDeps = [ "dataclasses-json" ];
36
37 build-system = [ poetry-core ];
38
39 nativeBuildInputs = [ pythonRelaxDepsHook ];
40
41 dependencies = [
42 click
43 dataclasses-json
44 htmlmin
45 jinja2
46 markdown2
47 pygments
48 pytz
49 pyyaml
50 requests
51 ];
52
53 nativeCheckInputs = [
54 beautifulsoup4
55 pytestCheckHook
56 ];
57
58 disabledTests = [
59 # Tests require network access
60 "test_references_url"
61 # Tests are failing
62 "TestMdGenerate"
63 ];
64
65 pythonImportsCheck = [ "json_schema_for_humans" ];
66
67 meta = with lib; {
68 description = "Quickly generate HTML documentation from a JSON schema";
69 homepage = "https://github.com/coveooss/json-schema-for-humans";
70 changelog = "https://github.com/coveooss/json-schema-for-humans/releases/tag/v${version}";
71 license = licenses.asl20;
72 maintainers = with maintainers; [ astro ];
73 mainProgram = "generate-schema-doc";
74 };
75}