1{
2 lib,
3 buildPythonPackage,
4 fetchpatch,
5 fetchPypi,
6 attrs,
7 freezegun,
8 numpy,
9 py,
10 pytestCheckHook,
11 pythonAtLeast,
12 pythonOlder,
13 setuptools,
14}:
15
16buildPythonPackage rec {
17 pname = "pypytools";
18 version = "0.6.2";
19 pyproject = true;
20
21 disabled = pythonOlder "3.7";
22
23 src = fetchPypi {
24 inherit pname version;
25 hash = "sha256-oUDAU+TRwLroNfQGYusAQKdRkHcazysqiDLfp77v5Sk=";
26 };
27
28 nativeBuildInputs = [ setuptools ];
29
30 propagatedBuildInputs = [
31 # attrs is an implicit dependency
32 attrs
33 py
34 ];
35
36 nativeCheckInputs = [
37 freezegun
38 numpy
39 py
40 pytestCheckHook
41 ];
42
43 patches = [
44 # Support for later Python releases, https://github.com/antocuni/pypytools/pull/2
45 (fetchpatch {
46 name = "support-later-python.patch";
47 url = "https://github.com/antocuni/pypytools/commit/c6aed496ec35a6ef7ce9e95084849eebc16bafef.patch";
48 hash = "sha256-YoYRZmgueQmxRtGaeP4zEVxuA0U7TB0PmoYHHVI7ICQ=";
49 })
50 ];
51
52 pythonImportsCheck = [ "pypytools" ];
53
54 disabledTests = lib.optionals (pythonAtLeast "3.11") [
55 # https://github.com/antocuni/pypytools/issues/4
56 "test_clonefunc"
57 ];
58
59 meta = with lib; {
60 description = "Collection of tools to use PyPy-specific features";
61 homepage = "https://github.com/antocuni/pypytools";
62 license = licenses.mit;
63 maintainers = with maintainers; [ fab ];
64 };
65}