From e5228f3b4bc79fea354e759217f9f6369d7a78ab Mon Sep 17 00:00:00 2001 From: Timo Gottszky Date: Thu, 25 Jun 2026 14:31:34 +0200 Subject: [PATCH 1/4] python3Packages.dpcontracts: enable __structuredAttrs --- pkgs/development/python-modules/dpcontracts/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/python-modules/dpcontracts/default.nix b/pkgs/development/python-modules/dpcontracts/default.nix index 1917a264a114..33ee4cff9675 100644 --- a/pkgs/development/python-modules/dpcontracts/default.nix +++ b/pkgs/development/python-modules/dpcontracts/default.nix @@ -9,6 +9,8 @@ buildPythonPackage { version = "unstable-2018-11-20"; format = "setuptools"; + __structuredAttrs = true; + src = fetchFromGitHub { owner = "deadpixi"; repo = "contracts"; From 6e409a04d47d3dcd8f6ecfb0b9fbaadd1c36f057 Mon Sep 17 00:00:00 2001 From: Timo Gottszky Date: Thu, 25 Jun 2026 14:33:30 +0200 Subject: [PATCH 2/4] python3Packages.dpcontracts: migrate to pyproject --- pkgs/development/python-modules/dpcontracts/default.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/dpcontracts/default.nix b/pkgs/development/python-modules/dpcontracts/default.nix index 33ee4cff9675..e11f41ebb77f 100644 --- a/pkgs/development/python-modules/dpcontracts/default.nix +++ b/pkgs/development/python-modules/dpcontracts/default.nix @@ -2,12 +2,13 @@ lib, buildPythonPackage, fetchFromGitHub, + setuptools, }: buildPythonPackage { pname = "dpcontracts"; version = "unstable-2018-11-20"; - format = "setuptools"; + pyproject = true; __structuredAttrs = true; @@ -18,6 +19,10 @@ buildPythonPackage { hash = "sha256-FygJPXo7lZ9tlfqY6KmPJ3PLIilMGLBr3013uj9hCEs="; }; + build-system = [ + setuptools + ]; + # package does not have any tests doCheck = false; From 4204175122a053e92d4d83549dddcf044015cb0b Mon Sep 17 00:00:00 2001 From: Timo Gottszky Date: Fri, 3 Jul 2026 15:20:26 +0200 Subject: [PATCH 3/4] python3Packages.dpcontracts: enable tests --- .../python-modules/dpcontracts/default.nix | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/dpcontracts/default.nix b/pkgs/development/python-modules/dpcontracts/default.nix index e11f41ebb77f..6844f28ebf13 100644 --- a/pkgs/development/python-modules/dpcontracts/default.nix +++ b/pkgs/development/python-modules/dpcontracts/default.nix @@ -3,6 +3,7 @@ buildPythonPackage, fetchFromGitHub, setuptools, + pytestCheckHook, }: buildPythonPackage { @@ -19,12 +20,25 @@ buildPythonPackage { hash = "sha256-FygJPXo7lZ9tlfqY6KmPJ3PLIilMGLBr3013uj9hCEs="; }; + # Replacements in README.rst are necessary to check it with doctest + postPatch = '' + substituteInPlace README.rst \ + --replace-fail " PreconditionError" " dpcontracts.PreconditionError" \ + --replace-fail " PostconditionError" " dpcontracts.PostconditionError" \ + --replace-fail ">>> class Counter:" $'>>> from dpcontracts import preserve\n >>> class Counter:' + ''; + build-system = [ setuptools ]; - # package does not have any tests - doCheck = false; + nativeCheckInputs = [ + pytestCheckHook + ]; + + enabledTestPaths = [ + "README.rst" + ]; pythonImportsCheck = [ "dpcontracts" ]; From e73b7d657ebdcc531ccbe11366462889cc673939 Mon Sep 17 00:00:00 2001 From: Timo Gottszky Date: Fri, 3 Jul 2026 15:48:14 +0200 Subject: [PATCH 4/4] python3Packages.dpcontracts: fix version --- pkgs/development/python-modules/dpcontracts/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/dpcontracts/default.nix b/pkgs/development/python-modules/dpcontracts/default.nix index 6844f28ebf13..15bf0d2fee3f 100644 --- a/pkgs/development/python-modules/dpcontracts/default.nix +++ b/pkgs/development/python-modules/dpcontracts/default.nix @@ -8,7 +8,7 @@ buildPythonPackage { pname = "dpcontracts"; - version = "unstable-2018-11-20"; + version = "0.6.0-unstable-2018-11-20"; pyproject = true; __structuredAttrs = true;