1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pytestCheckHook,
6 pythonOlder,
7 setuptools,
8 fetchpatch,
9}:
10
11buildPythonPackage rec {
12 pname = "pony";
13 version = "0.7.17";
14 pyproject = true;
15
16 disabled = pythonOlder "3.8";
17
18 src = fetchFromGitHub {
19 owner = "ponyorm";
20 repo = "pony";
21 rev = "refs/tags/v${version}";
22 hash = "sha256-wBqw+YHKlxYplgsYL1pbkusHyPfCaVPcH/Yku6WDYbE=";
23 };
24
25 patches = [
26 # https://github.com/ponyorm/pony/pull/713
27 (fetchpatch {
28 name = "py312-compat.patch";
29 url = "https://github.com/ponyorm/pony/commit/5a37f6d59b6433d17d6d56b54f3726190e98c98f.patch";
30 hash = "sha256-niOoANOYHqrcmEXRZEDew2BM8P/s7UFnn0qpgB8V0Mk=";
31 })
32 ];
33
34 nativeBuildInputs = [ setuptools ];
35
36 nativeCheckInputs = [ pytestCheckHook ];
37
38 disabledTests = [
39 # Tests are outdated
40 "test_method"
41 # https://github.com/ponyorm/pony/issues/704
42 "test_composite_param"
43 "test_equal_json"
44 "test_equal_list"
45 "test_len"
46 "test_ne"
47 "test_nonzero"
48 "test_query"
49 ];
50
51 pythonImportsCheck = [ "pony" ];
52
53 meta = with lib; {
54 description = "Library for advanced object-relational mapping";
55 homepage = "https://ponyorm.org/";
56 changelog = "https://github.com/ponyorm/pony/releases/tag/v${version}";
57 license = licenses.asl20;
58 maintainers = with maintainers; [
59 d-goldin
60 xvapx
61 ];
62 };
63}