nixpkgs-overlay/listenbrainz-content-resolver/default.nix

93 lines
2 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ lib
, buildPythonPackage
, fetchFromGitHub
, click
, mutagen
, nmslib
, peewee
, regex
, scikit-learn
, unidecode
, pythonRelaxDepsHook
, setuptools-scm
}:
let
lb_matching_tools = buildPythonPackage rec {
pname = "listenbrainz-matching-tools";
# ensure this matches ListenBrainz-Content-Resolvers requirements.txt entry
version = "2023-07-19.0";
src = fetchFromGitHub {
owner = "metabrainz";
repo = pname;
rev = "v-${version}";
sha256 = "sha256-SOUNw1kmXm8j7iZAROf+pVJao5eFjgNmgrtYMO09upA=";
};
propagatedBuildInputs = [
regex
];
nativeBuildInputs = [
setuptools-scm
];
SETUPTOOLS_SCM_PRETEND_VERSION = version;
};
in
buildPythonPackage rec {
pname = "ListenBrainz-Content-Resolver";
# FIXME
# This should actually reflect the real version.
# As there currently are no tagged versions,
# this needs to be forged,
# because pythonRelaxDepsHook has problems with unstable-YYYY-MM-DD as a version.
version = "1.0.0";
src = fetchFromGitHub {
owner = "metabrainz";
repo = pname;
rev = "6caa43df1d17a974ae27a91f1aaf663952cf0ed9";
sha256 = "0000000000000000000000000000000000000000000000000000";
};
postPatch = ''
# Make model discoverable by setuptools find_packages
touch lb_content_resolver/model/__init__.py
'';
propagatedBuildInputs = [
click
lb_matching_tools
mutagen
nmslib
peewee
regex
scikit-learn
unidecode
];
nativeBuildInputs = [
pythonRelaxDepsHook
setuptools-scm
];
pythonRelaxDeps = true;
SETUPTOOLS_SCM_PRETEND_VERSION = version;
doCheck = false;
postInstall = ''
mkdir -p $out/bin
cp $src/resolve.py $out/bin/${pname}
'';
meta = with lib; {
description = "Resolver for ListenBrainz playlists from JSPF to local playlists";
homepage = "https://github.com/metabrainz/listenbrainz-content-resolver";
license = licenses.gpl2Only;
maintainers = with maintainers; [ sbruder ];
platforms = platforms.linux;
};
}