nixpkgs/pkgs/development/python-modules/cattrs/default.nix
Guillaume Girol 33afbf39f6 treewide: switch to nativeCheckInputs
checkInputs used to be added to nativeBuildInputs. Now we have
nativeCheckInputs to do that instead. Doing this treewide change allows
to keep hashes identical to before the introduction of
nativeCheckInputs.
2023-01-21 12:00:00 +00:00

101 lines
2.1 KiB
Nix

{ lib
, attrs
, buildPythonPackage
, fetchFromGitHub
, exceptiongroup
, hypothesis
, immutables
, motor
, msgpack
, orjson
, poetry-core
, pytest-xdist
, pytestCheckHook
, pythonOlder
, pyyaml
, tomlkit
, typing-extensions
, ujson
}:
buildPythonPackage rec {
pname = "cattrs";
version = "22.2.0";
format = "pyproject";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "python-attrs";
repo = pname;
rev = "v${version}";
hash = "sha256-Qnrq/mIA/t0mur6IAen4vTmMIhILWS6v5nuf+Via2hA=";
};
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
attrs
] ++ lib.optionals (pythonOlder "3.11") [
exceptiongroup
] ++ lib.optionals (pythonOlder "3.7") [
typing-extensions
];
nativeCheckInputs = [
hypothesis
immutables
motor
msgpack
orjson
pytest-xdist
pytestCheckHook
pyyaml
tomlkit
ujson
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace "-l --benchmark-sort=fullname --benchmark-warmup=true --benchmark-warmup-iterations=5 --benchmark-group-by=fullname" "" \
--replace 'orjson = "^3.5.2"' "" \
--replace "[tool.poetry.group.dev.dependencies]" "[tool.poetry.dev-dependencies]"
substituteInPlace tests/test_preconf.py \
--replace "from orjson import dumps as orjson_dumps" "" \
--replace "from orjson import loads as orjson_loads" ""
'';
preCheck = ''
export HOME=$(mktemp -d);
'';
disabledTestPaths = [
# Don't run benchmarking tests
"bench/test_attrs_collections.py"
"bench/test_attrs_nested.py"
"bench/test_attrs_primitives.py"
"bench/test_primitives.py"
];
disabledTests = [
# orjson is not available as it requires Rust nightly features to compile its requirements
"test_orjson"
# tomlkit is pinned to an older version and newer versions raise InvalidControlChar exception
"test_tomlkit"
];
pythonImportsCheck = [
"cattr"
];
meta = with lib; {
description = "Python custom class converters for attrs";
homepage = "https://github.com/python-attrs/cattrs";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}