1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 numba,
6 numpy,
7 pynose,
8 pytestCheckHook,
9 pythonOlder,
10 scikit-learn,
11 scipy,
12 setuptools,
13 torchvision,
14 tqdm,
15}:
16
17buildPythonPackage rec {
18 pname = "apricot-select";
19 version = "0.6.1";
20 pyproject = true;
21
22 disabled = pythonOlder "3.7";
23
24 src = fetchFromGitHub {
25 owner = "jmschrei";
26 repo = "apricot";
27 rev = "refs/tags/${version}";
28 hash = "sha256-v9BHFxmlbwXVipPze/nV35YijdFBuka3gAl85AlsffQ=";
29 };
30
31 postPatch = ''
32 sed -i '/"nose"/d' setup.py
33 '';
34
35 build-system = [ setuptools ];
36
37 dependencies = [
38 numba
39 numpy
40 scipy
41 tqdm
42 ];
43
44 nativeCheckInputs = [
45 pynose
46 pytestCheckHook
47 scikit-learn
48 torchvision
49 ];
50
51 pythonImportsCheck = [ "apricot" ];
52
53 disabledTestPaths = [
54 # Tests require nose
55 "tests/test_optimizers/test_knapsack_facility_location.py"
56 "tests/test_optimizers/test_knapsack_feature_based.py"
57 ];
58
59 meta = with lib; {
60 description = "Module for submodular optimization for the purpose of selecting subsets of massive data sets";
61 homepage = "https://github.com/jmschrei/apricot";
62 changelog = "https://github.com/jmschrei/apricot/releases/tag/${version}";
63 license = licenses.mit;
64 maintainers = with maintainers; [ fab ];
65 };
66}