From d8d3f6cabde8f425fda7f6b05b83682ab569d42b Mon Sep 17 00:00:00 2001 From: June Stepp Date: Mon, 20 Oct 2025 14:42:39 -0500 Subject: [PATCH] python3Packages.troi: init at 2025.08.06.3 --- .../python-modules/troi/default.nix | 89 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 91 insertions(+) create mode 100644 pkgs/development/python-modules/troi/default.nix diff --git a/pkgs/development/python-modules/troi/default.nix b/pkgs/development/python-modules/troi/default.nix new file mode 100644 index 000000000000..32367c46f539 --- /dev/null +++ b/pkgs/development/python-modules/troi/default.nix @@ -0,0 +1,89 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + setuptools-scm, + click, + lb-matching-tools, + liblistenbrainz, + more-itertools, + mutagen, + peewee, + psycopg2-binary, + py-sonic, + python-dateutil, + regex, + requests, + scikit-learn, + spotipy, + tqdm, + ujson, + unidecode, + pytestCheckHook, + requests-mock, +}: + +buildPythonPackage rec { + pname = "troi"; + version = "2025.08.06.3"; + pyproject = true; + + src = fetchFromGitHub { + owner = "metabrainz"; + repo = "troi-recommendation-playground"; + tag = "v${version}"; + hash = "sha256-qLnXaNb1Kon+XPJYCPe31EgXpukIfzTa+LADOzFjE9Q="; + }; + + build-system = [ + setuptools + setuptools-scm + ]; + + pythonRelaxDeps = [ "mutagen" ]; + pythonRemoveDeps = [ + # It's not used anywhere in the code. + # TODO: Remove in next update. See + "countryinfo" + ]; + + dependencies = [ + click + lb-matching-tools + liblistenbrainz + more-itertools + mutagen + peewee + psycopg2-binary + py-sonic + python-dateutil + regex + requests + scikit-learn + spotipy + tqdm + ujson + unidecode + ]; + + optional-dependencies = { + # Not packaged yet. + # nmslib = [ "nmslib-metabrainz" ]; + }; + + nativeCheckInputs = [ + pytestCheckHook + requests-mock + ]; + + pythonImportsCheck = [ "troi" ]; + + meta = { + description = "ListenBrainz' empathic music recommendation/playlisting engine"; + homepage = "https://github.com/metabrainz/troi-recommendation-playground"; + changelog = "https://github.com/metabrainz/troi-recommendation-playground/releases/tag/${src.tag}"; + license = lib.licenses.gpl2Only; + teams = [ lib.teams.ngi ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 783ab5563ac1..5277ed027e11 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -19025,6 +19025,8 @@ self: super: with self; { } ); + troi = callPackage ../development/python-modules/troi { }; + troposphere = callPackage ../development/python-modules/troposphere { }; trove-classifiers = callPackage ../development/python-modules/trove-classifiers { };