1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 setuptools,
6 unittestCheckHook,
7}:
8
9buildPythonPackage rec {
10 pname = "zope-hookable";
11 version = "7.0";
12 pyproject = true;
13
14 src = fetchFromGitHub {
15 owner = "zopefoundation";
16 repo = "zope.hookable";
17 tag = version;
18 hash = "sha256-qJJc646VSdNKors6Au4UAGvm7seFbvjEfpdqf//vJNE=";
19 };
20
21 postPatch = ''
22 substituteInPlace pyproject.toml \
23 --replace-fail "setuptools<74" "setuptools"
24 '';
25
26 build-system = [ setuptools ];
27
28 pythonImportsCheck = [ "zope.hookable" ];
29
30 nativeCheckInputs = [ unittestCheckHook ];
31
32 unittestFlagsArray = [ "src/zope/hookable/tests" ];
33
34 pythonNamespaces = [ "zope" ];
35
36 meta = with lib; {
37 description = "Supports the efficient creation of “hookable” objects";
38 homepage = "https://github.com/zopefoundation/zope.hookable";
39 changelog = "https://github.com/zopefoundation/zope.hookable/blob/${src.tag}/CHANGES.rst";
40 license = licenses.zpl21;
41 };
42}