1{
2 lib,
3 attrs,
4 buildPythonPackage,
5 fetchFromGitHub,
6 pytestCheckHook,
7 pythonAtLeast,
8 pythonOlder,
9 typish,
10 tzdata,
11}:
12
13buildPythonPackage rec {
14 pname = "jsons";
15 version = "1.6.3";
16 format = "setuptools";
17
18 disabled = pythonOlder "3.7";
19
20 src = fetchFromGitHub {
21 owner = "ramonhagenaars";
22 repo = "jsons";
23 tag = "v${version}";
24 hash = "sha256-7OIByHvsqhKFOkb1q2kuxmbkkleryavYgp/T4U5hvGk=";
25 };
26
27 propagatedBuildInputs = [ typish ];
28
29 nativeCheckInputs = [
30 attrs
31 pytestCheckHook
32 tzdata
33 ];
34
35 disabledTestPaths = [
36 # These tests are based on timings, which fail
37 # on slow or overloaded machines.
38 "tests/test_performance.py"
39 ];
40
41 disabledTests = lib.optionals (pythonAtLeast "3.11") [
42 # https://github.com/ramonhagenaars/jsons/issues/187
43 "test_dump_load_parameterized_collections"
44 ];
45
46 pythonImportsCheck = [ "jsons" ];
47
48 meta = with lib; {
49 description = "Turn Python objects into dicts or json strings and back";
50 homepage = "https://github.com/ramonhagenaars/jsons";
51 changelog = "https://github.com/ramonhagenaars/jsons/releases/tag/v${version}";
52 license = licenses.mit;
53 maintainers = with maintainers; [ fmoda3 ];
54 };
55}