rabbit: unbreak the package
Version 2.3.1 (current version) is not made to work with `scikit-learn` v1.6.
This commit is contained in:
47
pkgs/by-name/ra/rabbit/fix-file-loading.patch
Normal file
47
pkgs/by-name/ra/rabbit/fix-file-loading.patch
Normal file
@@ -0,0 +1,47 @@
|
||||
From 3488de815355051d2e369c7fe48a35dabf695cfc Mon Sep 17 00:00:00 2001
|
||||
From: Pol Dellaiera <pol.dellaiera@protonmail.com>
|
||||
Date: Mon, 17 Mar 2025 16:52:25 +0100
|
||||
Subject: [PATCH] fix file loading
|
||||
|
||||
---
|
||||
rabbit.py | 17 ++++++++---------
|
||||
1 file changed, 8 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/rabbit.py b/rabbit.py
|
||||
index a1826d3..697c880 100644
|
||||
--- a/rabbit.py
|
||||
+++ b/rabbit.py
|
||||
@@ -9,6 +9,7 @@ from sklearn.ensemble import GradientBoostingClassifier
|
||||
import joblib
|
||||
import site
|
||||
from tqdm import tqdm
|
||||
+from importlib.resources import files
|
||||
|
||||
import GenerateActivities as gat
|
||||
import ExtractEvent as eev
|
||||
@@ -59,15 +60,13 @@ def get_model():
|
||||
'''
|
||||
|
||||
model_file = 'bimbas.joblib'
|
||||
- for dir in site.getsitepackages():
|
||||
- if dir.endswith('site-packages'):
|
||||
- target_dir = dir
|
||||
- else:
|
||||
- target_dir = site.getsitepackages()[0]
|
||||
- bot_identification_model = joblib.load(f'{target_dir}/{model_file}')
|
||||
- # bot_identification_model = joblib.load(model_file)
|
||||
-
|
||||
- return(bot_identification_model)
|
||||
+ try:
|
||||
+ resource_path = files("rabbit").joinpath(model_file)
|
||||
+ bot_identification_model = joblib.load(resource_path)
|
||||
+ except Exception as e:
|
||||
+ raise RuntimeError(f"Failed to load the model: {e}")
|
||||
+
|
||||
+ return bot_identification_model
|
||||
|
||||
def compute_confidence(probability_value):
|
||||
'''
|
||||
--
|
||||
2.48.1
|
||||
|
||||
@@ -2,10 +2,39 @@
|
||||
lib,
|
||||
python3,
|
||||
fetchFromGitHub,
|
||||
fetchPypi,
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
let
|
||||
python3' =
|
||||
let
|
||||
packageOverrides = self: super: {
|
||||
scikit-learn = super.scikit-learn.overridePythonAttrs (old: {
|
||||
version = "1.5.2";
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "scikit_learn";
|
||||
version = "1.5.2";
|
||||
hash = "sha256-tCN+17P90KSIJ5LmjvJUXVuqUKyju0WqffRoE4rY+U0=";
|
||||
};
|
||||
|
||||
# There are 2 tests that are failing, disabling the tests for now.
|
||||
# - test_csr_polynomial_expansion_index_overflow[csr_array-False-True-2-65535]
|
||||
# - test_csr_polynomial_expansion_index_overflow[csr_array-False-True-3-2344]
|
||||
doCheck = false;
|
||||
});
|
||||
};
|
||||
in
|
||||
python3.override {
|
||||
inherit packageOverrides;
|
||||
self = python3;
|
||||
};
|
||||
in
|
||||
python3'.pkgs.buildPythonApplication rec {
|
||||
pname = "rabbit";
|
||||
# Make sure to check for which version of scikit-learn this project was built
|
||||
# Currently version 2.3.1 is made with scikit-learn 1.5.2
|
||||
# Upgrading to newer versions of scikit-learn break the project
|
||||
version = "2.3.1";
|
||||
pyproject = true;
|
||||
|
||||
@@ -16,6 +45,12 @@ python3.pkgs.buildPythonApplication rec {
|
||||
hash = "sha256-QmP6yfVnlYoNVa4EUtKR9xbCnQW2V6deV0+hN9IGtic=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix file loading, to be removed at the next bump.
|
||||
# The author has been notified about the issue and currently working on it.
|
||||
./fix-file-loading.patch
|
||||
];
|
||||
|
||||
pythonRelaxDeps = [
|
||||
"numpy"
|
||||
"scikit-learn"
|
||||
@@ -24,11 +59,11 @@ python3.pkgs.buildPythonApplication rec {
|
||||
"urllib3"
|
||||
];
|
||||
|
||||
build-system = with python3.pkgs; [
|
||||
build-system = with python3'.pkgs; [
|
||||
setuptools
|
||||
];
|
||||
|
||||
dependencies = with python3.pkgs; [
|
||||
dependencies = with python3'.pkgs; [
|
||||
joblib
|
||||
numpy
|
||||
pandas
|
||||
|
||||
Reference in New Issue
Block a user