1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 click,
6 ordered-set,
7 orjson,
8 clevercsv,
9 jsonpickle,
10 numpy,
11 pytestCheckHook,
12 python-dateutil,
13 pyyaml,
14 toml,
15 tomli-w,
16 pythonOlder,
17}:
18
19buildPythonPackage rec {
20 pname = "deepdiff";
21 version = "7.0.1";
22 format = "setuptools";
23
24 disabled = pythonOlder "3.7";
25
26 src = fetchFromGitHub {
27 owner = "seperman";
28 repo = "deepdiff";
29 rev = "refs/tags/${version}";
30 hash = "sha256-HqmAE5sLwyjyUahIUeRIJW0c5eliq/qEzE2FydHwc70=";
31 };
32
33 postPatch = ''
34 substituteInPlace tests/test_command.py \
35 --replace '/tmp/' "$TMPDIR/"
36 '';
37
38 propagatedBuildInputs = [
39 click
40 ordered-set
41 orjson
42 ];
43
44 passthru.optional-dependencies = {
45 cli = [
46 clevercsv
47 click
48 pyyaml
49 toml
50 ];
51 };
52
53 nativeCheckInputs = [
54 jsonpickle
55 numpy
56 pytestCheckHook
57 python-dateutil
58 tomli-w
59 ] ++ passthru.optional-dependencies.cli;
60
61 disabledTests = [
62 # not compatible with pydantic 2.x
63 "test_pydantic1"
64 "test_pydantic2"
65 ];
66
67 pythonImportsCheck = [ "deepdiff" ];
68
69 meta = with lib; {
70 description = "Deep Difference and Search of any Python object/data";
71 mainProgram = "deep";
72 homepage = "https://github.com/seperman/deepdiff";
73 changelog = "https://github.com/seperman/deepdiff/releases/tag/${version}";
74 license = licenses.mit;
75 maintainers = with maintainers; [ mic92 ];
76 };
77}