1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 setuptools,
6 zodbpickle,
7 zope-interface,
8 zope-location,
9 zope-schema,
10 unittestCheckHook,
11}:
12
13buildPythonPackage rec {
14 pname = "zope-copy";
15 version = "5.0";
16 pyproject = true;
17
18 src = fetchFromGitHub {
19 owner = "zopefoundation";
20 repo = "zope.copy";
21 tag = version;
22 hash = "sha256-uQUvfZGrMvtClXa8tLKZFYehbcBIRx7WQnumUrdQjIk=";
23 };
24
25 postPatch = ''
26 substituteInPlace pyproject.toml \
27 --replace-fail "setuptools < 74" "setuptools"
28 '';
29
30 build-system = [ setuptools ];
31
32 dependencies = [
33 zodbpickle
34 zope-interface
35 ];
36
37 pythonImportsCheck = [ "zope.copy" ];
38
39 nativeCheckInputs = [
40 unittestCheckHook
41 zope-location
42 zope-schema
43 ];
44
45 unittestFlagsArray = [
46 "-s"
47 "src/zope/copy"
48 ];
49
50 pythonNamespaces = [ "zope" ];
51
52 meta = {
53 description = "Pluggable object copying mechanism";
54 homepage = "https://github.com/zopefoundation/zope.copy";
55 changelog = "https://github.com/zopefoundation/zope.copy/blob/${src.tag}/CHANGES.rst";
56 license = lib.licenses.zpl21;
57 maintainers = with lib.maintainers; [ ];
58 };
59}