nixpkgs/pkgs/development/python-modules/fastdtw/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

65 lines
1.6 KiB
Nix

{ lib
, buildPythonPackage
, fetchFromGitHub
, fetchpatch
, cython
, numpy
# Check Inputs
, pytestCheckHook
, python
}:
buildPythonPackage rec {
pname = "fastdtw";
version = "0.3.4";
src = fetchFromGitHub {
owner = "slaypni";
repo = pname;
rev = "v${version}";
sha256 = "0irc5x4ahfp7f7q4ic97qa898s2awi0vdjznahxrfjirn8b157dw";
};
patches = [
# Removes outdated cythonized C++ file, which doesn't match CPython. Will be auto-used if left.
# Remove when PR 40 merged
(fetchpatch {
url = "https://patch-diff.githubusercontent.com/raw/slaypni/fastdtw/pull/40.patch";
sha256 = "0xjma0h84bk1n32wgk99rwfc85scp187a7fykhnylmcc73ppal9q";
})
];
nativeBuildInputs = [
cython
];
propagatedBuildInputs = [
numpy
];
pythonImportsCheck = [ "fastdtw.fastdtw" ];
nativeCheckInputs = [ pytestCheckHook ];
dontUseSetuptoolsCheck = true; # looks for pytest-runner
preCheck = ''
echo "Temporarily moving tests to $OUT to find cython modules"
export PACKAGEDIR=$out/${python.sitePackages}
cp -r $TMP/source/tests $PACKAGEDIR
pushd $PACKAGEDIR
'';
postCheck = ''
rm -rf tests
popd
'';
meta = with lib; {
description = "Python implementation of FastDTW (Dynamic Time Warping)";
longDescription = ''
FastDTW is an approximate Dynamic Time Warping (DTW) algorithm that provides
optimal or near-optimal alignments with an O(N) time and memory complexity.
'';
homepage = "https://github.com/slaypni/fastdtw";
license = licenses.mit;
maintainers = with maintainers; [ drewrisinger ];
};
}