diff --git a/pkgs/development/python-modules/dirty-equals/default.nix b/pkgs/development/python-modules/dirty-equals/default.nix index 50f4b03123a3..a7195fcee166 100644 --- a/pkgs/development/python-modules/dirty-equals/default.nix +++ b/pkgs/development/python-modules/dirty-equals/default.nix @@ -2,24 +2,25 @@ , buildPythonPackage , fetchFromGitHub , hatchling +, pydantic +, pytest-examples , pytestCheckHook , pythonOlder , pytz -, typing-extensions }: buildPythonPackage rec { pname = "dirty-equals"; - version = "0.5.0"; + version = "0.6.0"; format = "pyproject"; - disabled = pythonOlder "3.7"; + disabled = pythonOlder "3.8"; src = fetchFromGitHub { owner = "samuelcolvin"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-yYptO6NPhQRlF0T2eXliw2WBms9uqTZVzdYzGj9pCug="; + hash = "sha256-j+EqsKVRG2DDka1G3Px8ExYZt8QkqHkhojRnAHObdR4="; }; nativeBuildInputs = [ @@ -28,10 +29,11 @@ buildPythonPackage rec { propagatedBuildInputs = [ pytz - typing-extensions ]; nativeCheckInputs = [ + pydantic + pytest-examples pytestCheckHook ]; @@ -42,6 +44,7 @@ buildPythonPackage rec { meta = with lib; { description = "Module for doing dirty (but extremely useful) things with equals"; homepage = "https://github.com/samuelcolvin/dirty-equals"; + changelog = "https://github.com/samuelcolvin/dirty-equals/releases/tag/v${version}"; license = with licenses; [ mit ]; maintainers = with maintainers; [ fab ]; }; diff --git a/pkgs/development/python-modules/pytest-examples/default.nix b/pkgs/development/python-modules/pytest-examples/default.nix new file mode 100644 index 000000000000..37e7c2fe6bfe --- /dev/null +++ b/pkgs/development/python-modules/pytest-examples/default.nix @@ -0,0 +1,66 @@ +{ lib +, black +, buildPythonPackage +, fetchFromGitHub +, hatchling +, pytest +, pytestCheckHook +, pythonOlder +, pythonRelaxDepsHook +, ruff +}: + +buildPythonPackage rec { + pname = "pytest-examples"; + version = "0.0.9"; + format = "pyproject"; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "pydantic"; + repo = "pytest-examples"; + rev = "refs/tags/v${version}"; + hash = "sha256-ecxSLbPnHdL60vlc7EjKmw5rATTePqJCa5QIdyxevv0="; + }; + + postPatch = '' + # ruff binary is used directly, the ruff Python package is not needed + substituteInPlace pytest_examples/lint.py \ + --replace "'ruff'" "'${ruff}/bin/ruff'" + ''; + + pythonRemoveDeps = [ + "ruff" + ]; + + nativeBuildInputs = [ + hatchling + pythonRelaxDepsHook + ]; + + buildInputs = [ + pytest + ]; + + propagatedBuildInputs = [ + black + ruff + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ + "pytest_examples" + ]; + + meta = with lib; { + description = "Pytest plugin for testing examples in docstrings and markdown files"; + homepage = "https://github.com/pydantic/pytest-examples"; + changelog = "https://github.com/pydantic/pytest-examples/releases/tag/v${version}"; + license = licenses.mit; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 63d67c456b30..6997607a8181 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9719,6 +9719,8 @@ self: super: with self; { pytest-error-for-skips = callPackage ../development/python-modules/pytest-error-for-skips { }; + pytest-examples = callPackage ../development/python-modules/pytest-examples { }; + pytest-expect = callPackage ../development/python-modules/pytest-expect { }; pytest-factoryboy = callPackage ../development/python-modules/pytest-factoryboy { };