1{
2 lib,
3 attrs,
4 buildPythonPackage,
5 fetchPypi,
6 hatch-fancy-pypi-readme,
7 hatch-vcs,
8 hatchling,
9 jsonpath-ng,
10 jsonschema-specifications,
11 pip,
12 pytestCheckHook,
13 referencing,
14 rpds-py,
15
16 # optionals
17 fqdn,
18 idna,
19 isoduration,
20 jsonpointer,
21 rfc3339-validator,
22 rfc3986-validator,
23 rfc3987,
24 rfc3987-syntax,
25 uri-template,
26 webcolors,
27}:
28
29buildPythonPackage rec {
30 pname = "jsonschema";
31 version = "4.25.0";
32 pyproject = true;
33
34 src = fetchPypi {
35 inherit pname version;
36 hash = "sha256-5jrPXBF2LA5mcv+2FIK99X8IdmhNjSScD+LXMNSLxV8=";
37 };
38
39 postPatch = ''
40 patchShebangs json/bin/jsonschema_suite
41 '';
42
43 build-system = [
44 hatch-fancy-pypi-readme
45 hatch-vcs
46 hatchling
47 ];
48
49 dependencies = [
50 attrs
51 jsonpath-ng
52 jsonschema-specifications
53 referencing
54 rpds-py
55 ];
56
57 optional-dependencies = {
58 format = [
59 fqdn
60 idna
61 isoduration
62 jsonpointer
63 rfc3339-validator
64 rfc3987
65 uri-template
66 webcolors
67 ];
68 format-nongpl = [
69 fqdn
70 idna
71 isoduration
72 jsonpointer
73 rfc3339-validator
74 rfc3986-validator
75 rfc3987-syntax
76 uri-template
77 webcolors
78 ];
79 };
80
81 nativeCheckInputs = [
82 pip
83 pytestCheckHook
84 ];
85
86 pythonImportsCheck = [ "jsonschema" ];
87
88 meta = with lib; {
89 description = "Implementation of JSON Schema validation";
90 homepage = "https://github.com/python-jsonschema/jsonschema";
91 changelog = "https://github.com/python-jsonschema/jsonschema/blob/v${version}/CHANGELOG.rst";
92 license = licenses.mit;
93 maintainers = with maintainers; [ ];
94 mainProgram = "jsonschema";
95 };
96}