aithings/packages/pypatchmatch/default.nix
2024-02-24 19:18:13 +01:00

93 lines
1.9 KiB
Nix

{ lib
, buildPythonPackage
, pkg-config
, fetchPypi
, stdenv
, fetchzip
, setuptools
, writeText
, isPy27
, pytestCheckHook
, pytest-mpl
, numpy
, scipy
, scikit-learn
, pandas
, transformers
, opencv4
, lightgbm
, catboost
, pyspark
, sentencepiece
, tqdm
, slicer
, numba
, matplotlib
, nose
, lime
, cloudpickle
, ipython
, packaging
, pillow
, requests
, regex
, importlib-metadata
, huggingface-hub
, symlinkJoin
}:
let
# https://github.com/invoke-ai/InvokeAI/blob/34f8117241dc961e78929bda30ce3b4f19e707cf/docs/installation/060_INSTALL_PATCHMATCH.md
opencv4Fixed = symlinkJoin {
name = "opencv4Fixed";
paths = [ opencv4 ];
postBuild = ''
cp -r $out/lib/pkgconfig/opencv4.pc $out/lib/pkgconfig/opencv.pc
'';
};
libpatchmatch = stdenv.mkDerivation {
name = "libpatchmatch";
sourceRoot = ["source/patchmatch"];
nativeBuildInputs = [
pkg-config
opencv4Fixed
];
src = fetchzip {
url = "https://github.com/invoke-ai/PyPatchMatch/archive/129863937a8ab37f6bbcec327c994c0f932abdbc.zip";
sha256 = "sha256-kHYih9fjhtYfyNYzW4kwzm62N+GaOQQOOlSkO4PH3lw=";
};
installPhase = ''
mkdir -p $out/lib
cp libpatchmatch.so $out/lib/
'';
};
in buildPythonPackage {
pname = "pypatchmatch";
version = "129863937a8ab37f6bbcec327c994c0f932abdbc";
disabled = isPy27;
src = fetchzip {
url = "https://github.com/invoke-ai/PyPatchMatch/archive/129863937a8ab37f6bbcec327c994c0f932abdbc.zip";
sha256 = "sha256-kHYih9fjhtYfyNYzW4kwzm62N+GaOQQOOlSkO4PH3lw=";
};
propagatedBuildInputs = [
setuptools
numpy
pillow
];
doCheck = false;
postInstall = ''
cp ${libpatchmatch}/lib/libpatchmatch.so $out/lib/*/site-packages/patchmatch/
'';
meta = {
description = "This library implements the PatchMatch based inpainting algorithm.";
homepage = "https://github.com/invoke-ai/PyPatchMatch";
};
}