1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, pytestCheckHook
5, pythonAtLeast
6, pythonOlder
7}:
8
9buildPythonPackage rec {
10 pname = "frozendict";
11 version = "2.3.8";
12 format = "setuptools";
13
14 disabled = pythonOlder "3.7";
15
16 src = fetchFromGitHub {
17 owner = "Marco-Sulla";
18 repo = "python-frozendict";
19 rev = "refs/tags/v${version}";
20 hash = "sha256-4a0DvZOzNJqpop7wi+FagUR+8oaekz4EDNIYdUaAWC8=";
21 };
22
23 postPatch = ''
24 # https://github.com/Marco-Sulla/python-frozendict/pull/69
25 substituteInPlace setup.py \
26 --replace 'if impl == "PyPy":' 'if impl == "PyPy" or not src_path.exists():'
27 '';
28
29 nativeCheckInputs = [
30 pytestCheckHook
31 ];
32
33 pythonImportsCheck = [
34 "frozendict"
35 ];
36
37 preCheck = ''
38 pushd test
39 '';
40
41 disabledTests = lib.optionals (pythonAtLeast "3.11") [
42 # https://github.com/Marco-Sulla/python-frozendict/issues/68
43 "test_c_extension"
44 ];
45
46 meta = with lib; {
47 description = "Module for immutable dictionary";
48 homepage = "https://github.com/Marco-Sulla/python-frozendict";
49 changelog = "https://github.com/Marco-Sulla/python-frozendict/releases/tag/v${version}";
50 license = licenses.lgpl3Only;
51 maintainers = with maintainers; [ ];
52 };
53}