1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 pythonOlder,
6 setuptools,
7 six,
8}:
9
10buildPythonPackage rec {
11 pname = "attrdict";
12 version = "2.0.1";
13 pyproject = true;
14
15 disabled = pythonOlder "3.7";
16
17 src = fetchPypi {
18 inherit pname version;
19 hash = "sha256-NckGmLVcaDlGCRF3F3qenAcToIYPDgSf69cmSczXe3A=";
20 };
21
22 postPatch = ''
23 substituteInPlace attrdict/merge.py \
24 --replace-fail "from collections" "from collections.abc"
25 substituteInPlace attrdict/mapping.py \
26 --replace-fail "from collections" "from collections.abc"
27 substituteInPlace attrdict/default.py \
28 --replace-fail "from collections" "from collections.abc"
29 substituteInPlace attrdict/mixins.py \
30 --replace-fail "from collections" "from collections.abc"
31 '';
32
33 build-system = [ setuptools ];
34
35 dependencies = [ six ];
36
37 # Tests are not shipped and source is not tagged
38 doCheck = false;
39
40 pythonImportsCheck = [ "attrdict" ];
41
42 meta = with lib; {
43 description = "Dict with attribute-style access";
44 homepage = "https://github.com/bcj/AttrDict";
45 changelog = "https://github.com/bcj/AttrDict/releases/tag/v${version}";
46 license = licenses.mit;
47 maintainers = [ ];
48 };
49}