1{
2 lib,
3 fetchFromGitHub,
4 buildPythonPackage,
5 setuptools,
6 zope-interface,
7 pytestCheckHook,
8 pythonOlder,
9}:
10
11buildPythonPackage rec {
12 pname = "transaction";
13 version = "5.0";
14 pyproject = true;
15
16 disabled = pythonOlder "3.8";
17
18 src = fetchFromGitHub {
19 owner = "zopefoundation";
20 repo = "transaction";
21 tag = version;
22 hash = "sha256-8yvA2dvB69+EqsAa+hc93rgg6D64lcajl6JgFabhjwY=";
23 };
24
25 postPatch = ''
26 substituteInPlace pyproject.toml \
27 --replace-fail "setuptools<74" "setuptools"
28 '';
29
30 build-system = [
31 setuptools
32 ];
33
34 dependencies = [
35 zope-interface
36 ];
37
38 nativeCheckInputs = [
39 pytestCheckHook
40 ];
41
42 pythonImportsCheck = [ "transaction" ];
43
44 meta = {
45 description = "Transaction management";
46 homepage = "https://transaction.readthedocs.io/";
47 changelog = "https://github.com/zopefoundation/transaction/blob/${version}/CHANGES.rst";
48 license = lib.licenses.zpl21;
49 maintainers = with lib.maintainers; [ nickcao ];
50 };
51}