nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
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 pytz,
15 pyyaml,
16 requests,
17}:
18
19buildPythonPackage rec {
20 pname = "json-schema-for-humans";
21 version = "1.5.1";
22 pyproject = true;
23
24 src = fetchFromGitHub {
25 owner = "coveooss";
26 repo = "json-schema-for-humans";
27 tag = "v${version}";
28 hash = "sha256-k4/+ijlaS/bjLcgobPcq6l4yX84WP1FwfGgYHw+iAdE=";
29 };
30
31 postPatch = ''
32 substituteInPlace pyproject.toml \
33 --replace-fail 'markdown2 = "^2.5.0"' 'markdown2 = "^2.4.1"'
34 '';
35
36 pythonRelaxDeps = [ "dataclasses-json" ];
37
38 build-system = [ poetry-core ];
39
40 dependencies = [
41 click
42 dataclasses-json
43 htmlmin
44 jinja2
45 markdown2
46 pygments
47 pytz
48 pyyaml
49 requests
50 ];
51
52 nativeCheckInputs = [
53 beautifulsoup4
54 pytestCheckHook
55 ];
56
57 disabledTests = [
58 # Tests require network access
59 "test_references_url"
60 # Tests are failing
61 "TestMdGenerate"
62 # Broken since click was updated to 8.2.1 in https://github.com/NixOS/nixpkgs/pull/448189
63 # Click 8.2 separates stdout and stderr, but upstream is on click 8.1 (https://github.com/pallets/click/pull/2523)
64 "test_nonexistent_output_path"
65 "test_config_parameters_with_nonexistent_output_path"
66 ];
67
68 pythonImportsCheck = [ "json_schema_for_humans" ];
69
70 meta = {
71 description = "Quickly generate HTML documentation from a JSON schema";
72 homepage = "https://github.com/coveooss/json-schema-for-humans";
73 changelog = "https://github.com/coveooss/json-schema-for-humans/releases/tag/${src.tag}";
74 license = lib.licenses.asl20;
75 maintainers = with lib.maintainers; [ astro ];
76 mainProgram = "generate-schema-doc";
77 };
78}