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